Similar presentations:
С# ИС
1.
С#Информационная Система в консоли
2.
Общие требование● Программа управляет товарами и создает заказы.
● Есть два типа пользователей: админ и официант.
● В первый запуск программы пользователь задаёт пароль для
роли админ.
● В дальнейшем программа предлагает выбрать роль:
Войти как админ — ввести пароль.
Войти как официант — без пароля.
● Доступ к управлению товарами (добавление, редактирование,
удаление) есть только у админа.
● Официант может просматривать ассортимент, создавать заказы
и просматривать их статусы.
● Все данные, включая пароль администратора, сохраняются в
файлах.
3.
Детальный функционал1. Авторизация и вход
● При первом запуске:
○ Запросить задать пароль для админа.
○ Сохранить пароль в файл.
● При последующих запусках:
○ Предлагать выбрать роль:
○ Войти как админ (ввести пароль)
○ Войти как официант (без пароля)
● После входа:
○ Для админа доступны все функции.
○ Для официанта — ограниченный набор.
4.
Детальный функционал● 2. Управление товарами (доступно
только для админа)
○ Добавление новых товаров.
○ Редактирование существующих.
○ Удаление товаров.
○ Просмотр всех товаров.
5.
Детальный функционал● 3. Работа с заказами
○ Создавать заказы (как официант и как
админ).
○ Просматривать текущие заказы.
○ Статусы заказов.
6.
Детальный функционал● 4. Хранение данных
○ Товары — файл (например, products.txt)
○ Заказы — файл (orders.txt)
○ Пароль администратора — файл
(admin_password.txt)
7.
Структура программы3.1. Program
Главный класс. Запускает
последовательность входа
и вызывает меню.
3.3. ProductManager
Хранит список товаров.
Методы:
LoadProducts(),
SaveProducts()
AddProduct(), EditProduct(),
DeleteProduct(),
ViewProducts()
3.2. AuthManager
Управление авторизацией.
Методы:
● Проверка наличия
пароля
(LoadPassword)
● Установка пароля
(SetPassword)
● Вход в систему
(LoginAsAdmin,
LoginAsWaiter)
3.4. OrderManager
Обработка заказов.
Методы:
LoadOrders(), SaveOrders()
CreateOrder(), ViewOrders(),
UpdateOrderStatus()
3.5. Menu
Отдельные меню для
админа и официанта.
Построено вокруг вызова
методов соответствующих
менеджеров.
8.
Основные классы и их свойстваТовар (Product)
○ ID (уникальный целочисленный
идентификатор)
○ Название (string)
○ Стоимость (decimal)
Позиция в заказе (OrderItem)
○ ProductID (связь с товаром)
○ Количество (int, > 0)
○ СтоимостьПозиции (decimal,
вычисляемое свойство:
Количество * СтоимостьТовара)
Заказ (Order)
○ ID (уникальный целочисленный
идентификатор)
○ КлиентID (идентификатор
клиента)
○ Статус (доставлен или нет)
○ Позиции (список List<OrderItem>)
○ ИтоговаяСтоимость (decimal,
вычисляемое свойство: сумма
всех СтоимостьПозиции)
Клиент (Client)
○ ID (уникальный целочисленный
идентификатор)
○ Имя (string)
○ НомерСтола (int)
9.
Менеджеры1. AuthManager
Основные функции:
● LoadPassword()
Загружает пароль администратора из файла (admin_password.txt).
Если файла нет или он пустой — запрашивает установку нового пароля.
● SetPassword()
Позволяет пользователю ввести новый пароль.
Сохраняет его в файл (admin_password.txt).
● LoginAsAdmin()
Запрашивает ввод пароля.
Проверяет введенный пароль с сохраненным.
При совпадении возвращает true, иначе — false.
● LoginAsWaiter()
Всегда возвращает true, так как для официанта не нужен пароль.
Как работает:
В начале программы вызывается LoadPassword().
Пользователь выбирает роль.
Для администратора вызывается LoginAsAdmin().
Для официанта — просто залогинится без проверки.
10.
Менеджеры2. ProductManager
Основные функции:
● LoadProducts()
Загружает список товаров из файла (products.txt). Если файла нет, создаёт пустой список.
● SaveProducts()
Сохраняет текущий список товаров в файл.
● AddProduct()
Создает новый товар с уникальным ID. Добавляет его в список и сохраняет.
● EditProduct()
Позволяет выбрать товар по ID. Изменяет его данные (название, цену). Сохраняет изменения.
● DeleteProduct()
Выбирает товар по ID. Удаляет из списка. Сохраняет.
● ViewProducts()
Отображает список товаров с их ID, названиями и ценами.
Как работает:
Перед началом работы менеджера вызывается LoadProducts().
Все операции — через соответствующие методы, вызываемые из меню.
После изменений вызывается SaveProducts().
11.
Менеджеры3. OrderManager
Основные функции:
● LoadOrders()
Загружает список заказов из файла (orders.json). Создает пустой список, если файла нет.
● SaveOrders()
Сохраняет текущий список заказов.
● CreateOrder()
Офицант выбирает товары из списка (выбирается по ID). Указывает количество.
Создается новый заказ с уникальным OrderId. Заказ добавляется в список и сохраняется.
● ViewOrders()
Отображает список всех заказов с их деталями и статусами.
● UpdateOrderStatus()
Позволяет изменить статус заказа (например, "готов", "доставлен"). Выбирает заказ по OrderId.
Обновляет статус и сохраняет.
● GetOrdersByStatus() Для просмотра заказов с определённым статусом.
Как работает:
При запуске вызывается LoadOrders().
Создание заказа — через меню.
После действий вызывается SaveOrders().
12.
Главный класс ProgramОсновное предназначение:
Инициирует запуск приложения.
Обеспечивает последовательность и выбор
пользовательских действий.
Управляет переходами между различными
режимами и меню.
Обрабатывает авторизацию и вызывает
соответствующие менеджеры.