Статья посвящена описанию процесса проектирования и разработки программы, которая должна отображать расписание поездов в виде строк с данными, а также оставшееся время до отбытия, обновляющееся в реальном времени. на основе библиотеки MFC в Visual C++ Studio.
Ключевые слова: visual c++, MFC, наследование классов.
Введение
Программный продукт должен выводить на экран пять строк с информацией о рейсе. Программа строится на основе мастера MFC AppWizard с однодокументным форматом окна.
Описание логической структуры
В среде Visual C++ можно строить различные типы проектов. Такие проекты после их создания можно компилировать и запускать на исполнение. Фирма Microsoft разработала специальный инструментарий, облегчающий и ускоряющий создание проектов в среде Visual C++. Для разработки курсового проекта понадобится мастер MFC AppWizard (exe) — при помощи которого можно создать проект Windows-приложения, которое имеет однодокументный, многодокументный или диалоговый интерфейс. Для данного проекта потребуется однодокументный интерфейс.
Программа состоит из следующих модулей, представленных на рисунке 1.
Рис. 1. Программные модули проекта
При создании приложений автоматически создается 4 основных класса:
— CMFCTrainApp — класс, производный от CWinApp;
— CMainFrame — класс, производный от CFrameView;
— CMFCTrainAppDoc — класс, производный от CDocument;
— CMFCTrainAppView — класс, производный от CView
Главный модуль это MFCTrainApp classes который содержит следующие модули:
- CMFCTrainAppApp данный класс получает все сообщения о событиях и затем направляет их классам CFrameView и CView.
- CMFCTrainAppDoc содержит структуры, позволяющие хранить и манипулировать вводимыми в документ данными.
- CMFCTrainAppView отвечает за графическое представление документа пользователю. Данный класс передает введенную информацию классу CDocument, а также получает от него информацию для графического вывода. Этот класс содержит несколько основных модулей:
— конструктор класса CMFCTrainAppView() — отвечает за выделение памяти;
— onDraw(CDC* pDC) — отвечает за вывод необходимых данных на экран;
- MFCTrainAppTime — пользовательский класс, отвечающий за хранение времени и получения текущего локального времени с помощью метода setTime();
- MFCTrainAppTrainSchedule — класс, наследованный от класса MFCTrainAppTime. Содержит данные расписания.
- CMainFrame класс окна, образующий его рамку. Он содержит меню, панель инструментов, полосы прокрутки, а также многие другие видимые объекты, относящиеся к рамке окна. Данный класс определяет какая часть документа является видимой в каждый момент времени.
Основная схема на рисунке 2.
Рис. 2. Общая схема
Схема OnDraw(CDC* pDC) на рисунке 3.
Рис. 3. Блок-схема OnDraw(CDC* pDC)
Метод setTime класса Time запрашивает системное время и записывает в переменные класса Time.
Блок-схема метода setTime() класса Time на рисунке 4.
Рис. 4. Блок-схема кнопки метода setTime() класса Time
Метод departureTime() класса MFCTrainAppTrainSchedule на рисунке 5 отвечает за вывод оставшегося времени.
Рис. 5. Блок-схема метода departureTime() класса MFCTrainAppTrainSchedule
Результаты работы программы
Программа вызывается запуском исполняемого файла, его размер 296 килобайта. Программа занимает 1,5 мегабайта оперативной памяти.
В качестве входных данных используется информация о рейсе. Номер рейса, город-назначение в виде трехбуквенного кода, и время отправки.
В данном программном продукте выходные данные выступают в качестве строки типа CString, полученной во время выполнения программы.
В результате запуска программы отобразится расписание поездов в виде пяти строк с информацией по каждому рейсу и оставшееся до отправления время. Работа программы на рисунке 6.
Рис. 6. Работа программы
Заключение
В результате работы спроектирована и разработана программа, которая отображает расписание поездов в виде строк с данными, а также оставшееся время до отбытия на основе библиотеки MFC в Visual C++ Studio.
Литература:
- Марапулец Ю. В. Язык С++. Основы программирования. П.-Камчатский: КамГУ им. Витуса Беринга, 2011. — 158 с.
- Страуструп Б. Язык программирования С++. 3-е изд. — М.: Бином, 2011
- Стивен Прата. Язык программирования С: Лекции и упражнения: Пер. с англ./ Стивен Прата — К.: ДиаСофт, 2000. — 432 с.