Моделирование работы автовокзала

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

};_office t;();//вычисление среднего времени ожидания по всем кассам.AppendText(Environment.NewLine + "Среднее время ожидания: " + Average_time.printTime());(int i = 0; i < service.Count; i++)//печать статистики по кассам

{= (ticket_office)service.ToArray().GetValue(i);.AppendText(Environment.NewLine + t.getDirectionName());.AppendText(Environment.NewLine + "обслужено клиентов: "

+ Convert.ToString(t.getCountClient()));.AppendText(Environment.NewLine + "билетов продано: "

+ Convert.ToString(t.getCountTicket()));.AppendText(Environment.NewLine + "Среднее время ожидания: "

+ t.GetAverageTime().printTime());

}

}

//подсчет среднего времени одиданияvoid AverTime()

{temp = new Time(0,0);_office t;(int i = 0; i < service.Count; i++)

{= (ticket_office)service.ToArray().GetValue(i);= temp + t.GetAverageTime();

}_time = temp / (service.Count);

}

//возврат начального времениTime getBaseTime()

{base_time;

}

//возврат конечного времениTime getSimulTime()

{simul_time;

}

//устанока конечного времениvoid setSimulTime(Time sim)

{_time = sim;

}

//возврат количества обслуженных клиентовint getCountClient()

{CountClient;

}

//добавление кассы с уже заданным направлениемvoid AddTicketOffice(string name_direction)

{_office t = new ticket_office(name_direction);.Add(t);

}

//добавление города по направлениюvoid AddCity(string name_direct, string name_city)

{c = new city(name_city);tmp = SearchDirection(name_direct);.AddCity(c);

}

//поиск направления по названию, возвращается ссылкаdirection SearchDirection(string name_direct)

{_office tmp;n = service.Count() - 1;= (ticket_office)service.ToArray().GetValue(n);(tmp.getDirectionName() != name_direct)

{= (ticket_office)service.ToArray().GetValue(n);-;

}tmp.getDirection();

}

//поиск города по названию, возвращается ссылка на город

//функция используется для добавления рейсаcity SearchCity(string name_city)

{c;t;_office tmp;n = service.Count() - 1;k = 0;(true)//проверяем все кассы, пока не найдем нужный город

{= (ticket_office)service.ToArray().GetValue(n);= tmp.getDirection();= t.getListCity().Count() - 1;= (city)t.getListCity().ToArray().GetValue(k);(c.getNameCity() != name_city)

{(k == -1) break;= (city)t.getListCity().ToArray().GetValue(k);-;

}(c.getNameCity() == name_city) break;-;

}c;

}

//добавление рейса в городvoid AddRun(string name_city, Run r)

{c = SearchCity(name_city);.AddRun(r);

}

//добавление клиента в очередь в нужную кассуvoid AddClientToLine(client add)

{c;t;_office tmp_off;tmp = add;n = service.Count() - 1;k = 0;(true)

{_off = (ticket_office)service.ToArray().GetValue(n);= tmp_off.getDirection();= t.getListCity().Count() - 1;= (city)t.getListCity().ToArray().GetValue(k);((c.getNameCity() != tmp.getDestination()) && k != -1)

{= (city)t.getListCity().ToArray().GetValue(k);-;

}(c.getNameCity() == tmp.getDestination()) break;-;

}_off.AddToLine(tmp);

}

//функция выяснения появления клиента

//в качестве параметра передается среднее время между появлением клиентов(в минутах)Client_arrival(Time curr, int num)

{rnd = new Random();t = rnd.Next(num) + 1;_arrival.CopyTime(curr);_arrival.PlusMin(t);

}

//обслуживание клиентаvoid Service(ticket_office off, client _client, Time curr)

