student_sorter/README.md
2025-06-30 22:32:31 +03:00

133 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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. Автоматическое обновление статуса
## 📝 Лицензия
Проект распространяется под лицензией MIT.
## 👨‍💻 Автор
**Деев Егор Викторович** - Backend Developer
- GitHub: [@EDeev](https://github.com/EDeev)
- Email: egor@deev.space
- Telegram: [@Egor_Deev](https://t.me/Egor_Deev)
---
<div align="center">
<p><sub>Создано с ❤️ от вашего дорогого - deev.space ©</sub></p>
</div>