Руководство программиста
Все файлы проекта располагаются в директории с наименованием турникет-смо. В проект входят: файл проекта Delphi Lab_SMO. dpr, файлы исходного текста программы Programma, Unit2, Settings и Results, файл справки (Руководство пользователя) и исполняемый файл Lab_SMO. exe.
Программа работает с двумя классами TTurniket и T4el. TTurniket представляет собой класс содержащий в себе поля, характеризующие аппарат обслуживания.
TTurniket = object // Аппарат
Lab: TLabel; // Label используется для вывода результатов
Status: Boolean; // Статус. Занят или свободен
T_Obsl: Integer;
R_Obsl: Integer;
Zayavki: Integer; // Кол-во заявок на аппарат
Rabota: Integer; // Время работы
Prostoy: Integer; // Время простоя
Queue_Len: Integer; // Длина очереди
Queue: ATimeRandomay [1. .1000] of T4el; // Массив зрителей
End;
Status - логическая переменная по значению которой программе ясно занят аппарат обслуживания или нет. Значение True (Истина) - занят, False (Ложь) - свободен. T_Obsl - поле содержащее в себе значение о времени, пройденном с начала обслуживания зрителя аппаратом. R_Obsl - время требуемое на обслуживание пришедшего зрителя. Задается случайно, в промежутке, заданном пользователем. Поле Zayavki содержит числовое значение равное количеству заявок обслуженных этим аппаратом. Поля Rabota и Prostoy соответствуют времени, в секундах, которое аппарат провел в рабочем состоянии и простоял в бездействии. Поле Queue_Len соответствует количеству человек, находящихся в очереди. Поле Queue является массивом типа T4el, в котором хранится информация о зрителях находящихся в очереди.
T4el = object // Человек в очереди
Status: Byte; // статус (может быть гостем)
T_in_Queue: Integer; // Время проведенное в очереди
End;
Класс T4el содержит в себе только два поля Status, обычный зритель или гость по приглашению, 0 - обычный зритель, 1 - гость по приглашению и T_in_Queue, время, проведенное зрителем в очереди.
Ниже приведены глобальные переменные, используемые в программе.
Eksp: Integer; // Номер эксперимента
Time: LongInt; // Общее время
G_Count: Integer; // Поступившие гости
Turn_Count: Integer; // Кол-во аппаратов
Turnikets: ATimeRandomay [1. .100] of TTurniket; // Масив аппаратов
ComeMin: Integer; // Мин. время появления зрителя
ComeMax: Integer; // Макс время появления зрителя
ServeMin: Integer; // Мин. время обслуживания зрителя
ServeMax: Integer; // Макс. время обслуживания зрителя
G_ComeMin: Integer; // Мин. время появления гостя
G_ComeMax: Integer; // Макс. время появления гостя
G_ServeMin: Integer; // Мин. время обслуживания гост
G_ServeMax: Integer; // Макс. время обслуживания гостя
People_Count: Integer; // Макс. кол-во транзакций (зрителей)
Count_Of_F_People: Integer; // Текущее кол-во транзакций
Speed: Integer; // Скорость моделирования
Max_Queue: Integer; // Макс. очередь
Full_Queue_Len: Integer; // Длина всей очереди
AverageQueue: Real; // Средняя длина очереди
Time_4el: Integer;
Random_4el: Integer;
Time_Guest: Integer;
Random_Guest: Integer;
Kartinka,k: byte;
change: boolean;
SetTime: Integer;
s: string; // picture;
В программе используются процедуры и функции, которые написаны для удобства работы и понимания программы.
Function Zna4_Read (ET: TEdit; Min: Integer; Max: Integer): Integer;
// чтение значения из компонента, проверка на корректность и допустимые значения
Procedure ReNew (Ap_Cnt: Integer); // Обновление аппаратов
Function TIMERANDOM (Min: Integer; Max: Integer): Integer; // Случайная величина в заданном промежутке
Procedure Add_4el; // Добавление зрителя в очередь
Procedure Add_G; // Добавление гостя в очередь
Procedure Show_Report; // Добавление записей в лист отчета
Работа всех этих функций и процедур описана в приложении курсового проекта.
