From c9b45205e566944fb60d0bddf91ffa7024e1ce84 Mon Sep 17 00:00:00 2001 From: Egor Deev Date: Fri, 2 Oct 2026 23:46:06 +0000 Subject: [PATCH] =?UTF-8?q?README=20=D0=BD=D0=B0=20=D1=80=D1=83=D1=81?= =?UTF-8?q?=D1=81=D0=BA=D0=BE=D0=BC=20=D0=B8=20=D0=B0=D0=BD=D0=B3=D0=BB?= =?UTF-8?q?=D0=B8=D0=B9=D1=81=D0=BA=D0=BE=D0=BC,=20=D0=BF=D1=80=D0=B8?= =?UTF-8?q?=D0=BC=D0=B5=D1=80=20stud.txt=20=D1=81=20=D0=B2=D1=8B=D0=BC?= =?UTF-8?q?=D1=8B=D1=88=D0=BB=D0=B5=D0=BD=D0=BD=D1=8B=D0=BC=D0=B8=20=D0=A4?= =?UTF-8?q?=D0=98=D0=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.en.md | 46 ++++++++++++++++ README.md | 144 ++++++++++++--------------------------------------- 2 files changed, 80 insertions(+), 110 deletions(-) create mode 100644 README.en.md diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..04028a5 --- /dev/null +++ b/README.en.md @@ -0,0 +1,46 @@ +# Student Sorter + +[Русский](README.md) · **English** + +[![CI](https://github.com/EDeev/student_sorter/actions/workflows/ci.yml/badge.svg)](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) + +--- + +
+ ⭐ If you find this project useful, give it a star on GitHub! +

Made with ❤️ — deev.space

+
diff --git a/README.md b/README.md index f50ceb2..874d8f2 100644 --- a/README.md +++ b/README.md @@ -1,133 +1,57 @@ # 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/) +**Русский** · [English](README.en.md) -Десктопное приложение для автоматизированной обработки и сортировки студенческих заявлений с функционалом определения потребности в общежитии. +[![CI](https://github.com/EDeev/student_sorter/actions/workflows/ci.yml/badge.svg)](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.cpp # Точка входа в приложение -├── MyForm.h/.resx # Главная форма приложения -├── AddApplicant.h/.resx # Форма добавления студента -├── config.h # Конфигурация и структуры данных -├── pch.h # Предкомпилированные заголовки -├── Resource.h # Ресурсы приложения -├── stock.dat # Файл данных студентов -└── stud.txt # Тестовые данные +├── InvestWinApp.cpp точка входа, запись списка в файл +├── config.h структура Applicant +├── MyForm.h главная форма: таблица, сортировка, список на общежитие +└── AddApplicant.h форма добавления абитуриента +Data/ иконки +Пояснительная записка.pdf ``` -## 🚀 Быстрый старт +## Лицензия -### Системные требования +Учебный проект (РГРТУ, 2024). Код открыт для изучения, отдельной лицензии нет. -- 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) +**Деев Егор Викторович** — [GitHub](https://github.com/EDeev) · [Telegram](https://t.me/DeevEgor) · [egor@deev.space](mailto:egor@deev.space) ---
-

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

+ ⭐ Если проект оказался полезным, поставьте звёздочку на GitHub! +

Сделано с ❤️ — deev.space