Skip to content

Gnarll/Elevators

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Elevators

Лифты
Основные требования к системе контроля движения лифтов:
Имеется n-этажное здание (не более 20) с количеством лифтов не более 5. На каждом этаже имеется пульт вызова лифта с количеством кнопок, равным количеству этажей (либо 10 кнопок с возможностью набора двузначных чисел). Единственная кнопка в лифте – «Ход», которая и инициирует движение лифта. Каждый лифт имеет свою максимальную вместимость (в количестве человек), максимальную скорость и максимальное ускорение. Система должна предоставлять статус каждого человека – “ожидает лифт столько-то секунд”, “движется на этаж N”, “доставлен на целевой этаж”. После создания объект “человек” должен нажать набрать на пульте вызова лифта свой этаж назначения этаже в течение 3 секунд. После доставки на целевой этаж объект человек должен существовать в системе еще 3 секунды. В приложении должны быть реализованы функции старта, паузы, остановки работы системы, ускорения симуляции, замедления симуляции. Остановить систему можно только в том случае, если все лифты пустые и остановлены. Отдельным состоянием симуляции является «пожарная тревога». При её активации все лифты должны опуститься на первый этаж (без остановок) и стоять с открытыми дверями до отключении пожарной тревоги. Все люди в системе должны покинуть здание используя пожарную лестницу (исчезнуть через 3 секунды). Необходимо реализовать несколько стратегий управления лифтами, например «минимимум времени ожидания», «минимум холостых ходов» и т.п. с возможностью выбора стратегии управления перед стартом системы. Для ввода исходных данных (количество этажей и лифтов) должны быть предусмотрены соответствующие пользовательские интерфейсы с возможностью импорта/экспорта конфигураций лифтов. Пользователь приложения должен иметь возможность как создавать объекты “человек” в режиме реального времени в течение всего сеанса работы системы (независимо от её состояния), так и определять правила их генерации с возможностью импорта/экспорта этих правил в из/в файл (например, создать 10 человек следующих с 1го на 10 этаж на 3й секунде симуляции, включить пожарную тревогу на 7 секунде симуляции, выключить пожарную тревогу на 15 секунде симуляции). После остановки системы приложение должно выводить на экран (с возможностью экспорта в файл):

  • Общее количество поездок (под одной поездкой понимается изменение направления движения) каждого лифта
  • Процент “холостых” поездок (когда лифт пустой) для каждого лифта
  • Количество перевезённых людей каждым лифтом
  • Общее количество поездок
  • Общее количество перевезённых людей каждым лифтом
  • Среднее, наибольшее и суммарное время ожидания лифтов человеками
  • Количество пожарных тревог и их сумарная длительность
    В строке статуса приложения (Status bar) должно отображаться время, прошедшее с начала старта системы и количество перевезённых лифтами человек за весь сеанс работы.
    Команда: Федорович Вадим, Булынко Сергей, Комар Денис.

Screenshot

Screenshot

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors