mirror of
https://github.com/EDeev/student_sorter.git
synced 2026-10-08 04:59:40 +03:00
README на русском и английском, пример stud.txt с вымышленными ФИО
This commit is contained in:
parent
a5ced39496
commit
c9b45205e5
2 changed files with 80 additions and 110 deletions
46
README.en.md
Normal file
46
README.en.md
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
# Student Sorter
|
||||||
|
|
||||||
|
[Русский](README.md) · **English**
|
||||||
|
|
||||||
|
[](https://github.com/EDeev/student_sorter/actions/workflows/ci.yml)
|
||||||
|
|
||||||
|
A coursework Windows app for an admissions office: it keeps a list of applicants, sorts it by different
|
||||||
|
fields and produces a list of non-local applicants who need a dormitory.
|
||||||
|
|
||||||
|
**Status:** coursework (Ryazan State Radio Engineering University, 2024), completed
|
||||||
|
|
||||||
|
**Stack:** C++/CLI · Windows Forms (.NET Framework 4.8) · Visual Studio 2022 (MSVC v143) · course library RSREU.IO
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Adding an applicant: full name, address, benefits, exam score, programme
|
||||||
|
- Applicant table sorted by surname, score, programme and benefits
|
||||||
|
- Dormitory list: everyone registered outside Ryazan goes to `stud.txt` (format: [examples/stud.txt](examples/stud.txt), fictional names)
|
||||||
|
- The list is kept between runs in `applis.dat`
|
||||||
|
|
||||||
|
## Building
|
||||||
|
|
||||||
|
1. Open `InvestWinApp.sln` in Visual Studio 2022 with the "C++/CLI support" component.
|
||||||
|
2. Put the course library `RSREU.IO.dll` into `InvestWinApp/x64/Debug/` (it is not in the repository; it
|
||||||
|
was provided by the course).
|
||||||
|
3. Build the x64 configuration.
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> Without `RSREU.IO.dll` the project does not build, so CI only checks that the sources are UTF-8.
|
||||||
|
> The solution is named `InvestWinApp` — that is how the project was created in Visual Studio.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Coursework (Ryazan State Radio Engineering University, 2024). The code is open for study; there is no
|
||||||
|
separate license.
|
||||||
|
|
||||||
|
## Author
|
||||||
|
|
||||||
|
**Egor Deev** — [GitHub](https://github.com/EDeev) · [Telegram](https://t.me/DeevEgor) · [egor@deev.space](mailto:egor@deev.space)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<sub>⭐ If you find this project useful, give it a star on GitHub!</sub>
|
||||||
|
<p><sub>Made with ❤️ — <a href="https://deev.space">deev.space</a></sub></p>
|
||||||
|
</div>
|
||||||
144
README.md
144
README.md
|
|
@ -1,133 +1,57 @@
|
||||||
# Student Sorter
|
# Student Sorter
|
||||||
|
|
||||||
[](https://isocpp.org/)
|
**Русский** · [English](README.en.md)
|
||||||
[](https://docs.microsoft.com/en-us/dotnet/desktop/winforms/)
|
|
||||||
[](https://visualstudio.microsoft.com/)
|
|
||||||
|
|
||||||
Десктопное приложение для автоматизированной обработки и сортировки студенческих заявлений с функционалом определения потребности в общежитии.
|
[](https://github.com/EDeev/student_sorter/actions/workflows/ci.yml)
|
||||||
|
|
||||||
## 📋 Описание
|
Учебное Windows-приложение для приёмной комиссии: ведёт список абитуриентов, сортирует его по разным
|
||||||
|
полям и формирует список иногородних, которым нужно общежитие.
|
||||||
|
|
||||||
Student Sorter — это Windows-приложение, разработанное на C++/CLI с использованием Windows Forms, предназначенное для эффективного управления данными студентов в образовательных учреждениях. Приложение позволяет сортировать студентов по различным критериям и автоматически определять необходимость предоставления общежития на основе места прописки.
|
**Статус:** учебный проект (РГРТУ, 2024), завершён
|
||||||
|
|
||||||
## ✨ Основные возможности
|
**Стек:** C++/CLI · Windows Forms (.NET Framework 4.8) · Visual Studio 2022 (MSVC v143) · библиотека курса RSREU.IO
|
||||||
|
|
||||||
- **Управление студенческими данными**: Добавление, редактирование и удаление информации о студентах
|
## Возможности
|
||||||
- **Многокритериальная сортировка**: Сортировка по ФИО, направлению обучения, адресу прописки и льготам
|
|
||||||
- **Автоматическое определение потребности в общежитии**: Анализ места прописки для выявления иногородних студентов
|
|
||||||
- **Интуитивный графический интерфейс**: Удобная работа с данными через WinForms
|
|
||||||
- **Статистическая отчетность**: Визуализация данных и генерация отчетов
|
|
||||||
- **Импорт/экспорт данных**: Поддержка работы с внешними файлами данных
|
|
||||||
|
|
||||||
## 🛠 Технологический стек
|
- Добавление абитуриента: ФИО, адрес, льгота, баллы ЕГЭ, направление подготовки
|
||||||
|
- Таблица абитуриентов с сортировкой по фамилии, баллам, направлению и льготам
|
||||||
|
- Список на общежитие: все, кто прописан не в Рязани, — в `stud.txt` (формат — [examples/stud.txt](examples/stud.txt), ФИО вымышленные)
|
||||||
|
- Список хранится между запусками в `applis.dat`
|
||||||
|
|
||||||
- **Язык программирования**: 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 (кастомная библиотека для сериализации)
|
|
||||||
|
|
||||||
## 📁 Структура проекта
|
1. Откройте `InvestWinApp.sln` в Visual Studio 2022 с компонентом «Поддержка C++/CLI».
|
||||||
|
2. Положите библиотеку курса `RSREU.IO.dll` в `InvestWinApp/x64/Debug/` (её в репозитории нет — она
|
||||||
|
выдавалась на курсе).
|
||||||
|
3. Соберите конфигурацию x64.
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> Без `RSREU.IO.dll` проект не собирается, поэтому CI проверяет только кодировку исходников (UTF-8).
|
||||||
|
> Решение называется `InvestWinApp` — так проект был создан в Visual Studio.
|
||||||
|
|
||||||
|
## Структура
|
||||||
|
|
||||||
```
|
```
|
||||||
InvestWinApp/
|
InvestWinApp/
|
||||||
├── InvestWinApp.cpp # Точка входа в приложение
|
├── InvestWinApp.cpp точка входа, запись списка в файл
|
||||||
├── MyForm.h/.resx # Главная форма приложения
|
├── config.h структура Applicant
|
||||||
├── AddApplicant.h/.resx # Форма добавления студента
|
├── MyForm.h главная форма: таблица, сортировка, список на общежитие
|
||||||
├── config.h # Конфигурация и структуры данных
|
└── AddApplicant.h форма добавления абитуриента
|
||||||
├── pch.h # Предкомпилированные заголовки
|
Data/ иконки
|
||||||
├── Resource.h # Ресурсы приложения
|
Пояснительная записка.pdf
|
||||||
├── stock.dat # Файл данных студентов
|
|
||||||
└── stud.txt # Тестовые данные
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🚀 Быстрый старт
|
## Лицензия
|
||||||
|
|
||||||
### Системные требования
|
Учебный проект (РГРТУ, 2024). Код открыт для изучения, отдельной лицензии нет.
|
||||||
|
|
||||||
- Windows 10/11
|
## Автор
|
||||||
- .NET Framework 4.8
|
|
||||||
- Visual Studio 2019/2022 с поддержкой C++/CLI
|
|
||||||
- RSREU.IO библиотека (включена в проект)
|
|
||||||
|
|
||||||
### Установка и запуск
|
**Деев Егор Викторович** — [GitHub](https://github.com/EDeev) · [Telegram](https://t.me/DeevEgor) · [egor@deev.space](mailto:egor@deev.space)
|
||||||
|
|
||||||
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">
|
<div align="center">
|
||||||
<p><sub>Создано с ❤️ от вашего дорогого - deev.space ©</sub></p>
|
<sub>⭐ Если проект оказался полезным, поставьте звёздочку на GitHub!</sub>
|
||||||
|
<p><sub>Сделано с ❤️ — <a href="https://deev.space">deev.space</a></sub></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue