Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SalesReport

Описание проекта

WPF-приложение для создания и анализа отчетов о продажах электронной техники. Позволяет:

  • Формировать отчеты за различные периоды
  • Анализировать динамику цен
  • Сравнивать продажи разных типов устройств

Команда

  • Аникин Семён
  • Шубин Вадим

Требования и оценка

Проект соответствует всем критериям для оценки 5 (25 баллов):

  • ✅ 2+ интерфейса (IReportable, ISerializer)
  • ✅ 2+ абстрактных класса (ITProduct, SerializerBase)
  • ✅ 5+ приведений типов (Price в Laptop, Smartphone, Tablet)
  • ✅ Перегрузка методов (Report.AddDevices)
  • ✅ Перегруженные операторы (+ для Report)
  • ✅ Делегаты (Func<ITProduct, bool>[])
  • ✅ Обобщенные типы (List<ITProduct>)
  • ✅ 4+ элемента UI (Label, ComboBox, Button, CheckBox)

Архитектура

SalesReport/ ├── Model/ (библиотека) │ ├── Core/ # Бизнес-логика │ └── Data/ # Сериализация └── SalesReport/ # WPF-приложение

Руководство пользователя

Главное окно

Главное окно

  1. Выбор типа техники:

    • Комбобокс с вариантами: "Все устройства", "Ноутбуки", "Смартфоны", "Планшеты"
  2. Период отчета:

    • Выбор из: "День", "Неделя", "Месяц", "Квартал", "Год"
  3. Дата отчета:

    • Календарь для выбора конкретной даты
  4. Список отчетов:

    • Чекбоксы для выбора доступных отчетов
    • Активируются при выборе даты и периода
  5. Кнопки:

    • "Показать отчет" - становится активной при выборе ≥1 отчета
    • "История цен" - активируется при выборе отчета и артикула

Окно отчета

Окно отчета

  1. Таблица данных:

    • Отображает все товары из выбранных отчетов
    • Сортировка по клику на заголовки
  2. Выбор артикула:

    • Комбобокс для выбора конкретного товара
    • При выборе активируется кнопка "История цен"
  3. Сортировка:

    • Радиокнопки "По возрастанию"/"По убыванию"

Окно истории цен

История цен

  • График изменения цен:
    • Синяя линия - средняя цена
    • Пунктирные линии - минимальная/максимальная цена
  • Ось X - даты продаж
  • Ось Y - цена в рублях

Особенности реализации

ООП принципы

  • Инкапсуляция: приватные сеттеры, методы валидации
  • Наследование: LaptopITProduct
  • Полиморфизм: переопределение свойства Price
  • Абстракция: интерфейс IReportable

SOLID

  1. Single Responsibility:

    • Report - хранение данных
    • ProductRegistry - проверка на уникальность
  2. Open-Closed:

    • Новые типы отчетов через наследование
  3. Liskov Substitution:

    • Все наследники ITProduct совместимы
  4. Interface Segregation:

    • IReportable только для отчетов
    • ISerializer только для сериализации
  5. Dependency Inversion:

    • Зависимости от абстракций (ISerializer)

Технические детали

  • Требуется библиотеки Newtonsoft.Json и LiveCharts.Wpf
  • WPF
  • JSON/XML сериализация
  • LiveCharts для графиков

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages