Смекни!
smekni.com

Программа имитационного моделирования работы банка (стр. 2 из 2)

(1.3)

где

- параметр распределения (среднее время обслуживания клиентов у кассы).

Соответственно плотность распределения:

(1.4)

Для моделирования времени обслуживания клиента у кассы проинтегрируем функцию распределения

:

(1.5)

От датчика случайных чисел равномерно распределенных на интервале [0 - 1] получаем очередное число Х, которое подставляем в формулу (1.5) и вычисляем

:

(1.6)

Из соотношения (1.6) найдем

соответствующее Х, которое будем принимать за случайное число, обозначающее время обслуживания данной кассой.

3. ПРОГРАММНОЕ РЕШЕНИЕ

Программа имитационного моделирования работы банка написана на языке C с помощью среды разработки Borland C++ 3.1.

Исходный текст программы состоит из следующих файлов:

– main.c – содержит реализацию основных функций программы:

void ZovnVydProg (void) – перерисовка интерфейса программы;

void InZminnyh (void) – очистка переменных;

void Zapusk (void) – прием входных данных и их обработка.

Данный файл содержит так же описание используемых глобальных переменных.

– main.h – файл содержит прототипы основных функций, реализованных в файле main.c, а так же прототипы функций вычисления, реализованных в файле engine.c;

– engine.c – файл содержит реализацию функций вычисления:

ZVIT* Obchyslennya (void) – функция, содержащая основной цикл вычисления;

void KorChasuObsl (void) – коррекция времени обслуживания каждого клиента;

int TObsl(void) – моделирование времени обслуживания для очередного клиента;

int MinCherga (void) – определение номера кассы с минимальной очередью;

void DobKlUChergy (void) – постановка клиента в очередь, либо к свободной кассы;

int Ksi(void) – моделирование времени прихода очередного клиента;


4. Инструкция пользователю

1. Программа имитационного моделирования работы банка расположена по следующему адресу:

С:\П – 00 – 51\К&F\Bank.exe

2. На запрос программы:

« Введите количество касс : »

Вводим предполагаемое (данное) количество касс обслуживающих клиентов.

3. На запрос программы:

« Введите интенсивность потока r: »

Вводим r - интенсивность потока, равную среднему числу событий, которые появляются в единицу времени.

4. На запрос программы:

« Введите параметр распределения lambda: »

Вводим

равное среднему времени обслуживания клиентов у кассы.

5. На запрос программы:

« Введите максимальное время ожидания клиента: »

Вводим k равное максимальному времени в минутах ожидания клиентов.


5. РУКОВОДСТВО ПРОГРАММИСТА

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

– Для изменения продолжительности рабочего дня необходимо изменить значение константы WORK_TIME, описанную в файле engine.c;

– Для изменения закона распределения, использующегося для моделирования времени прихода следующего клиента необходимо изменить содержимое функции int Ksi(void), подставив в тело реализацию необходимого распределения;

– Для изменения закона распределения, использующегося для моделирования времени обслуживания клиента кассиром необходимо изменить содержимое функции int TObsl(void), подставив в тело реализацию необходимого распределения;

– В случае возникновения необходимости ввода времени работы банка пользователем при каждом запуске программы необходимо сделать следующие изменения:

1. Добавить название соответствующего поля ввода к массиву названия полей *ZagolPol[];

2. Добавить окно поля ввода в функцию void ZovnVydProg(void);

3. Увеличить верхнюю границу счетчика в цикле перерисовки названий полей функции void ZovnVydProg (void);

4. Добавить соответствующий обработчик в функцию void Zapusk(void);

5. В файле engine.c изменить строку #define WORK_TIME 8*60 строкой #define WORK_TIME timevar, где timevar – имя переменной, содержащей введенное пользователем время работы банка;

– В случае возникновения необходимости получения более детальной информации о работе банка необходимо добавить соответствующие переменные в структуру ZVIT и обеспечить заполнение этих переменных значениями в соответствующих функциях.


6.

ПРИЛОЖЕНИЕ А – «Блок-схема имитационного моделирования работы банка»



Процедура постановки клиента в очередь


Блок схема корректировки времени обслуживания клиентов у касс и продвижения очереди.