README.md

This commit is contained in:
Egor Deev 2025-06-30 22:30:41 +03:00 committed by GitHub
parent 28a6474a6c
commit dcd9d684ee
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

145
README.md
View file

@ -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)
-
---
<div align="center">
<p><sub>Создано с ❤️ от вашего дорогого - deev.space ©</sub></p>
</div>