vpashka / elevator-simulator

Симулятор лифта.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Задача:

«Симулятор лифта».

Программа запускается из командной строки, в качестве параметров задается:

  • кол-во этажей в подъезде — N (от 5 до 20);
  • высота одного этажа;
  • скорость лифта при движении в метрах в секунду (ускорением пренебрегаем, считаем, что когда лифт едет — он сразу едет с определенной скоростью);
  • время между открытием и закрытием дверей.

После запуска программа должна постоянно ожидать ввода от пользователя и выводить действия лифта в реальном времени. События, которые нужно выводить:

  • лифт проезжает некоторый этаж;
  • лифт открыл двери;
  • лифт закрыл двери.

Возможный ввод пользователя:

  • вызов лифта на этаж из подъезда;
  • нажать на кнопку этажа внутри лифта.

Считаем, что пользователь не может помешать лифту закрыть двери.

Принятые допущения:

  • этажи считаем с 1-го
  • высота в метрах
  • время в секундах
  • считаем, что лифт останавливается мгновенно
  • плавные разгон и торможение не реализуем

Дополнительная информация

В качестве интереса, решил попробовать в этом проекте:

Для сборки использовался дистрибутив ALT Linux p8.

Сборка

autogen.sh && configure && make [ && make install ]

Запуск в docker

  • собрать программу локально (!)
  • зайти в каталог docker
  • make demo
  • make run (запуск)
  • в появившейся консоли запустить elevator-control -h - для справки по параметрам запуска

Есть готовый образ с демкой: docker pull vpashka/elevator-demo

Сборка в docker

  • зайти в каталог docker
  • make build (создание образа с окружением для сборки)
  • make run (запуск)
  • в появившейся консоли запустить elevator-control -h - для справки по параметрам запуска

About

Симулятор лифта.

License:GNU General Public License v2.0


Languages

Language:C++ 99.3%Language:M4 0.3%Language:C 0.1%Language:Makefile 0.1%Language:Ruby 0.1%Language:Shell 0.0%