Ознакомление с процессом проектирования дизайна табло аэропорта. Рассмотрение основных этапов программирования приложения. Изучение основных направлений организации моделирования и структуры для хранения накапливаемой информации о текущем моделировании.
Аннотация к работе
Оглавление
1.Постановка задачи
2. Проектирование дизайна
3.Анализ и проектирование
3.1. «Рисуем» общие черты
3.2. «Первый блин всегда комом»
3.3. Небольшие итоги и «Как это работает?»
Приложения
1.Постановка задачи
Приложение должно моделировать работу аэропорта на заданном промежутке времени T. В аэропорт будут прилетать самолеты с некоторой определенной частотой t1. У аэропорта в наличии одна полоса. Если самолет не может сесть в данный момент он делает дополнительный круг. Через Х мин. самолет делает запрос на посадку.
Если после N круга он не садится, то борт отправляется на запасной аэродром. Во время посадки на основной аэродром, полоса считается занятой на время тпосадки..
Севшие самолеты находятся в аэропорту некоторое время t2, после чего готовы к взлету . Если полоса свободна, то самолет приступает к взлету и полоса становится занятой на время твзлета . Если полоса занята, то вылет задерживают до освобождения полосы. На время взлета и время посадки влияют погодные условия.
Все самолеты находящиеся в очереди на взлет(посадку) после истечении времени работы аэропорта никак не учитываются.
2. Проектирование дизайна
Этот вопрос решился «быстро и безболезненно». Сразу было решено использовать темные тона, такое цветовое решение не так сильно раздражает глаза.
Стиль главного окна является одним из стандартных FIXEDTOOLWINDOW.
На главном окне располагается 13 полей с возможностью ввода или выбора информации. Девять из них для ввода границ интервалов, три для условий погоды, один для пути журнала Они выделены черным или более светлыми тонами.
В правой верхней части окна располагается «монитор», на котором будут выведены результаты после работы программы. До начала работы на нем располагается надпись «АЭРОПОРТ», базовым элементом которой являются знаки «#».
Вид готовой рабочей программы представлен на Рис.1 и Рис.2.
3.Анализ и проектирование
3.1 «Рисуем» общие черты
Для начала сразу определимся с некоторыми условиями: 1. Программа будет написана без графической составляющей (кроме GUI).
2. Для создания программы будем использовать ООП язык C .
3. Среда для разработки Microsoft Visual Studio 2010 Professional Edition.
4. Тип проекта в данной среде: Windows Forms.
5. Общий класс, который будет отвечать за симуляцию и обработку данных, назовем Simulation.
За основу возьмем идею, использованную в методическом пособии «Программирование на языках высокого уровня» Р.Г.Шахмаметов,2006г., Новосибирск.
В работе аэропорта на данном уровне абстракции есть два основных события: посадка самолета и взлет самолета. Реализация всех структур и классов будет представлена отдельно (см. Приложение).
Необходимо разработать структуру
Событие: Тип события (посадка, взлет).
Время наступления события.
Продолжительность события.
Естественно очередь событий должна храниться в классе: Очередь: Элемент очереди (структура событие)
Методы: Самолет встал в очередь очереди.
Самолет покинул очередь.
Погодные условия следует представить отдельной структурой. Эта структура взята из наработок лабораторных работ. В дальнейшем, в программе будут введены коэффициенты соответствующему погодному явлению, которые будут влиять на продолжительность событий: Погода: Туман(нет, слабый, средний, сильный).
Осадки(нет, слабый, средний, сильный).
Ветер.
На входе, т.е. при создании экземпляра класса Simulation мы задаем: 1. Время работы аэропорта.
2. Интервал времени, через который будут прилетать самолеты.
3. Интервал времени нахождения самолета в аэропорту.
4. Погоду, которая будет влиять на время взлета и посадки(об этом позже).
Для получения случайных величин, будем использовать класс Random из упомянутого выше методического пособия. Этот класс был мною проверен и отлажен для корректной работы.
Приведем примерный прототип класса Simulation : 1. Данные: a. Погодные условия. b. Статус полосы (занята, свободна). c. Период симуляции. d. Очередь событий. e. Счетчик ушедших на запасной аэродром.
2. Методы: a. Запуск симуляции. b. Печать результатов. c. Установка значений
3.2 «Первый блин всегда комом»
После первой попытки формализовать класс, сразу возникла необходимость в дополнительных данных и методах. Данные о продолжительности событий посадки и взлета. Методы установки интервалов, а так же методы, которые скорее всего будут перенесены в область private: 1. Формирование события, с готовыми случайными данными;
2. Формирование времени ожидания для посадки/взлета;
3. Формирование времени, следующего появления события посадки/взлета;
Для организации моделирования было определено мною два направления: 1. Двигаться от события к событию, пропуская «холостое время работы».
2. Итеративный процесс, когда каждый проход состояний аэропорта увеличивался на единицу исчисления времени.
Первый вариант вызвал некоторые трудности. После этого я решил параллельно проверить