Моделирование работы виртуального банка

Страницы работы

Содержание работы

Лабораторная работа №1

.Необходимо смоделировать работу виртуального банка. Клиент, приходя в банк встает в одну из касс для обслуживания. У кассы может стоять очередь из других клиентов пришедших ранее. Если у всех касс очередь, тогда клиент встает в одну из них по своему усмотрению. У каждого клиента есть время ожидания, и время обслуживания. Клиент, прождав свое время ожидания(простояв в очереди) уходит не обслуженным. После того как клиент начал обслуживаться, его время ожидания останавливается и соответственно меняется время обслуживания. В каждой кассе по одному кассиру. Кассир может находится в 3 состояниях:

1)  занят клиентом,

2)  свободен,

3)  занят начальником.

Начальник в банке один. Он по своему усмотрению может подойти к любому кассиру и отвлечь его на некоторое время. При этом независимо от того занят был кассир клиентом или свободен, он вынужден прервать свою работу и начать работу с начальником. После того как начальник ушел, кассир возобновляет свою работу. У клиента кассира, к которому пришел начальник при этом время обслуживания приостанавливается, а время ожидания наоборот продолжает убывать. Даже возможна ситуация, когда клиент, начав обслуживаться и быв прерван пришедшим начальником  уходит не дождавшись окончания обслуживания (т.е. истекло время ожидания). Клиент кассира, которого отвлек начальник после того как начальник ушел, продолжает обслуживаться кассиром в том случае если у него не истекло время ожидания.

Замечание по реализации

  1. Каждого клиента реализовать в отдельном потоке.
  2. Каждого кассира также реализовать  в отдельном потоке.
  3. Работу начальника также реализовать в отдельном потоке
  4. Синхронизацию потоков производить с использованием объектов синхронизации: критические секции, события

Весь процесс работы банка отобразить на экране схематически:

1)  Отображать кассы, очереди клиентов в кассы, начальника

2)  У начальника показывать время его работы (меняющиеся динамически)

3)  У каждого клиента показывать текущее время ожидания с текущим временем обслуживания (меняющиеся динамически)

4)  Отображать текущее состояние банка 1 раз в секунду.

Похожие материалы

Информация о работе

Тип:
Задания на лабораторные работы
Размер файла:
28 Kb
Скачали:
0