Предмет: Информатика, автор: Antonio1993

Создать иерархию классов для описания академии.
Примерный список классов: Person, Teacher, Student, Subject, Academy и тд.
Продумать архитектуру: реализовать принципы ООП
Помогите решить задание c примером запуска.

Ответы

Автор ответа: asilvejstruk
1

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

1. Класс Person (Человек):

  - Атрибуты: имя (name), возраст (age), пол (gender).

  - Методы: конструктор для инициализации атрибутов, получение и установка значений атрибутов.

2. Класс Teacher (Учитель), наследуется от класса Person:

  - Дополнительные атрибуты: специализация (specialization), стаж работы (experience).

  - Методы: конструктор для инициализации атрибутов, получение и установка значений атрибутов.

3. Класс Student (Студент), наследуется от класса Person:

  - Дополнительные атрибуты: год обучения (year), средний балл (average_grade).

  - Методы: конструктор для инициализации атрибутов, получение и установка значений атрибутов.

4. Класс Subject (Предмет):

  - Атрибуты: название предмета (name), уровень сложности (difficulty_level).

  - Методы: конструктор для инициализации атрибутов, получение и установка значений атрибутов.

5. Класс Academy (Академия):

  - Атрибуты: название академии (name), список учителей (teachers), список студентов (students).

  - Методы: конструктор для инициализации атрибутов, добавление учителя, добавление студента, удаление учителя, удаление студента.

class Person:

   def __init__(self, name, age, gender):

       self.name = name

       self.age = age

       self.gender = gender

   def get_name(self):

       return self.name

   def set_name(self, name):

       self.name = name

   def get_age(self):

       return self.age

   def set_age(self, age):

       self.age = age

   def get_gender(self):

       return self.gender

   def set_gender(self, gender):

       self.gender = gender

class Teacher(Person):

   def __init__(self, name, age, gender, specialization, experience):

       super().__init__(name, age, gender)

       self.specialization = specialization

       self.experience = experience

   def get_specialization(self):

       return self.specialization

   def set_specialization(self, specialization):

       self.specialization = specialization

   def get_experience(self):

       return self.experience

   def set_experience(self, experience):

       self.experience = experience

class Student(Person):

   def __init__(self, name, age, gender, year, average_grade):

       super().__init__(name, age, gender)

       self.year = year

       self.average_grade = average_grade

   def get_year(self):

       return self.year

   def set_year(self, year):

       self.year = year

   def get_average_grade(self):

       return self.average_grade

   def set_average_grade(self, average_grade):

       self.average_grade = average_grade

class Subject:

   def __init__(self, name, difficulty_level):

       self.name = name

       self.difficulty_level = difficulty_level

   def get_name(self):

       return self.name

   def set_name(self, name):

       self.name = name

   def get_difficulty_level(self):

       return self.difficulty_level

   def set_difficulty_level(self, difficulty_level):

       self.difficulty_level = difficulty_level

class Academy:

   def __init__(self, name):

       self.name = name

       self.teachers = []

       self.students = []

   def add_teacher(self, teacher):

       self.teachers.append(teacher)

   def remove_teacher(self, teacher):

       self.teachers.remove(teacher)

   def add_student(self, student):

       self.students.append(student)

   def remove_student(self, student):

       self.students.remove(student)

# Создаем объекты учителей

teacher1 = Teacher("John Smith", 35, "Male", "Mathematics", 10)

teacher2 = Teacher("Jane Doe", 40, "Female", "Physics", 15)

# Создаем объекты студентов

student1 = Student("Alice Johnson", 20, "Female", 2, 4.0)

student2 = Student("Bob Williams", 21, "Male", 3, 3.7)

# Создаем объекты предметов

subject1 = Subject("Mathematics", "Intermediate")

subject2 = Subject("Physics", "Advanced")

# Создаем объект академии

academy = Academy("My Academy")

# Добавляем учителей и студентов в академию

academy.add_teacher(teacher1)

academy.add_teacher(teacher2)

academy.add_student(student1)

academy.add_student(student2)

# Выводим информацию об академии, учителях и студентах

print(f"Academy Name: {academy.name}")

print("Teachers:")

for teacher in academy.teachers:

   print(f"Name: {teacher.get_name()}, Specialization: {teacher.get_specialization()}")

print("Students:")

for student in academy.students:

   print(f"Name: {student.get_name()}, Year: {student.get_year()}")


Antonio1993: Спасибо
Похожие вопросы
Предмет: Математика, автор: maronmorozowa
Предмет: История, автор: prohnitkaanna