Моделирование работы автовокзала

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

Оглавление

 

Введение

. Постановка задачи

. Разработка приложения

.1 Класс Моделирование

.2 Процесс моделирования

.3 Обработка и печать результатов моделирования

.4 Работа программы моделирования

Литература

Приложения

 

Введение

 

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

В данном курсовом проекте будет смоделирована работа автовокзала.

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

 

1. Постановка задачи

 

Разрабатывается программа, которая моделирует работу автовокзала. Клиенты приходят на автовокзал, встают в очередь к одному из кассиров, в зависимости от пункта назначения, обслуживаются и уходят, также производится отправка рейсов согласно расписанию. Программа на абстрактном уровне воспроизводит происходящие события в темпе искусственного времени, имитирующего реальное время. После имитации заданного интервала времени работы автовокзала программа печатает общее количество обслуженных клиентов, среднее время обслуживания клиентов, а также количество обслуженных клиентов, среднее время обслуживания клиентов по каждому направлению. Модельное время продвигается с постоянным шагом. Времена прихода и обслуживания клиентов формируются при помощи генераторов случайных чисел. При запуске программы пользователем вводятся значения параметров моделируемой системы (время моделирования, частота прихода клиентов).

 

2. Разработка приложения

 

.1 Класс Моделирование

 

В ходе работы программы для клиента генерируется время появления следующего клиента, которое представляется как объект класса Time и является объектом класса Simulation. В цикле моделирования идет проверка на совпадение текущего времени и времени появления следующего клиента, если совпадение есть, генерируется время появления следующего клиента, а в журнал событий записывается время появления клиента и его номер.

Для генерирования времени появления используется генератор случайных чисел, реализованный в программе как функция-элемент класса Simulation. Функция-элемент Client_arrival(curr, num) этого класса генерирует случайное целое число Х из интервала [0, num] с помощью объекта класса Random, после чего число минут (Х + 1) прибавляется к текущему времени curr. Тем самым получается время появления следующего клиента.

Клиент представлется как объект класса client, который содержит следующие закрытые данные-элементы:

аrrive - время появления клиента_time - время обслуживания на кассе_time- время отправки рейсаномер клиента- место назначения

После появления клиента в цикле моделирования идет его инициализация с помощью функции-элемента класса client, которая устанавливает время появления, номер, время обслуживания на кассе и место назначения генерируются с помощью объекта класса Random. Время отправки устанавливается при продаже билета. После инициализации клиент помещается в нужную кассу в зависимости от места назначения. В классехранится список касс, каждая из которых представлена объектом класса ticket_office, в котором содержится очередь для клиентов, а также направление, представленное классом direction, который содержит список городов (класс city), в каждом городе имеется список рейсов(класс Run). Тем самым реализован один из двух доступных в ООП способов повторного использования программного кода - композиция.

После помещения клиента в очередь проверяются все очереди на наличие клиентов, которые должны обслуживаться. Если такие имеются, ведется поиск билета на самый ранний по отношению к текущему времени рейс. Количество билетов на каждый рейс ограничено 40 шт. Если билет продан, то в журнал событий записывается время продажи, номер клиента, место назначения, если нет - время обслуживания клиента и его номер.

В конце каждой итерации цикла моделирования уменьшается время ожидания всех клиентов в очередях на 1 минуту.

В начале каждой итерации цикла моделирования проверяется наличие отправки рейса с помощью функции RunDeparture(curr_time, textWritter), если рейс отправляется, то в журнал событий производится запись времени, направления рейса и количества пассажиров.

 

2.2 Процесс моделирования

 

Процесс моделирования запускается при нажатии на соответствующую кнопку в диалоговом окне путем вызова функции StartSimulation(Time b, Time sim, int num, ProgressBar bar) через объект класса Simulation, где b - время начала моделирования, sim - время завершения моделирования, num - частота появления клиентов. Все эти параметры задаются в диалоговом окне. При этом открывается файл "test" для регистрации событий - журнал событий. Он позволяет детально исследовать поведение моделируемой системы.

Таким образом, функция StartSimulation(Time b, Time sim, int num, ProgressBar bar) имеет следующий вид:

public void StartSimulation(Time b, Time sim, int num, ProgressBar bar)

tmp_list_client;//t=0;_Service();//,,">{textWritter