Vendomat — это проект системы для автоматов по продаже товаров, реализованный на C#. Проект демонстрирует создание и управление торговым автоматом, который позволяет пользователям выбирать товары и добавлять средства с использованием различных сценариев и команд.
Vendomat реализует функциональность торгового автомата, поддерживая выбор товаров, добавление монет и банкнот, а также проверку баланса и наличия товара. Проект использует паттерны проектирования для управления сценариями и обработки пользовательского ввода.
- Выбор товара: Позволяет пользователю выбрать товар из доступного списка.
- Добавление средств: Поддержка добавления монет и банкнот.
- Проверка состояния: Проверка наличия выбранного товара и баланса пользователя.
Для установки и запуска проекта:
-
Склонируйте репозиторий:
git clone https://github.com/AlexScience/vendomat.git
-
Откройте проект в вашей IDE (например, Visual Studio).
-
Соберите и запустите проект.
- Запустите проект.
- Введите команду для выбора товара или добавления средств:
item A:1— для выбора товара.coin: 10— для добавления монеты.banknote: 50— для добавления банкноты.
- Следуйте инструкциям на экране.
UserInputParser: Парсит пользовательский ввод и определяет сценарий на основе введенной команды.ScenarioRunner: Запускает сценарии в зависимости от выбранного действия пользователя.ProductItemsStorage: Хранит информацию о доступных товарах и их количестве.Commands: Содержит регулярные выражения для парсинга команд.
SelectItemScenario: Управляет сценарием выбора товара.CheckProductAvailabilityStep: Проверяет наличие товара.CheckBalanceStep: Проверяет баланс пользователя.
Vendomat: Основной класс для управления процессом работы торгового автомата.Product: Представляет товар с его характеристиками.Bank: Управляет балансом и денежными операциями.
Проект реализован с использованием следующих технологий:
- Язык программирования: C#
- Среда разработки: .NET
- Расширение функциональности для поддержки дополнительных сценариев.
- Улучшение пользовательского интерфейса и взаимодействия.
- Интеграция с реальными платежными системами.