Разработка информационно аналитической системы на тему «Конкурс поэтов» с использованием технологии объектно-ориентированного программ

Автор работы: Пользователь скрыл имя, 18 Июня 2013 в 23:17, курсовая работа

Краткое описание

Данная программа будет незаменима организаторам подобных мероприятий. Целью курсового проекта является разработка аналитической системы, в которой должны поддерживаться режимы учета зрителей и выступающих, их произведений, жанра, творческого багажа, порядка проведения. Система будет реализована на основе языка программирования C++ и библиотеки MFC. Для достижения намеченной цели необходимо будет решить следующие задачи:

Содержание

Введение
1. Задание на разработку
2. Анализ предметной области
3. Разработка оконного приложения
3.1. Разработка информационной модели предметной области
3.2. Выбор и описание средств проектирования
3.3. Реализация приложения
4.Результаты тестирования
Заключение
Список использованных источников
Приложение А. Внешний вид основного окна приложения
Приложение Б. Программный код проекта

Вложенные файлы: 1 файл

курсовик.docx

— 157.33 Кб (Скачать файл)

 

Таблица 1 –Переменные, планируемые  к использованию

 

Имя переменной

Описание

Тип данных

Familiya

Фамилия поэта или зрителя

Текстовый

Imya

Имя поэта или зрителя

Текстовый

Otchestvo

Отчество поэта или  зрителя

Текстовый

Zhanr

Жанр произведения

Текстовый

Poets

Фамилии поэтов

Текстовый

Ochered

Очередь участника

Числовой

Proiz

Название произведения

Текстовый


 

Окно приложения должно обеспечивать необходимые функции системы, связи  между ее компонентами, его модель может выглядеть как на рисунке 1:

 

Рисунок 1 – Главное окно программы

Главное окно программы разделено  на 2 области. Первая область предусматривает  занесение основных сведений об участниках конкурса или зрителях. Вторая область  нужна просмотра творческого  багажа поэтов.

Так для добавления фамилии, имени, отчества поэта или зрителя, очереди или произведения, с которым  будет выступать участник, нужно  ввести необходимые данные в соответствующие  поля. Так как жанр это исторически сложившиеся группы литературных произведений, то они заранее известны, а значит есть возможность создания комбинированного списка для выбора основных видов жанра. Так же у постоянных участников конкурса накапливается творческих багаж. Им заводится уникальная HTML-страничка с фамилией, именем, отчеством, фотографией и работами поэта. Для того чтобы перейти на страничку поэта на главном окне программы используется комбинированный список с фамилиями. Так же присутствуют два переключателя. При выборе переключателя Зритель поля: Очередь, произведение и жанр становятся неактивными, так как выступать могут только участники конкурса.


При нажатии кнопки Запись данные введенные в поля ввода или выбранные в комбинированном списке будут занесены в текстовый файл, который будет являться базой данных для данной системы, являющийся базой данный для этой системы.

Нажав кнопку Следующий, главное  окно обновляется, поля ввода и комбинированные  списки примут начальные значения. Это позволит быстрее перейти  к записи нового посетителя конкурса. При нажатии пользователем кнопки Завершить, программа заканчивает  сеанс работы.

 

3.2 Выбор и описание средств проектирования


 

MFC является альтернативой системам  визуального программирования, таким  как Delphi или Visual Basic, предназначенной  для опытных программистов. На  сегодняшний день подавляющее  большинство программ разрабатывается  при помощи Microsoft Visual С++ и MFC. MFC - это  стандарт программирования под  Windows и "интернациональный язык  общения". Такая ситуация объясняется  многими причинами. В частности,  только MFC позволяет создавать наиболее  эффективные и устойчивые приложения, которые будут корректно вести  себя не только в системе  разработчика, но и в системах  реальных пользователей. Также  очень важно, что MFC поддерживает  все современные технологии, реализованные  в Windows, и при дополнении Windows почти  сразу же дополняется и MFC.

MFC - это инструмент для программирования  сложных приложений, от которых  требуется высокая эффективность  и надежность. MFC поощряет использование  объектно-ориентированного программирования, что дает ощутимые преимущества  при решении сложных (не с  точки зрения только интерфейса  пользователя) задач, по сравнению  с компонентно-ориентированным подходом, применяемым в системах RAD (быстрой  разработки приложений). Разрабатывая  приложение в системе RAD, программист  часто вообще не использует  ООП, по крайней мере в явном  виде, до тех пор, пока не  соберется разработать собственный  компонент. Это негативно сказывается  на возможности последующего  расширения возможностей. Тем не  менее, не стоит воспринимать  сказанное как критику систем RAD. Есть много классов приложений (например, базы данных), которые  разумнее всего разрабатывать  именно при помощи систем RAD, что  и делают даже опытные Windows-программисты .

