Моделирование работы автовокзала - Курсовая работа

бесплатно 0
4.5 62
Разработка программы, которая на абстрактном уровне воспроизводит происходящие события в темпе искусственного времени, имитирующего реальное время. Имитация заданного интервала времени работы автовокзала. Обработка и печать результатов моделирования.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Разработка приложения 2.1 Класс “Моделирование” 2.2 Процесс моделирования 2.3 Обработка и печать результатов моделирования 2.4 Работа программы моделирования Литература Приложения Введение Основным методом исследования систем является метод моделирования, т.е. способ теоретического анализа и практического действия, направленный на разработку и использование моделей. Клиенты приходят на автовокзал, встают в очередь к одному из кассиров, в зависимости от пункта назначения, обслуживаются и уходят, также производится отправка рейсов согласно расписанию. После имитации заданного интервала времени работы автовокзала программа печатает общее количество обслуженных клиентов, среднее время обслуживания клиентов, а также количество обслуженных клиентов, среднее время обслуживания клиентов по каждому направлению. Разработка приложения 2.1 Класс “Моделирование” В ходе работы программы для клиента генерируется время появления следующего клиента, которое представляется как объект класса Time и является объектом класса Simulation. Клиент представлется как объект класса client, который содержит следующие закрытые данные-элементы: аrrive - время появления клиента service_time - время обслуживания на кассе departure_time- время отправки рейса clientID- номер клиента destination - место назначения После появления клиента в цикле моделирования идет его инициализация с помощью функции-элемента класса client, которая устанавливает время появления, номер, время обслуживания на кассе и место назначения генерируются с помощью объекта класса Random. Таким образом, функция StartSimulation(Time b, Time sim, int num, ProgressBar bar) имеет следующий вид: public void StartSimulation(Time b, Time sim, int num, ProgressBar bar) { TextWriter textWritter = new StreamWriter(test.txt);//создаем журнал событий Time f = new Time(); base_time.CopyTime(b); simul_time.CopyTime(sim); f = simul_time - base_time; double fbar = (double)(f.getHour() * 60 f.getMin())/100;//значение Time curr_time = new Time();//текущее время Time add = new Time(); ticket_office tmp_off;//ссылка на кассу client tmp_client = new client(); client cl_service; List tmp_list_client;//ссылка на очередь клиентов int t = 0; Init_Service();//инициализация касс по направлениям, создание городов, рейсов //-------------цикл моделирования------------// Client_arrival(base_time, num);//устанавливаем время прибытия следующего клиента curr_time.CopyTime(base_time);//устанавливаем начальный момент времени for (; curr_time = 0 && h = 0 && m = 0 && h = 0 && m = 60) { t1.min -= 60; t1.hour ; } return t1; } //декремент public static Time operator --(Time t1) { t1.min--; if (t1.min = 60) { m -= 60; h ; } if (h > 23) { h -= 24; } return new Time(h, m); } //вычитание public static Time operator -(Time t1, Time t2) { int h = t1.hour - t2.hour, m = t1.min - t2.min; if (m (Time t1, Time t2) { if (t1.hour > t2.hour) return true; else if (t1.hour t2.min) return true; else if (t1.min =(Time t1, Time t2) { if ((t1.hour > t2.hour) || (t1.hour == t2.hour && t1.min >= t2.min)) return true; else return false; } public static bool operator t2.hour) return false; else if (t1.min t2.min) return false; else return false; } public static bool operator = 60) { min -= 60; hour ; } } public int getMin() { return min; } public int getHour() { return hour; } } //----------------------------------- //-----Клиент-----// class client { private Time arrive;//время появления клиента private Time service_time;//время обслуживания на кассе private Time departure_time;//время отправки рейса private int clientID;//номер клиента private string destination;//место назначения //конструктор public client() { arrive = new Time(); service_time = new Time(); departure_time = new Time(); clientID = 0; destination = \0; } //копирование объекта public void CopyClient(client t) { arrive.CopyTime(t.arrive); service_time.CopyTime(t.service_time); departure_time.CopyTime(t.departure_time); clientID = t.clientID; destination = t.destination; } //время обслуживания public Time getServiceTime() { return service_time; } //идентификация клиента public void setAll(int id, Time arr) { arrive.CopyTime(arr); clientID = id; Random rnd = new Random(); Random x = new Random(); int m = 0; Thread.Sleep(15); int n = rnd.Next(8) 1; switch(n) { case 1: destination = Томск; break; case 2: destination = Асино; break; case 3: destination = Стрежевой; break; case 4: destination = Омск; break; case 5: destination = Калачинск; break; case 6: destination = Тара; break; case 7: destination = Барнаул; break; case 8: destination = Камень-на-Оби; break; case 9: destination = Бийск; break; } m = rnd.Next(4) 1; service_time.setTime(0, m); } //установка времени обслуживания public void setServiceTime(Time t) { service_time.CopyTime(t); } //уменьшение времени ожидания public void NewServiceTime() { service_time--; } //номер клиента public int getClientId() { return clientID; } //место назначения public string

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?