Разработка программного приложения при помощи имитационного моделирования
Разработка класса на языке программирования C++, моделирующего метод, который обеспечивает управление объектом со стороны пользователя. Характеристика основных компонентов, из которых состоит экранная форма разработанного программного приложения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 29.04.2021 |
Размер файла | 195,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Разработка программного приложения при помощи имитационного моделирования
Балашов Г.С.
Лифт
В лифте есть 9 кнопок, соответствующих этажам, и кнопка открытия/закрытия дверей. Нажатием на каждую кнопку сопровождается движение лифта на соответствующий этаж. Движение от этажа к этажу осуществляется в течение одной минуты (в условных единицах времени). Двери могут открываться во время остановки и не могут - во время движения. При нажатии кнопки этажа с открытыми дверьми двери автоматически закрываются. С одного этажа на один и тот же этаж лифт в движение не приводится. Счётчик этажей реализовать визуально. Начальная конфигурация: лифт на первом этаже двери открыты.
Задание.
Разработать класс на языке C++, моделирующий объект, описанный в варианте заданий. Этот класс обязательно должен содержать метод, который обеспечивает управление объектом со стороны пользователя. Вызов только этого метода для объекта разработанного класса должен присутствовать в функции main(). Любое изменение состояния объекта, описанного в задании, должно отображаться на экране.
КОД СElevator.h
enum state { on, off }; //определение типа для элемента, поддерживающего состояние включён/выключен
enum door { open, close }; //определение типа для элемента, поддерживающего состояние открыт/закрыт
class CElevator {
//объявление приватных членов класса
door curr_door; //поле для описания состояния двери
state curr_movement; //поле для описания состояния движения лифта
int floor;
int number_of_floor;// поле для описания номера этажа
int time; //время
void take_door(void); //метод, изменяющий положение двери
int push_button(void); //метод, обрабатывающий работу с кнопками лифта
void ready(void); //метод, обрабатывающий окончание работы лифта
public: //объяснение общедоступных членов класса
// методы класса::
CElevator(); //конструктор;
void Run();
};
КОД Elevator.cpp
#include "CElevator.h"
#include <stdlib.h>
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
using namespace std;
//реализация методов класса
void menu() //выводит на экран меню
{
cout << "\n 1 - Открыть/Закрыть двери \n";
cout << " 2 - Выбрать номер этажа \n";
cout << " ESC - выход\n";
}
CElevator::CElevator() //вызов конструктора
{
curr_movement = off; //движения нет
curr_door = open; //дверь открыта
floor = 1; // 1 этаж
time = -1;
}
void CElevator::take_door()
{
if (curr_door == open) //если дверь открыта
{
curr_door = close; //закрываем дверь
cout << "\nДверь закрыта\n";
}
else //если дверь закрыта
{
if (curr_movement == on)
{
cout << "\nЛифт в движении, подождите!\n";
}
else
{
curr_door = open; //открываем дверь
cout << "\nДверь открыта\n";
}
}
return;
}
int CElevator::push_button()
{
if (curr_door == open) //если дверь открыта
{
cout << "\nНажмите на кнопку необходимого этажа: ";
cin >> number_of_floor;
while (number_of_floor < 1 || number_of_floor > 10)
{
cout << "\nПовторите пожалуйста ввод этажа (от 1 до 10) : ";
cin >> number_of_floor;
}
}
else //если дверь закрыта
{
number_of_floor = NULL;
}
return number_of_floor;
}
void CElevator::ready()
{
curr_movement = off; //движения нет
curr_door = open; //дверь открыта
time = -1;
cout << "\nЛифт прибыл!\n";
cout << "\nДвери открыты!\n";
}
void CElevator::Run()
{
int key, number;
do
{
while (!_kbhit() && time>0) //функция kbhit() возвращает истину, если пользователь нажал клавишу
{
time--; //вычитаем секунду из времени, оставшегося до конца приготовления еды
if (number_of_floor > floor)
{
for (int i = floor; i < number_of_floor+1; i++)
{
Sleep(400); //задержка в 400 мс
cout << "\nOжидайте.... ";
cout << "\nЛифт прибыл на "<< i << " этаж!";
if (i == number_of_floor)
{
floor = number_of_floor;
break;
}
}
}
if (number_of_floor < floor)
{
for (int i = floor; i > number_of_floor-1; i--)
{
Sleep(400); //задержка в 400 мс
cout << "\nOжидайте.... ";
cout << "\nЛифт прибыл на " << i << " этаж!";
if (i == number_of_floor)
{
floor = number_of_floor;
break;
}
}
}
}
if (time == 0) //если лифт приехал, вызываем метод ready();
{
floor = number_of_floor;
ready();
}
menu();
key = _getch();
switch (key)
{
case '1': take_door(); break;
case '2':
push_button();
if (number_of_floor == NULL)
{
cout << "\nДвери закрыты, откройте двери или дождитесь пока лифт приедет!\n";
break;
}
if (floor == number_of_floor)
{
cout << "\nВы уже находитесь на нужном вам этаже!\n";
}
else
{
time = 15;
curr_door = close;
cout << "\nДвери закрываются!\n";
}
break;
}
fflush(stdin);
} while (key != 27);
return;
КОД main.cpp
#include "CElevator.h"
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <stdlib.h>
#include <time.h>
int main()
{
setlocale(0, "RUS"); // обеспечиваем вывод в консольное окно символов кириллицы
CElevator E; //создается объект класса, при этом автоматически вызывается конструктор
E.Run();
return 0;
}
программный класс пользователь экранный
Рис. 1. Экранные формы
Размещено на Allbest.ru
...Подобные документы
Разработка приложения, которое будет выполнять функции показа точного времени и точной даты. Определение дополнительных функций разработанного приложения. Рассмотрение основных этапов создания программного продукта. Результаты тестирования приложения.
курсовая работа [2,2 M], добавлен 14.04.2019Архитектура и история создания операционной системы Android. Язык программирования Java. Выбор средства для реализации Android приложения. Программная реализация Android приложения. Проведение тестирования разработанного программного обеспечения.
курсовая работа [167,8 K], добавлен 18.01.2017Назначение и возможности разработанного приложения для контроля активности сетевых и периферийных устройств предприятия. Язык программирования Java. Распределенные многоуровневые приложения. Структура базы данных, интерфейс разработанного приложения.
курсовая работа [1,0 M], добавлен 16.12.2012Спецификация требований к разрабатываемому приложению. Разработка структурной схемы интерфейса. Описание алгоритма шифрования DES. Разработка программного кода приложения "DES". Проведение исследования основных шагов для генерации ключей и шифрования.
курсовая работа [398,4 K], добавлен 13.12.2022Принципы работы клавиатуры как физического устройства. Архитектура "интерактивных устройств ввода". Разработка программного приложения, выполняющего мониторинг активности пользователя на языке Borland Delphi 7. Назначение, функции и структура приложения.
курсовая работа [376,9 K], добавлен 18.07.2014Характеристика системы программирования. Главные составные части Delphi. Интерфейс программного приложения. Результаты работы программы. Руководство системного программиста и оператора. Язык программирования Delphi, среда компилятора Borland 7.0.
курсовая работа [1,6 M], добавлен 29.05.2013Описание истории развития информационных технологий. Исследование предпочтений по использованию программного обеспечения пользователя персонального компьютера начального уровня и разработка интерфейсного приложения в среде программирования Delphi.
дипломная работа [2,0 M], добавлен 14.01.2012Техника создания графики при помощи API функций, экспортируемых библиотекой GDI32.DLL. Разработка на языке программирования С++ в среде программирования Microsoft Visual C++ программы для отображения часов реального времени в цифровом и аналоговом виде.
курсовая работа [2,8 M], добавлен 27.01.2010Реализация выбора в языках высокого уровня, использование сложных типов. Формат оператора выбора в языке Pascal. Изображение оператора варианта на блок-схеме. Понятие массива и способы их вводов. Описание компонентов приложения и программного кода.
курсовая работа [585,6 K], добавлен 17.08.2013Разработка клиент-серверного приложения под управлением Windows на языке программирования Delphi, реализующего функции дистанционного обучения (тесты). Основная форма программы, которая состоит из меню, панели активации пользователя и панели чата.
курсовая работа [4,3 M], добавлен 15.04.2019Этапы разработки программного приложения, выполняющего синтаксический анализ программы на языке С и форматирование текста программы на языке С. Требования к программному обеспечению и интерфейсу. Конфигурация технических средств и оценка надежности.
курсовая работа [1,6 M], добавлен 22.06.2011Характеристика объектно-ориентированного, процедурного, функционального программирования. Выбор языка программирования для создания программного обеспечения для управления справочником "Спортсмены". Алгоритм работы приложения, пользовательский интерфейс.
курсовая работа [1,6 M], добавлен 23.02.2016Создание программного приложения для осуществления основных функций по заказу мебели, регистрации клиентов, сотрудничеству с поставщиками. Разработка интерфейса прикладной программы. Логическое проектирование базы данных и SQL-скрипт генерации таблиц.
курсовая работа [2,4 M], добавлен 11.02.2013Разработка программного приложения WindowsForms для работы с базой данных на языке высокого уровня C# в автономном режиме с использованием ADO.NET. Проектирование реляционной модели базы данных, интерфейса приложения, основных функций и возможностей.
курсовая работа [4,3 M], добавлен 30.06.2015Рaзрaботка программного приложения (синтаксического aнaлизaторa), которое производит проверку синтaксисa простейшей программы на языке С++. Процедура проверки арифметических и логический выражений. Механизм удаления всех фиктивных переменных из программы.
курсовая работа [27,2 K], добавлен 28.06.2011Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Разработка спецификации программного обеспечения и на ее основе кода программного продукта. Отладка программы "трассировкой", ее тестирование и оптимизация.
курсовая работа [501,4 K], добавлен 07.12.2016Обзор средств компьютерного имитационного моделирования по созданию веб-приложения для визуализации имитационных моделей. Система имитационного моделирования AnyLogic, Arena, SimuLab. Серверная, клиентская часть. Модель работы отдела банка и участка цеха.
дипломная работа [3,3 M], добавлен 25.05.2015Анализ целевой аудитории. Функциональные характеристики пользовательского приложения. Разработка алгоритмов и интерфейса программного продукта, функций рабочей области. Написание скриптов на языке C#. Тестирование программы методом чёрного ящика.
дипломная работа [1,5 M], добавлен 09.11.2016Анализ технических средств и современных технологий разработки программного обеспечения. Разработка программы для упрощения поиска студентов. Создание учетных записей администратора и обычного пользователя. Изучение правил построения программного кода.
курсовая работа [1,9 M], добавлен 30.09.2016Разработка программного приложения по учёту клиентов ОВО при ОВД по Боровскому району. Требования к техническому и программному обеспечению. Аномалии и защитное программирование. Структура таблиц для хранения информации и описание алгоритмов ее обработки.
курсовая работа [3,9 M], добавлен 17.07.2014