Ваша задача - симулировать работу лифта с использованием Java. Ожидается, что вы будете следовать процессу проектирования программного обеспечения, используя шаблоны проектирования и расширенные функции в Java, такие как многопоточность, компоненты графического интерфейса пользователя, а также генерация и обработка событий. Вам необходимо использовать архитектурный шаблон MVC, включая как минимум шаблоны Observer, Strategy и Composite.
Создайте Java-программу для имитации работы лифта. Лифт обслуживает двухэтажное здание. Этот лифт находится на оживленной станции метро, поэтому его часто используют. Чтобы упростить проблему, предположим следующее:
1. На первом этаже есть одна кнопка «Вверх», на втором этаже - одна кнопка «Вниз».
2. Контроллер должен генерировать пользователей и размещать их на этажах в соответствии с предоставленным планом тестирования.
3. Когда у лифта нет запросов, он остается на своем текущем этаже с закрытыми дверями.
4. В этом назначении нет максимальной грузоподъемности.
5. К лифту не прикреплена дверь, единственные двери, которые у нас есть, это двери шахты лифта на каждом этаже.
6. Время, необходимое для перемещения между этажами, составляет 5 секунд.
7. Дверь в лифт остается открытой в течение 1 секунды на человека, чтобы позволить людям входить или выходить.
8. Лифт начинает день на первом этаже с закрытой двери, после нажатия кнопки дверь открывается, чтобы позволить людям войти. Если лифт вызывается на первом этаже, то он уходит на второй этаж, где дверь на первом этаже откроется по прибытии лифта на этаж.
9. Человек может находиться в одном из нескольких штатов; стоя на полу после того, как он был создан, нажимая кнопку на полу, нажимая кнопку слева, стоя слева и выходя из лифта, когда лифт достигает пункта назначения и открывает дверь.
10. Предположим, что свет в лифте всегда включен, поэтому нам не нужно писать код для управления светом внутри лифта.
11. В графическом интерфейсе кнопки на полу подсвечиваются при нажатии. Освещение отменяется, когда лифт достигает пола.
12. В GUI у каждого пользователя на полу есть изображение человека. Не нужно использовать разные образы людей; достаточно одного и того же образа человека; он может быть использован для всех экземпляров, созданных человеком, изображение человека удаляется из лифта при выходе.
13. В графическом интерфейсе, когда дверь открыта, вы должны увидеть людей внутри лифта до того, как дверь закроется.
14. Ваша программа должна обеспечивать три просмотра;
а. Представление 1 - это обычный отчет на консоли, сообщающий о каждом событии, которое происходит в симуляции,
б. Представление 2 - представление графического интерфейса контроллера, где вы предоставляете компоненты, которые можно использовать для выполнения каждого тестового примера,
с. Представление 3 - это анимированный графический интерфейс, отражающий симуляцию подъема, .
15. Используйте время компьютера, чтобы начать каждое текстовое сообщение со временем, когда происходит каждое событие; отображать время в формате «гггг-мм-дд чч: мм: сс.ссс»
Ребята прошу помочь! текст грубо перевел с английского.
Оплату можно обсудить со мной в личке