r=t.getListRun();_r=(Run)r.ToArray().GetValue(0);tmp2;_time.CopyTime(ttmp_r.getDepartureTime());(inti=0;i r = t.getListRun();_r = (Run)r.ToArray().GetValue(0);tmp2;_time.CopyTime(ttmp_r.getDepartureTime());(int i = 0; i < r.Count; i++)//поиск билета

=tmp2)&&(tmp2>=curr)&&(tmp_r.getCountTicket()!=0))">{_r = (Run)r.ToArray().GetValue(i);= tmp_r.getDepartureTime();(!yes)_time.CopyTime(tmp2);((curr = curr) && (tmp_r.getCountTicket() != 0))

{_time.CopyTime(tmp2);_r = (Run)r.ToArray().GetValue(i);= true;

}

}(!yes || tmp_time == curr)//если нет билетов или рейсов

{.setCountClient();//увеличиваем количество обслуженных клиентов

}

{.setCountClient();//увеличиваем количество обслуженных клиентов.setCountTicket();//увеличиваем количество проданных на кассе билетов.setCountTicket();////увеличиваем количество проданных билетов на определенный город_r.setCountTicket();//уменьшаем количество оставшихся билетов на определенный рейс

_client.setDepartureTime(tmp_time);//устанавливаем время отправления клиента

}

}

//функция уменьшает время ожидания всех клиетнов на 1 минуту

//используется в цикле моделированияvoid SetTimeAll()

{_office t;(int i = 0; i < service.Count; i++)

{= (ticket_office)service.ToArray().GetValue(i);.SetTime();

}

}

//инициализация касс по направлениям, создание городов, рейсовvoid Init_Service()

{run_time = new Time();//время отправки рейсаrun = new Run();("Томская область");("Томская область", "Томск");_time.setTime(10, 0);.setRun(40, run_time);("Томск", run);_time.setTime(12, 30);.setRun(40, run_time);("Томск", run);_time.setTime(16, 50);.setRun(40, run_time);("Томск", run);("Томская область", "Асино");_time.setTime(9, 30);.setRun(40, run_time);("Асино", run);_time.setTime(16, 10);.setRun(40, run_time);("Асино", run);_time.setTime(18, 50);.setRun(40, run_time);("Асино", run);("Томская область", "Стрежевой");_time.setTime(7, 30);.setRun(40, run_time);("Стрежевой", run);_time.setTime(12, 0);.setRun(40, run_time);("Стрежевой", run);_time.setTime(17, 20);.setRun(40, run_time);("Стрежевой", run);("Омская область");("Омская область", "Омск");_time.setTime(6, 30);.setRun(40, run_time);("Омск", run);_time.setTime(11, 40);.setRun(40, run_time);("Омск", run);_time.setTime(16, 50);.setRun(40, run_time);("Омск", run);("Омская область", "Калачинск");_time.setTime(9, 10);.setRun(40, run_time);("Калачинск", run);_time.setTime(10, 50);.setRun(40, run_time);("Калачинск", run);_time.setTime(18, 10);.setRun(40, run_time);("Калачинск", run);("Омская область", "Тара");_time.setTime(8, 00);.setRun(40, run_time);("Тара", run);_time.setTime(12, 00);.setRun(40, run_time);("Тара", run);_time.setTime(16, 00);.setRun(40, run_time);("Тара", run);("Алтайский край");("Алтайский край", "Барнаул");_time.setTime(10, 30);.setRun(40, run_time);("Барнаул", run);_time.setTime(13, 40);.setRun(40, run_time);("Барнаул", run);_time.setTime(17, 30);.setRun(40, run_time);("Барнаул", run);("Алтайский край", "Камень-на-Оби");_time.setTime(11, 30);.setRun(40, run_time);("Камень-на-Оби", run);_time.setTime(15, 40);.setRun(40, run_time);("Камень-на-Оби", run);_time.setTime(20, 30);.setRun(40, run_time);("Камень-на-Оби", run);("Алтайский край", "Бийск");_time.setTime(8, 30);.setRun(40, run_time);("Бийск", run);_time.setTime(17, 00);.setRun(40, run_time);("Бийск", run);_time.setTime(21, 50);.setRun(40, run_time);("Бийск", run);

}

//моделирование отправления рейсаvoid RunDeparture(Time dep, TextWriter text)

tmp_list_city;tmp_city; tm