diff --git a/README.md b/README.md index d1e35f3..1fdc209 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,143 @@ -# Курсовая работа на С++ по созданию приложения дял сортировки студентов -Приложение (student_sorter) написанное на С++ при помощи WinForms. Задача приложения отображать студентов, с указанием их направления, прописки и фио, по всем пунктам идёт сортировка и по прописке, определении необходимости в выделении общежития. +# Student Sorter + +[![C++](https://img.shields.io/badge/C++-17-blue.svg)](https://isocpp.org/) +[![WinForms](https://img.shields.io/badge/GUI-WinForms-green.svg)](https://docs.microsoft.com/en-us/dotnet/desktop/winforms/) +[![Visual Studio](https://img.shields.io/badge/IDE-Visual%20Studio-purple.svg)](https://visualstudio.microsoft.com/) + +Десктопное приложение для автоматизированной обработки и сортировки студенческих заявлений с функционалом определения потребности в общежитии. + +## 📋 Описание + +Student Sorter — это Windows-приложение, разработанное на C++/CLI с использованием Windows Forms, предназначенное для эффективного управления данными студентов в образовательных учреждениях. Приложение позволяет сортировать студентов по различным критериям и автоматически определять необходимость предоставления общежития на основе места прописки. + +## ✨ Основные возможности + +- **Управление студенческими данными**: Добавление, редактирование и удаление информации о студентах +- **Многокритериальная сортировка**: Сортировка по ФИО, направлению обучения, адресу прописки и льготам +- **Автоматическое определение потребности в общежитии**: Анализ места прописки для выявления иногородних студентов +- **Интуитивный графический интерфейс**: Удобная работа с данными через WinForms +- **Статистическая отчетность**: Визуализация данных и генерация отчетов +- **Импорт/экспорт данных**: Поддержка работы с внешними файлами данных + +## 🛠 Технологический стек + +- **Язык программирования**: C++/CLI +- **GUI Framework**: Windows Forms (.NET Framework 4.8) +- **IDE**: Microsoft Visual Studio 2022 +- **Компилятор**: MSVC v143 +- **Библиотеки**: + - System.Windows.Forms + - System.Data + - System.Drawing + - RSREU.IO (кастомная библиотека для сериализации) + +## 📁 Структура проекта + +``` +InvestWinApp/ +├── InvestWinApp.cpp # Точка входа в приложение +├── MyForm.h/.resx # Главная форма приложения +├── AddApplicant.h/.resx # Форма добавления студента +├── config.h # Конфигурация и структуры данных +├── pch.h # Предкомпилированные заголовки +├── Resource.h # Ресурсы приложения +├── stock.dat # Файл данных студентов +└── stud.txt # Тестовые данные +``` + +## 🚀 Быстрый старт + +### Системные требования + +- Windows 10/11 +- .NET Framework 4.8 +- Visual Studio 2019/2022 с поддержкой C++/CLI +- RSREU.IO библиотека (включена в проект) + +### Установка и запуск + +1. **Клонирование репозитория**: + ```bash + git clone https://github.com/EDeev/student_sorter.git + cd student_sorter + ``` + +2. **Открытие проекта**: + - Запустите Visual Studio + - Откройте файл `InvestWinApp.sln` + +3. **Сборка проекта**: + - Выберите конфигурацию (Debug/Release) + - Нажмите `Build` → `Build Solution` (Ctrl+Shift+B) + +4. **Запуск**: + - Нажмите `Debug` → `Start Debugging` (F5) + +## 📊 Структура данных + +Приложение работает со структурой `Applicant`: + +```cpp +[Serializable] +ref struct Applicant { + String^ surname; // Фамилия + String^ name; // Имя + String^ patro; // Отчество + String^ address; // Адрес прописки + String^ benefit; // Льготы + UInt32 score_UGE; // Баллы ЕГЭ + String^ trend; // Направление обучения +}; +``` + +## 🔧 Функциональность + +### Главное окно (MyForm) +- Отображение списка студентов в табличном виде +- Сортировка по всем доступным полям +- Фильтрация данных +- Экспорт отчетов + +### Добавление студента (AddApplicant) +- Форма для ввода данных нового студента +- Валидация введенных данных +- Автоматическое определение потребности в общежитии + +### Обработка данных +- Сериализация/десериализация с использованием RSREU.IO +- Автоматическое сохранение изменений +- Резервное копирование данных + +## 📈 Алгоритм определения потребности в общежитии + +1. Анализ поля `address` студента +2. Сравнение с базой местных адресов +3. Классификация как "нуждается в общежитии" или "местный" +4. Автоматическое обновление статуса + +## 🤝 Вклад в проект + +Приветствуются любые улучшения! Для внесения изменений: + +1. Сделайте Fork репозитория +2. Создайте feature branch (`git checkout -b feature/AmazingFeature`) +3. Зафиксируйте изменения (`git commit -m 'Add some AmazingFeature'`) +4. Отправьте в branch (`git push origin feature/AmazingFeature`) +5. Откройте Pull Request + +## 📝 Лицензия + +Проект распространяется под лицензией MIT. + +## 👨‍💻 Автор + +**Деев Егор Викторович** - Backend Developer +- GitHub: [@EDeev](https://github.com/EDeev) +- Email: egor@deev.space +- Telegram: [@Egor_Deev](https://t.me/Egor_Deev) +- +--- + +
+

Создано с ❤️ от вашего дорогого - deev.space ©

+