mirror of
https://github.com/EDeev/student_sorter.git
synced 2026-06-16 03:21:01 +03:00
133 lines
6.3 KiB
Markdown
133 lines
6.3 KiB
Markdown
# Student Sorter
|
||
|
||
[](https://isocpp.org/)
|
||
[](https://docs.microsoft.com/en-us/dotnet/desktop/winforms/)
|
||
[](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>
|