Разработать консольное приложение, которое с помощью абстрактной структуры данных ОЧЕРЕДЬ моделирует
работу аэропорта (или другой системы массового обслуживания) с одной
взлётно-посадочной полосой, которую в каждый момент времени (цикл for) может
использовать только один самолёт – для взлёта или посадки. Приложение
должно:
1. сделать запрос на ввод данных для моделирования:
ü максимальное кол-во самолётов в очереди на посадку и взлёт; интервал времени для
моделирования;
ü предполагаемое (ожидаемое) число прилетающих и взлетающих самолётов в единицу времени;
2. используя псевдослучайные числа, удовлетворяющие закону распределения Пуассона,
смоделировать кол-во запросов на взлёт и посадку самолётов в каждый момент
времени;
3. в случае, если очередь на посадку не пуста, то использовать взлётную полосу для
посадки самолёта, в противном случае использовать её для взлёта;
4. если какая-либо очередь заполнена, «отправить» самолёт на другой аэропорт (вывести
сообщение в консоль) в случае посадки или «попросить» подождать некоторое время
в случае взлёта;
5. все события (запрос на взлёт/посадку, взлёт/посадка, отказ во взлёте/посадке) сопровождаются соответствующими сообщениями в консоли;
6. вести статистику:
ü сколько получено запросов на взлёт/посадку;
ü сколько принято запросов на взлёт/посадку;
ü сколько самолётов взлетело/приземлилось;
ü сколько было отказов на взлёт/посадку;
ü общее время ожидания взлетевших/приземлившихся самолётов;
ü время простоя взлётной полосы (обе очереди пусты).
7. по окончании интервала моделирования (цикл for)вывести в консоль (файл) отчёт,
который содержит:
1. общее кол-во обработанных запросов;
2. кол-во запросов на взлёт/посадку;
3. кол-во принятых запросов на взлёт/посадку;
4. кол-во отклонённых запросов на взлёт/посадку;
5. кол-во взлетевших/приземлившихся самолётов;
6. кол-во самолётов, оставшихся в очереди на взлёт/посадку;
7. время простоя взлётной полосы в процентах;
8. среднее время ожидания для взлёта/приземления;
9. среднее кол-во поступивших запросов на взлёт/приземление.
Для реализации создать классы Runwayи Plane, которые описывают аэропорт (взлётную полосу) и самолёт
соответственно.
Для генерации псевдослучайного числа с законом распределения
Пуассона рекомендуется использовать ... #include<random> ... ...
intmain(){
... ... std::random_device rd; //генератор случайныхчисел.
std::mt19937gen(rd()); //генератор псевдослучайных чисел, который инициализируется случайным числом rd().
std::poisson_distribution<>distr(mean); //создание объекта для генерации случайных чисел с распределением Пуассона при заданном среднем (ожидаемом) значении mean.
distr(gen); //генерирование случайного числа с распределением Пуассона с заданным параметром mean.