https://github.com/alexscience/vendomat
https://github.com/alexscience/vendomat
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/alexscience/vendomat
- Owner: AlexScience
- Created: 2024-02-17T12:05:05.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-11-26T11:59:56.000Z (about 1 year ago)
- Last Synced: 2025-01-21T08:12:57.637Z (about 1 year ago)
- Language: C#
- Size: 39.1 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Vendomat
**Vendomat** — это проект системы для автоматов по продаже товаров, реализованный на C#. Проект демонстрирует создание и управление торговым автоматом, который позволяет пользователям выбирать товары и добавлять средства с использованием различных сценариев и команд.
## Оглавление
- [Описание](#описание)
- [Функциональность](#функциональность)
- [Установка](#установка)
- [Использование](#использование)
- [Структура проекта](#структура-проекта)
- [Технологии](#технологии)
- [Будущие возможности](#будущие-возможности)
## Описание
Vendomat реализует функциональность торгового автомата, поддерживая выбор товаров, добавление монет и банкнот, а также проверку баланса и наличия товара. Проект использует паттерны проектирования для управления сценариями и обработки пользовательского ввода.
## Функциональность
- **Выбор товара**: Позволяет пользователю выбрать товар из доступного списка.
- **Добавление средств**: Поддержка добавления монет и банкнот.
- **Проверка состояния**: Проверка наличия выбранного товара и баланса пользователя.
## Установка
Для установки и запуска проекта:
1. Склонируйте репозиторий:
```bash
git clone https://github.com/AlexScience/vendomat.git
```
2. Откройте проект в вашей IDE (например, Visual Studio).
3. Соберите и запустите проект.
## Использование
1. Запустите проект.
2. Введите команду для выбора товара или добавления средств:
- `item A:1` — для выбора товара.
- `coin: 10` — для добавления монеты.
- `banknote: 50` — для добавления банкноты.
3. Следуйте инструкциям на экране.
## Структура проекта
### Основные компоненты
- **`UserInputParser`**: Парсит пользовательский ввод и определяет сценарий на основе введенной команды.
- **`ScenarioRunner`**: Запускает сценарии в зависимости от выбранного действия пользователя.
- **`ProductItemsStorage`**: Хранит информацию о доступных товарах и их количестве.
- **`Commands`**: Содержит регулярные выражения для парсинга команд.
### Сценарии и Шаги
- **`SelectItemScenario`**: Управляет сценарием выбора товара.
- **`CheckProductAvailabilityStep`**: Проверяет наличие товара.
- **`CheckBalanceStep`**: Проверяет баланс пользователя.
### Модели
- **`Vendomat`**: Основной класс для управления процессом работы торгового автомата.
- **`Product`**: Представляет товар с его характеристиками.
- **`Bank`**: Управляет балансом и денежными операциями.
## Технологии
Проект реализован с использованием следующих технологий:
- **Язык программирования**: C#
- **Среда разработки**: .NET
## Будущие возможности
- Расширение функциональности для поддержки дополнительных сценариев.
- Улучшение пользовательского интерфейса и взаимодействия.
- Интеграция с реальными платежными системами.