Библиотека MFC содержит большую иерархию классов, написанных на С++. На иерархии вершине находится класс СObject, который содержит различные функции, используемые во время выполнения программы  и предназначенные, в частности, для предоставления информации о  текущем типе во время выполнения, для диагностики, и для сериализации.

Если указатель или ссылка ссылается  на объект, производный от класса CObject, то в этом случае предусмотрен механизм определения реального типа объекта  с помощью макроса RUNTIME_CLASS(). Хотя в С++ имеется механизм RTTI, механизм, реализованный в MFC, намного более  эффективен по производительности.


Каждый класс, производный от CObject, может по запросу проверить свое внутреннее состояние и выдать диагностическую  информацию. Это интенсивно используется в MFC при отладке.

Сериализация - это механизм, позволяющий  преобразовать текущее состояние  объекта в последовательный поток  байт, который обычно затем записывается на диск, и восстановить состояние  объекта из последовательного потока, обычно при чтении с диска. Это  позволяет сохранять текущее  состояние приложения на диске, и  восстанавливать его при последующем  запуске.

Некоторые классы порождаются непосредственно  от CObject. Наиболее широко используемыми  среди них являются CCmdTarget, CFile, CDC, CGDIObject и CMenu. Класс ССmdTarget предназначен для обработки сообщений. Класс  СFile предназначен для работы с файлами. Класс CDC обеспечивает поддержку контекстов устройств. Об контекстах устройств  мы будем говорить несколько позднее. В этот класс включены практически  все функции графики GDI. CGDIObject является базовым классом для различных DGI-объектов, таких как перья, кисти, шрифты и другие. Класс СMenu предназначен для манипуляций с меню. От класса CCmdTarget порождается очень важный класс CWnd. Он является базовым для  создания всех типов окон, включая  масштабируемые ("обычные") и диалоговые, а также различные элементы управления. Наиболее широко используемым производным  классом является CFrameWnd. Как Вы увидите  в дальнейшем, в большинстве программ главное окно создается с помощью  именно этого класса.

От класса CCmdTarget, через класс CWinThread, порождается, наверное, единственный из наиболее важных классов, обращение  к которому в MFC-программах происходит напрямую: CWinApp. Это один из фундаментальных  классов, поскольку предназначен для  создания самого приложения. В каждой программе имеется один и только один объект этого класса. Как только он будет создан, приложение начнет выполняться.

Большинство функций, вызываемых в MFC-программе, являются членами одного из классов, определенных в библиотеке. Большинство  функций API доступны через функции-члены MFC. Тем не менее, всегда можно обращаться к функциям API напрямую. Иногда это  бывает необходимым, но все же в большинстве  случаев удобнее использовать функции-члены MFC.


В библиотеке есть ряд глобальных функций. Все они начинаются с  префикса Afx. (Когда MFC только разрабатывалась, то проект назывался AFX, Application Framework. После  ряда существенных изменений AFX была переработана в MFC, но прежнее название сохранилось  во многих идентификаторах библиотеки и в названиях файлов.) Например, очень часто используется функция AfxMessageBox(), отображающая заранее определенное окно сообщения. Но есть и член-функция MessageBox(). Таким образом, часто глобальные функции перекрываются функциями-членами.

Все MFC-программы включают заголовочный файл AFXWIN.H. В нем, а также в различных  вспомогательных файлах, содержатся описания классов, структур, переменных и других объектов MFC. Он автоматически  подключает большинство заголовочных файлов, относящихся к MFC, в том  числе и WINDOWS.H, в котором определены все функции Windows API и другие объекты, которые используются при традиционном программировании на С и "чистом" API.

В простейшем случае программа, написанная с помощью MFC, содержит два класса, порождаемые от классов иерархии библиотеки: класс, предназначенный  для создания приложения, и класс, предназначенный для создания окна. Другими словами, для создания минимальной  программы необходимо породить один класс от CWinApp, а другой - от CFrameWnd. Эти два класса обязательны для любой программы .

API функции

