Моделирование работы автовокзала
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
};_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