Домашнее задание.
Задание 1 “Телевизор”
Необходимо написать программу, имитирующую работу телевизора. Предусмотрите в нем возможность переключения каналов: следующий канал, предыдущий канал, переход к каналу по номеру. Учтите, что канал не может иметь отрицательный номер. При запуске программа должна показывать текущий канал и предлагать переключить канал по нажатию на какую-либо кнопку на клавиатуре. Отображать текущий канал можно просто в виде номер и названия
Указания:
- Роль телевизора должен исполнять класс с именем TV.
- Класс TV должен иметь:
- поля:
- currentChannel - текущий канал
- channelLimit - количество каналов
- конструктор:
- TV(currentChannel) - инициализирует свойства класса. Можно сделать еще один конструктор, в котором будет задаваться еще и количество каналов.
- три метода:
- NextChannel() - переключает телевизор на следующий канал
- PreviousChannel() - переключает телевизор на предыдущий канал
- MoveToChannel(channel) - переключает телевизор на указанный канал
Бонус:
- Реализовать поля в виде свойств с методами get и set
- Реализовать индексатор, который будет показывать название канала на основе номера, переданного в качестве индекса
Задание 2 “Лифт”
Необходимо написать программу, имитирующую работу лифта в 18-ти этажном здании. При запуске программа должна запрашивать на какой этаж и какой вес нужно отвезти. Если номер этажа или груз являются недопустимыми, то нужно выдать ошибку и ожидать повторного ввода. Если номер этажа и груз являются допустимыми, то по порядку вывести номера этажей, которых достигнет лифт в результате перемещения, затем вновь запросить на какой этаж и какой вес нужно отвезти.
Максимальный груз, поднимаемый лифтом - 200.
Указания:
- Роль лифта должен исполнять класс с именем Elevator.
- Класс Elevator должен иметь:
- поля:
- currentFloor - текущий этаж, на котором находится лифт
- capacity - максимально перевозимый вес
- maxFloor - максимальный этаж, на который лифт может поднять
- конструктор:
- Elevator(currentFloor ) - инициализирует свойства класса
- три метода:
- move(toFloor) - перемещает лифт на нужный этаж и выводит на экран сообщения о достижении каждого из этажей, которые он пройдет в пути
- IsAllowableWeight(weight) - метод должен возвращать true, если указанный вес допустим
- IsAllowableFloor(floor) - метод должен возвращать true, если указанный этаж допустим
- При перечислении этажей, которые проходит лифт, учитывать текущий этаж, с которого начинается отсчет.
Бонус:
- В обоих заданиях реализовать поля в виде свойств с методами get и set
- Реализовать индексатор в первом задании, который будет показывать название канала на основе номера, переданного в качестве индекса
- Имитировать застревание лифта при переходе между этажами. Вероятность застревания лифта - 1 к 3. Выводить соответствующее сообщение о том, на каком этаже застрял лифт.