Моделирование работы автовокзала
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
e;if (t1.min t2.min) return false;return false;
}static bool operator <=(Time t1, Time t2)
{((t1.hour < t2.hour) || ((t1.hour == t2.hour) && (t1.min <= t2.min))) return true;return false;
}
//----------------------------------------------------
//добавление нескольких минут, для генерации времени появления клиентаvoid PlusMin(int m)
{+= m;(min >= 60)
{-= 60;++;
}
}int getMin()
{min;
}int getHour()
{hour;
}
}
//-----------------------------------
//-----Клиент-----//client
{Time arrive;//время появления клиентаTime service_time;//время обслуживания на кассеTime departure_time;//время отправки рейсаint clientID;//номер клиентаstring destination;//место назначения
//конструкторclient()
{= new Time();_time = new Time();_time = new Time();= 0;= "\0";
}
//копирование объектаvoid CopyClient(client t)
{.CopyTime(t.arrive);_time.CopyTime(t.service_time);_time.CopyTime(t.departure_time);= t.clientID;= t.destination;
}
//время обслуживанияTime getServiceTime()
{service_time;
}
//"идентификация" клиентаvoid setAll(int id, Time arr)
{.CopyTime(arr);= id;rnd = new Random();x = new Random();m = 0;.Sleep(15);n = rnd.Next(8) + 1;(n)
{1: destination = "Томск"; break;2: destination = "Асино"; break;3: destination = "Стрежевой"; break;4: destination = "Омск"; break;5: destination = "Калачинск"; break;6: destination = "Тара"; break;7: destination = "Барнаул"; break;8: destination = "Камень-на-Оби"; break;9: destination = "Бийск"; break;
}= rnd.Next(4) + 1;_time.setTime(0, m);
}
//установка времени обслуживанияvoid setServiceTime(Time t)
{_time.CopyTime(t);
}
//уменьшение времени ожиданияvoid NewServiceTime()
{_time--;
}
//номер клиентаint getClientId()
{clientID;
}
//место назначенияstring getDestination()
{destination;
}
// время отправкиTime getDepartureTime()
{departure_time;
}
// время отправкиvoid setDepartureTime(Time dt)
{_time.CopyTime(dt);
}
}
//------------------------------------------
//-----Рейс-----//Run
{int count_ticket;//количество оставшихся билетовTime departure;//время отправки
//конструктор без параметровRun()
{_ticket = 0;= new Time();
}
//конструктор с параметрамиRun(int count, Time dep)
{_ticket = count;= new Time();.CopyTime(dep);
}
//копирование объектаvoid CopyRun(Run t)
{_ticket = t.count_ticket;.CopyTime(t.departure);
}
//инициализация напрвленияvoid setRun (int count, Time dep)
{_ticket = count;.CopyTime(dep);
}
//возврат времени отправки рейсаTime getDepartureTime()
{departure;
}
//количество оставшихся билетовint getCountTicket()
{count_ticket;
}
//количество проданных билетовint getNumClients()
{(40 - count_ticket);
}
//билет проданvoid setCountTicket()
{_ticket--;
}
}
//-----------------------------------------
//-----Город-----//city
{string city_name;int count_ticket;//количество проданных билетовList list_Run;
//конструктор без параметровcity()
{_ticket = 0;_name = "\0";_Run = new List();
}
//конструктор с параметрамиcity(string name)
{_name = name;_Run = new List();
}
//копирование объектаvoid CopyCity(city t)
{tmp = new Run();_name = t.city_name;_ticket = t.count_ticket;
//копирование списка(int i = 0; i < t.list_Run.Count(); i++)
{.CopyRun((Run)t.list_Run.ToArray().GetValue(i));_Run.Add(tmp);
}
}
//добавление рейса в городvoid AddRun(Run r)
{rr = new Run();.CopyRun(r);_Run.Add(rr);
}
//возврат ссылки на список рейсовList getListRun()
{list_Run;
}
//возврат количества проданных билетовstring getNameCity()
{city_name;
}
//установка количества проданных билетовvoid setCountTicket()
{_ticket++;
}
//возврат количества проданных билетовint getCountTicket()
{count_ticket;
}
}
//------------------------------------------------
//-----Направление-----//direction
{string direction_name;List list_city;//список городов
//конструктор с параметрамиdirection(string name)
{_name = name;_city = new List();
}
//конструктор без параметровdirection()
{_name = "\0";_city = new List();
}
//добавление городаvoid AddCity(city c)
{n = new city();.CopyCity(c);_city.Add(c);
}
//возврат ссылки на список городовList getListCity()
{ ptr = list_city;ptr;
}
//возврат названия направленияstring getNameDirection()
{direction_name;
}
//установка названия направленияvoid setNameDirection(string name)
{_name = name;
}
}
//------------------------------------------------
//-----Касса-----//ticket_office
{Time waiting_time;//время ожидания очередиTime average_time;//среднее время ожиданияdirection one;//направлениеint count_client;//количество обслуженных клиентовint count_ticket;//количество проданных билетовList line;//очередь клиентов
//конструкторticket_office(string name)
{_ticket = 0;_client = 0;_time = new Time(0, 0);_time = new Time(0, 0);= new direction(name);= new List();
}Time GetAverageTime()
{average_time;
}
//уменьшение времени ожидания на 1 минутуvoid SetTime()
{(waiting_time.getHour() != 0 || waiting_time.getMin() != 0)
{_time--;n = line.Count()-1;t;(n != -1)
{= (client)line.ToArray().GetValue(n);.NewServiceTime();-;
}
}
}
//увеличение количества обслуженных клиентовvoid setCountClient()
{_client++;
}
//возврат количества обслуженных клиентовint getCountClient()
{count_client;
}
//увеличение количества проданных билетовvoid setCountTicket()
{_ticket++;
}
//возврат количества проданных билетовint getCountTicket()
{count_ticket;
}
//возврат указателя на очередь клиентовList getLineClient()
{line;
}
//добавление в очередь клиетаvoid AddToLine(client a)
{t = new client();.CopyClient(a);_time.CopyTime(waiting_time + t.getServiceTime());.setServiceTime(waiting_time);(t.getClientId() < 1)
{_time.CopyTime(average_time + waiting_time);
}
{_time.CopyTime((average_time + waiting_time) / 2);
}.Add(t);
}
//добавление города в направлениеvoid InsertCity(city c)
{.AddCity(c);
}
//возврат названия направленияstring getDirectionName()
{one.getNameDirection();
}
//возврат ссылки на направлениеdirection getDirection()
{one;
}
}
//----------------------------------------------------Simulation
{Time base_time;//начальное времяTime simul_time;//время симуляцииTime next_arrival;//время прибытия следующего клиентаint CountClient;//количество клиентовTime Average_time;//среднее время ожиданияList service;// список касс
//конструкторSimulation()
{_time = new Time();_arrival = new Time();_time = new Time();_time = new Time();= 0;= new List();
}
//печать статистики в диалоговом окнеvoid Statistic(TextBox text)
{.Lines = new string[] { "Всего обслужено клиентов: " + Convert.ToString(CountClient)