team-work-it-yanasim
5 месяцев назад
4 месяца назад
4 месяца назад
4 месяца назад
5 месяцев назад
4 месяца назад
4 месяца назад
README.md
Система рейтинга учащихся
Участники проекта
Student 1: Specification Engineer
- GitVerse аккаунт: yanasim
- Роль: Создание спецификации системы рейтинга учащихся (Вариант 4)
- Работа: Создал файл
с полным описанием требований, структуры данных, функциональных требований и критериев приёмкиspec/codex.md
Student 2: Developer
- GitVerse аккаунт: ylyastar
- Роль: Реализация кода на основе спецификации
- Работа: Реализовал консольное приложение
с использованием Cursor (AI-помощник)dev/solution.cs
Student 3: Code Reviewer
- GitVerse аккаунт: anastasiakoc
- Роль: Проведение код-ревью и предоставление обратной связи
- Работа: Провёл анализ кода на соответствие спецификации, одобрил Pull Request
Описание работы
Используемые инструменты и модели
Student 1 (yanasim):
- Создавал спецификацию вручную на основе варианта задания №4 из tasks/task_variants.md
- Формат спецификации: Markdown файл в стиле OpenAI system prompt
Student 2 (ylyastar):
- Использовал Cursor (версия 2.1.26) для разработки кода
- Загрузил спецификацию
в контекст AI-помощникаspec/codex.md - Реализовал код с помощью AI-ассистента на основе спецификации
- Экспорт диалога сохранён в demo/cursor_.md
Student 3 (anastasiakoc):
- Провёл ручное ревью кода
- Проверил соответствие спецификации
- Одобрил изменения через Pull Request
Описание созданного кода
Обзор проекта
Реализована консольная система управления рейтингом учащихся на языке C# (.NET). Приложение позволяет управлять базой студентов, анализировать их оценки и рассчитывать статистику.
Основные компоненты
1. Класс Student
Student
-
Свойства:
(string) - имя студентаName(string) - уникальный идентификатор (5 цифр)ID(Dictionary<string, int>) - оценки по предметам (Math, English, Science, History, PE)Grades
-
Методы:
- вычисление GPA по шкале 0.0-4.0 с использованием рекурсивного методаCalculateGPA()- сумма всех оценокGetTotalScore()- валидация оценок (0-100)ValidateGrades()
2. Класс StudentRatingSystem
StudentRatingSystem
Основной класс системы с методами:
- добавление студента с валидациейAddStudent()- удаление студента по IDRemoveStudent()- быстрая сортировка по GPA (реализована вручную)QuickSortByGPA()- быстрая сортировка по имени (реализована вручную)QuickSortByName()- фильтрация по диапазону GPAFindStudentsInRange()- фильтрация по предмету и минимальной оценкеFilterBySubject()- расчёт перцентиля студентаCalculatePercentile()- статистика по каждому предмету (min, max, average, median)CalculateSubjectStatistics()- отображение всех студентовDisplayAllStudents()- отображение статистикиDisplayStatistics()
3. Класс Statistics
Statistics
Хранит статистику по предмету:
- минимальная оценкаMin- максимальная оценкаMax- средняя оценкаAverage- медианная оценкаMedian
4. Класс Program
Program
Главный класс с меню-интерфейсом:
- Интерактивное меню с 9 пунктами
- Валидация пользовательского ввода
- Обработка ошибок
Реализованные алгоритмы
- Рекурсивный расчёт GPA - метод
обрабатывает оценки рекурсивноRecursiveCalculateGPA() - QuickSort - реализован вручную для сортировки по GPA и по имени
- Фильтрация - линейный поиск O(n) для фильтрации студентов
- Расчёт статистики - вычисление min, max, average, median для каждого предмета
Соответствие спецификации
✅ Все требования из реализованы:spec/codex.md
- Хранение студентов в памяти (List)
- Рекурсивный расчёт GPA
- QuickSort по GPA и по имени (реализован вручную)
- Фильтрация по диапазону GPA и по предмету
- Расчёт статистики (min, max, average, median)
- Расчёт перцентиля
- Меню-интерфейс со всеми пунктами
- Валидация входных данных
- OOP дизайн
- Обработка ошибок
Структура репозитория
team-work-it-yanasim-2/
├── CONTRIBUTING.md # Инструкции по совместной разработке
├── README.md # Этот файл - описание проекта
├── spec/
│ └── codex.md # Спецификация системы (Student 1)
├── dev/
│ └── solution.cs # Реализация консольного приложения (Student 2)
├── demo/
│ ├── cursor_.md # Экспорт диалога из Cursor (доказательство работы по спецификации)
│ └── output.txt # Вывод работы программы
└── tasks/
└── task_variants.md # Варианты заданий
Описание папок
- содержит спецификацию проекта, созданную Student 1 (Specification Engineer)spec/- содержит реализацию кода, созданную Student 2 (Developer)dev/- содержит артефакты, подтверждающие что код был создан по спецификации:demo/- экспорт диалога из Cursor, показывающий использование спецификацииcursor_.md- примеры работы программыoutput.txt
- содержит варианты заданий для Student 1tasks/
Роль Student 2
У кого я (yanasim) выполнял роль Student 2: anastasiakoc
Процесс разработки
- ✅ Student 1 (yanasim) создал спецификацию
(Вариант 4: Система рейтинга учащихся)spec/codex.md - ✅ Student 2 (ylyastar) реализовал код
с использованием Cursordev/solution.cs - ✅ Student 3 (anastasiakoc) провёл код-ревью и одобрил Pull Request
- ✅ Student 2 (ylyastar) создал папку
с артефактами работыdemo/ - ✅ Создан
с описанием проектаREADME.md - ⏳ Merge в master ветку
- ⏳ Запуск финальной автопроверки
Технические детали
- Язык: C#
- Платформа: .NET (Console Application)
- Структуры данных: List, Dictionary<string, int>
- Алгоритмы: QuickSort, рекурсия, линейный поиск
- Валидация: Проверка ID (5 цифр), оценок (0-100), GPA (0.0-4.0)
Запуск приложения
Приложение запускается с интерактивным меню, позволяющим управлять базой студентов.