Курсовая работа: Моделирование системы массового обслуживания

При нажатии на кнопку "Начать моделирование", выполняется процедура Button1Click, в которой происходит инициализация всех переменных, очистка всех необходимых полей, чтение параметров моделирования и активация таймера.

Далее запускается процедура Timer1Timer, в которой и представлен основной алгоритм работы программы.

Рассмотрим действия программы на одном шаге таймера.

Сначала программа проверяет очередь. Если очередь есть и есть свободный аппарат, то из очереди выбирается покупатель и прикрепляется к свободному аппарату. Аппараты представлены массивом app: array [1. .50] of boolean. Очередь - массивом croud: array [1. .30] of boolean.

Далее, если аппарат занят, то время обслуживания этим аппаратом клиента уменьшается на единицу. Если это время становится равным нулю, то аппарат получает статус свободного.

Затем если пришел новый клиент, т.е. переменная client, отвечающая за время появления нового клиента равна 0, то запускаются сначала процедура clientappear, а затем процедура apparat.

Процедура clientappear генерирует время появления нового покупателя.

В процедуре apparat происходит прикрепление покупателя к свободному аппарату, или же при отсутствии свободных аппаратов прикрепление к очереди, за что отвечает процедура CroudP. Длина очереди и время пребывания в ней задаются пользователем.

Далее, если очередь есть, то время пребывания покупателя в очереди уменьшается на единицу. Если это время становится равным нулю, то покупатель уходит.

Затем идет уменьшение переменной client на 1, а также приращение минут и выполняются действия, связанные с работой таймера на форме.

В конце выполняется процедура statistic, которая отвечает за вывод на экран статистических данных.

Процедура Button2Click останавливает процесс моделирования.

Таким образом, программа имеет следующие глобальные переменные и процедуры:

S: integer- всего обслужено покупателей;

FA: integer- кол-во свободных аппаратов;

Min: integer - минуты;

Hour: integer - часы;

Day: integer - дни;

Minmax: integer- максимальное число минут;

Daymax: integer- максимальное число дней;

Hourmax: integer- максимальное число часов;

Client: integer- время прихода нового клиента;

Croudcount: integer- покупателей в очереди;

cleft: integer- покупателей ушло;

app: array [1. .50] of boolean - аппараты;

apptime: array [1. .50] of byte - время обслуживания клиента;

obsl: array [1. .50] of integer - клиентов обслужено аппаратом;

appworktime: array [1. .50] of integer - время занятости аппарата;

croud: array [1. .30] of boolean - очередь;

К-во Просмотров: 485
Бесплатно скачать Курсовая работа: Моделирование системы массового обслуживания