Лабораторный практикум №2
Проект AutomataDemo
- Разработать класс Automata (автомат), являющийся упрощённой моделью автомата по продаже горячих напитков.
- Изучить принцип использования автомата по продаже горячих напитков (чай, кофе, молоко и т.д.) и описать его работу в виде диаграммы состояний.
- Создать перечислимый тип STATES для задания состояний автомата
- Создать класс Automata, включить в него переменные:
cash - для хранения текущей суммы; menu - массив строк названий напитков (может подгружаться из файла); prices - массив цен напитков (соответствует массиву menu); state - текущее состояние автомата;
- Включить в класс Automata следующие методы:
- конструктор
- on() - включение автомата;
- off() - выключение автомата;
- coin() - занесение денег на счёт пользователем;
- printMenu() - отображение меню с напитками и ценами для пользователя;
- printState() - отображение текущего состояния для пользователя;
- choice() - выбор напитка пользователем;
- check() - проверка наличия необходимой суммы;
- cancel() - отмена сеанса обслуживания пользователем;
- cook() - имитация процесса приготовления напитка;
- finish() - завершение обслуживания пользователя.
Список методов может быть изменён по желанию разработчика.
Предлагается следующая диаграмма состояний (state diagram), отражающая смену состояний и вызовы методов класса
- Написать демонстрационную программу работы автомата