Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Created October 6, 2025 12:00
Show Gist options
  • Save sunmeat/6e6801bf6d612dbed7967749edee70b2 to your computer and use it in GitHub Desktop.
Save sunmeat/6e6801bf6d612dbed7967749edee70b2 to your computer and use it in GitHub Desktop.
ДЗ на перевантаження операцій, індексатори та властивості

Перевантаження операторів, Індексатори та Властивості

Частина 1: Перевантаження операторів для класів Student та Group

Опис

Реалізуйте перевантаження операторів для класів Student і Group. Логіка порівняння базується на середньому балі для студентів та кількості студентів для груп.

Вимоги для класу Student

  1. Оператор ==: Порівняння студентів за середнім балом по оцінках. Якщо середній бал однаковий — повернути true, якщо різні — false.
  2. Оператори > та <: Порівняння студентів за середнім балом (вищий бал — "більший" студент).
  3. Оператори = та !=: Порівняння студентів за середнім балом (аналогічно == та !=).

Вимоги для класу Group

  1. Оператор ==: Порівняння груп за кількістю студентів. Якщо кількість однакова — повернути true, якщо різна — false.
  2. Оператори > та <: Порівняння груп за кількістю студентів (більша кількість — "більша" група).
  3. Оператори = та !=: Порівняння груп за кількістю студентів (аналогічно == та !=).

Частина 2: Індексатори для класу Group

Опис

Додайте індексатор до класу Group для зручного доступу до студентів. Індексатор повинен дозволяти пошук за прізвищем студента.

Вимоги для класу Group

  1. Індексатор []: Доступ до студентів з групи за прізвищем (наприклад, group["Шевченко"] повертає студента з таким прізвищем). Якщо не знайдено — повернути null або викинути виняток.

Частина 3: Властивості для класів Student та Group

Опис

Додайте відповідні властивості до класів Student і Group. Збережіть приватні поля та геттери/сеттери, якщо вони є. Використовуйте властивості для інкапсуляції даних.

Вимоги для класу Student

  • Додайте властивості: Name (ім'я), Lastname (прізвище), Age (вік), AverageGrade (середній бал).

Вимоги для класу Group

  • Додайте властивості: Count (кількість студентів), Specialization (спеціалізація), Course (курс).

Додаткові рекомендації

  • Приватні поля та геттери/сеттери: Не видаляйте їх — інтегруйте з новими властивостями.
  • Тестування: У методі Main продемонструйте доступ до властивостей (встановлення та отримання значень).
  • Джерела: Прочитайте розділ 10 "Properties" з книги "CLR via C#" Джеффрі Ріхтера (4-е видання). Подивіться відео-огляд книги "CLR via C# (Jeffrey Richter)" на YouTube.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment