Разработка программы расписания поездов на основе библиотеки MFC и объектно ориентированного подхода | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 23 ноября, печатный экземпляр отправим 27 ноября.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №4 (399) январь 2022 г.

Дата публикации: 25.01.2022

Статья просмотрена: 241 раз

Библиографическое описание:

Лобашевская, В. А. Разработка программы расписания поездов на основе библиотеки MFC и объектно ориентированного подхода / В. А. Лобашевская. — Текст : непосредственный // Молодой ученый. — 2022. — № 4 (399). — С. 39-41. — URL: https://moluch.ru/archive/399/88183/ (дата обращения: 15.11.2024).



Статья посвящена описанию процесса проектирования и разработки программы, которая должна отображать расписание поездов в виде строк с данными, а также оставшееся время до отбытия, обновляющееся в реальном времени. на основе библиотеки 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 который содержит следующие модули:

  1. CMFCTrainAppApp данный класс получает все сообщения о событиях и затем направляет их классам CFrameView и CView.
  2. CMFCTrainAppDoc содержит структуры, позволяющие хранить и манипулировать вводимыми в документ данными.
  3. CMFCTrainAppView отвечает за графическое представление документа пользователю. Данный класс передает введенную информацию классу CDocument, а также получает от него информацию для графического вывода. Этот класс содержит несколько основных модулей:

— конструктор класса CMFCTrainAppView() — отвечает за выделение памяти;

— onDraw(CDC* pDC) — отвечает за вывод необходимых данных на экран;

  1. MFCTrainAppTime — пользовательский класс, отвечающий за хранение времени и получения текущего локального времени с помощью метода setTime();
  2. MFCTrainAppTrainSchedule — класс, наследованный от класса MFCTrainAppTime. Содержит данные расписания.
  3. CMainFrame класс окна, образующий его рамку. Он содержит меню, панель инструментов, полосы прокрутки, а также многие другие видимые объекты, относящиеся к рамке окна. Данный класс определяет какая часть документа является видимой в каждый момент времени.

Основная схема на рисунке 2.

Общая схема

Рис. 2. Общая схема

Схема OnDraw(CDC* pDC) на рисунке 3.

Блок-схема OnDraw(CDC* pDC)

Рис. 3. Блок-схема OnDraw(CDC* pDC)

Метод setTime класса Time запрашивает системное время и записывает в переменные класса Time.

Блок-схема метода setTime() класса Time на рисунке 4.

Блок-схема кнопки метода setTime() класса Time

Рис. 4. Блок-схема кнопки метода setTime() класса Time

Метод departureTime() класса MFCTrainAppTrainSchedule на рисунке 5 отвечает за вывод оставшегося времени.

Блок-схема метода departureTime() класса MFCTrainAppTrainSchedule

Рис. 5. Блок-схема метода departureTime() класса MFCTrainAppTrainSchedule

Результаты работы программы

Программа вызывается запуском исполняемого файла, его размер 296 килобайта. Программа занимает 1,5 мегабайта оперативной памяти.

В качестве входных данных используется информация о рейсе. Номер рейса, город-назначение в виде трехбуквенного кода, и время отправки.

В данном программном продукте выходные данные выступают в качестве строки типа CString, полученной во время выполнения программы.

В результате запуска программы отобразится расписание поездов в виде пяти строк с информацией по каждому рейсу и оставшееся до отправления время. Работа программы на рисунке 6.

Работа программы

Рис. 6. Работа программы

Заключение

В результате работы спроектирована и разработана программа, которая отображает расписание поездов в виде строк с данными, а также оставшееся время до отбытия на основе библиотеки MFC в Visual C++ Studio.

Литература:

  1. Марапулец Ю. В. Язык С++. Основы программирования. П.-Камчатский: КамГУ им. Витуса Беринга, 2011. — 158 с.
  2. Страуструп Б. Язык программирования С++. 3-е изд. — М.: Бином, 2011
  3. Стивен Прата. Язык программирования С: Лекции и упражнения: Пер. с англ./ Стивен Прата — К.: ДиаСофт, 2000. — 432 с.
Основные термины (генерируются автоматически): MFC, CDC, класс, оставшееся время, расписание поездов, блок-схема метода, вид строк, основа библиотеки, программный продукт, работа программы.


Похожие статьи

Работа с элементами GUI на примере приложения с использованием кроссплатформенного фреймворка Qt

В статье подробно разобран код приложения, написанного с использованием кроссплатформенного фреймворка Qt основанного на языке C++. Приложение Dynamic Layouts является одним из примеров, входящих в пакет Qt Creator. На примере данного приложения расс...

Абстрактные и динамически сгенерированные контроллеры в ASP.NET

В данной статье будет рассмотрен подход автоматически сгенерированных контроллеров в одной из самых популярных технологий для написания веб-сайтов — ASP.NET Core MVC.

Сравнительный анализ времени отображения экранов с использованием стандартного подхода в Android и библиотеки Jetpack Compose

В данной статье проводятся измерения скорости отображения интерфейса и сравнение Jetpack Compose со стандартным подходом создания интерфейсов. Измеряется скорость отображения с использованием режима отладки и R8, а также комбинированием подходом при ...

Оформление документов в системе компьютерной вёрстки TeX

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

Проектирование информационной системы при помощи UML-диаграмм на примере информационной системы ресторана

В данной статье рассматривается проектирование информационной системы при помощи UML-диаграмм. Для построения диаграмм используется case-средство Visual Paradigm.

Разработка программы для оптического распознавания символов с помощью Tesseract

В данной статье наглядно и подробно рассмотрен пример работы с библиотекой Tesseract ORC, создана программа для распознавания текста с фото.

Разработка проекта расписания учебного заведения

В статье рассматривается разработка проекта расписания учебного заведения включающее в себя базу данных, windows приложение и web-приложение.

Использование сервиса API SendGrid для реализации отправки Email-сообщений в проекте ASP.NET Core

В данной статье рассмотрено использование Email-рассылки при помощи API SendGrid в проекте ASP.NET Core.

Исследование процессов внутри виртуальной машины Java

В статье подробно описываются процессы виртуальной машины Javа, на что выделяется память, как устроена JVM, как в нее попадает код и как он исполняется.

Использование графических решений в разработке мобильных приложений под управлением операционной системы Android-12

В статье автор пытается определить необходимые графические средства для реализации интерфейса приложения, разрабатываемого для операционной системы Android версии 12 и выше. Были определены ключевые инструменты для контекстной ячейки собеседника, кот...

Похожие статьи

Работа с элементами GUI на примере приложения с использованием кроссплатформенного фреймворка Qt

В статье подробно разобран код приложения, написанного с использованием кроссплатформенного фреймворка Qt основанного на языке C++. Приложение Dynamic Layouts является одним из примеров, входящих в пакет Qt Creator. На примере данного приложения расс...

Абстрактные и динамически сгенерированные контроллеры в ASP.NET

В данной статье будет рассмотрен подход автоматически сгенерированных контроллеров в одной из самых популярных технологий для написания веб-сайтов — ASP.NET Core MVC.

Сравнительный анализ времени отображения экранов с использованием стандартного подхода в Android и библиотеки Jetpack Compose

В данной статье проводятся измерения скорости отображения интерфейса и сравнение Jetpack Compose со стандартным подходом создания интерфейсов. Измеряется скорость отображения с использованием режима отладки и R8, а также комбинированием подходом при ...

Оформление документов в системе компьютерной вёрстки TeX

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

Проектирование информационной системы при помощи UML-диаграмм на примере информационной системы ресторана

В данной статье рассматривается проектирование информационной системы при помощи UML-диаграмм. Для построения диаграмм используется case-средство Visual Paradigm.

Разработка программы для оптического распознавания символов с помощью Tesseract

В данной статье наглядно и подробно рассмотрен пример работы с библиотекой Tesseract ORC, создана программа для распознавания текста с фото.

Разработка проекта расписания учебного заведения

В статье рассматривается разработка проекта расписания учебного заведения включающее в себя базу данных, windows приложение и web-приложение.

Использование сервиса API SendGrid для реализации отправки Email-сообщений в проекте ASP.NET Core

В данной статье рассмотрено использование Email-рассылки при помощи API SendGrid в проекте ASP.NET Core.

Исследование процессов внутри виртуальной машины Java

В статье подробно описываются процессы виртуальной машины Javа, на что выделяется память, как устроена JVM, как в нее попадает код и как он исполняется.

Использование графических решений в разработке мобильных приложений под управлением операционной системы Android-12

В статье автор пытается определить необходимые графические средства для реализации интерфейса приложения, разрабатываемого для операционной системы Android версии 12 и выше. Были определены ключевые инструменты для контекстной ячейки собеседника, кот...

Задать вопрос