team-work-it-yanasim

0
5 месяцев назад
4 месяца назад
4 месяца назад
4 месяца назад
5 месяцев назад
4 месяца назад
README.md

Система рейтинга учащихся

Участники проекта

Student 1: Specification Engineer

  • GitVerse аккаунт: yanasim
  • Роль: Создание спецификации системы рейтинга учащихся (Вариант 4)
  • Работа: Создал файл
    spec/codex.md
    с полным описанием требований, структуры данных, функциональных требований и критериев приёмки

Student 2: Developer

  • GitVerse аккаунт: ylyastar
  • Роль: Реализация кода на основе спецификации
  • Работа: Реализовал консольное приложение
    dev/solution.cs
    с использованием Cursor (AI-помощник)

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) для разработки кода
  • Загрузил спецификацию
    spec/codex.md
    в контекст AI-помощника
  • Реализовал код с помощью AI-ассистента на основе спецификации
  • Экспорт диалога сохранён в
    demo/cursor_.md

Student 3 (anastasiakoc):

  • Провёл ручное ревью кода
  • Проверил соответствие спецификации
  • Одобрил изменения через Pull Request

Описание созданного кода

Обзор проекта

Реализована консольная система управления рейтингом учащихся на языке C# (.NET). Приложение позволяет управлять базой студентов, анализировать их оценки и рассчитывать статистику.

Основные компоненты

1. Класс
Student

  • Свойства:

    • Name
      (string) - имя студента
    • ID
      (string) - уникальный идентификатор (5 цифр)
    • Grades
      (Dictionary<string, int>) - оценки по предметам (Math, English, Science, History, PE)
  • Методы:

    • CalculateGPA()
      - вычисление GPA по шкале 0.0-4.0 с использованием рекурсивного метода
    • GetTotalScore()
      - сумма всех оценок
    • ValidateGrades()
      - валидация оценок (0-100)

2. Класс
StudentRatingSystem

Основной класс системы с методами:

  • AddStudent()
    - добавление студента с валидацией
  • RemoveStudent()
    - удаление студента по ID
  • QuickSortByGPA()
    - быстрая сортировка по GPA (реализована вручную)
  • QuickSortByName()
    - быстрая сортировка по имени (реализована вручную)
  • FindStudentsInRange()
    - фильтрация по диапазону GPA
  • FilterBySubject()
    - фильтрация по предмету и минимальной оценке
  • CalculatePercentile()
    - расчёт перцентиля студента
  • CalculateSubjectStatistics()
    - статистика по каждому предмету (min, max, average, median)
  • DisplayAllStudents()
    - отображение всех студентов
  • DisplayStatistics()
    - отображение статистики

3. Класс
Statistics

Хранит статистику по предмету:

  • Min
    - минимальная оценка
  • Max
    - максимальная оценка
  • Average
    - средняя оценка
  • Median
    - медианная оценка

4. Класс
Program

Главный класс с меню-интерфейсом:

  • Интерактивное меню с 9 пунктами
  • Валидация пользовательского ввода
  • Обработка ошибок

Реализованные алгоритмы

  1. Рекурсивный расчёт GPA - метод
    RecursiveCalculateGPA()
    обрабатывает оценки рекурсивно
  2. QuickSort - реализован вручную для сортировки по GPA и по имени
  3. Фильтрация - линейный поиск O(n) для фильтрации студентов
  4. Расчёт статистики - вычисление 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 # Варианты заданий

Описание папок

  • spec/
    - содержит спецификацию проекта, созданную Student 1 (Specification Engineer)
  • dev/
    - содержит реализацию кода, созданную Student 2 (Developer)
  • demo/
    - содержит артефакты, подтверждающие что код был создан по спецификации:
    • cursor_.md
      - экспорт диалога из Cursor, показывающий использование спецификации
    • output.txt
      - примеры работы программы
  • tasks/
    - содержит варианты заданий для Student 1

Роль Student 2

У кого я (yanasim) выполнял роль Student 2: anastasiakoc


Процесс разработки

  1. Student 1 (yanasim) создал спецификацию
    spec/codex.md
    (Вариант 4: Система рейтинга учащихся)
  2. Student 2 (ylyastar) реализовал код
    dev/solution.cs
    с использованием Cursor
  3. Student 3 (anastasiakoc) провёл код-ревью и одобрил Pull Request
  4. Student 2 (ylyastar) создал папку
    demo/
    с артефактами работы
  5. ✅ Создан
    README.md
    с описанием проекта
  6. ⏳ Merge в master ветку
  7. ⏳ Запуск финальной автопроверки

Технические детали

  • Язык: C#
  • Платформа: .NET (Console Application)
  • Структуры данных: List, Dictionary<string, int>
  • Алгоритмы: QuickSort, рекурсия, линейный поиск
  • Валидация: Проверка ID (5 цифр), оценок (0-100), GPA (0.0-4.0)

Запуск приложения

Приложение запускается с интерактивным меню, позволяющим управлять базой студентов.