Большинство функций, вызываемых в MFC-программе, являются членами одного из классов, определенных в библиотеке. Большинство  функций API доступны через функции-члены MFC. Тем не менее, всегда можно обращаться к функциям API напрямую. Иногда это  бывает необходимым, но все же в большинстве  случаев удобнее использовать функции-члены MFC.

Глобальные функции AFX

В библиотеке есть ряд глобальных функций. Все они начинаются с  префикса Afx. Когда MFC только разрабатывалась, то проект назывался AFX, Application Framework. После  ряда существенных изменений AFX была переработана в MFC, но прежнее название сохранилось  во многих идентификаторах библиотеки и в названиях файлов. Например, очень часто используется функция AfxMessageBox(), отображающая заранее определенное окно сообщения. Но есть и член-функция MessageBox(). Таким образом, часто глобальные функции перекрываются функциями-членами.


Все MFC-программы включают заголовочный файл AFXWIN.H. В нем, а также в различных  вспомогательных файлах, содержатся описания классов, структур, переменных и других объектов MFC. Он автоматически  подключает большинство заголовочных файлов, относящихся к MFC, в том  числе и WINDOWS.H, в котором определены все функции Windows API и другие объекты, которые используются при традиционном программировании на С и "чистом" API.

Windows взаимодействует с программой, посылая ей сообщения.

Цикл сообщений

Все приложения Windows должны организовать так называемый цикл сообщений (обычно внутри функции WinMain()). В этом цикле  каждое необработанное сообщение должно быть извлечено из очереди сообщений  данного приложения и передано назад  в Windows, которая затем вызывает функцию  окна программы с данным сообщением в качестве аргумента. В традиционных Windows-программах необходимо самостоятельно создавать и активизировать такой  цикл. При использовании MFC это также  выполняется автоматически. Однако важно помнить, что цикл сообщений  все же существует. Он является неотъемлемой частью любого приложения Windows.

Создание приложения с помощью Visual C++

О принципах устройства приложения рассказывалось выше. Теперь рассмотрим, как оно создается с помощью Visual C++. Сначала разберем одно важное понятие - проект. До сих пор приложение рассматривалось, как только как  совокупность объектов базовых и  производных классов. Но для обеспечения  работы приложения требуется нечто  большее - наряду с описанием классов  необходимо описание ресурсов, связанных  с приложением, нужна справочная система и т.п. Термин "проект" как раз и используется, когда  имеется в виду такой общий  взгляд на приложение.


В среде Visual C++ можно строить различные  типы проектов. Такие проекты после  их создания можно компилировать  и запускать на исполнение. Фирма Microsoft разработала специальный инструментарий, облегчающий и ускоряющий создание проектов в среде Visual C++. Например, мастер MFC AppWizard (exe) позволяет создать проект, Windows-приложения которое имеет однодокументный, многодокументный или диалоговый интерфейс  и использует библиотеку MFC .

Инструментальное средство - ClassWizard (мастер классов)

Создаваемый остов приложения составлен  так, что в дальнейшей работе с  проектом можно использовать другое инструментальное средство - ClassWizard (мастер классов), предназначенное для создания остовов новых производных классов. Еще одно основное назначение ClassWizard в том, что он создает остовы для  переопределяемых методов. Он позволяет  показать все сообщения, приходящие классу, и создать остов обработчика  любого из этих сообщений. Это только две основные функции ClassWizard. Он не всесилен, но его возможности довольно велики.

Средство ClassWizard предоставляет широкий  спектр услуг. Он позволяет не только добавлять к существующему классу новые методы и данные.

 Создание нового класса

При помощи ClassWizard можно добавить новый  класс, созданный на основе базовых  классов. В качестве базового класса можно использовать классы, наследованные  от класса CCmdTarget или класса CRecordset . Для  наследования классов от других базовых  классов использовать средства ClassWizard нельзя. Такие классы надо создавать  вручную, непосредственно в текстовом  редакторе.

Полученная заготовка класса полностью  работоспособна. Ее можно дополнить  по своему усмотрению новыми методами и данными. Эту работу можно выполнить  вручную, но гораздо лучше и проще  воспользоваться услугами ClassWizard. За счет использования ClassWizard процедура  создания собственного класса значительно  ускоряется и уменьшается вероятность  совершить ошибку во время объявления методов.

Информация о работе Разработка информационно аналитической системы на тему «Конкурс поэтов» с использованием технологии объектно-ориентированного программ