Разработка программного приложения при помощи имитационного моделирования

Разработка класса на языке программирования 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.