Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alexscience/vendomat
https://github.com/alexscience/vendomat
Last synced: 1 day ago
JSON representation
- Host: GitHub
- URL: https://github.com/alexscience/vendomat
- Owner: AlexScience
- Created: 2024-02-17T12:05:05.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2024-11-26T11:59:56.000Z (about 2 months ago)
- Last Synced: 2024-11-26T12:34:47.986Z (about 2 months ago)
- Language: C#
- Size: 38.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## Будущие возможности
- Расширение функциональности для поддержки дополнительных сценариев.
- Улучшение пользовательского интерфейса и взаимодействия.
- Интеграция с реальными платежными системами.