March 7
Пример объектно-ориентированной программы на Python
# Создайте классы: # «Ученик» с атрибутами: имя, возраст и класс (например, «5А»). # «Учитель» с атрибутами: имя и предмет, который он преподает. # «Школа» с атрибутами: название школы и список учеников и учителей. # # Классы «Ученик» и «Учитель» должны иметь методы для вывода информации о них. # Класс «Школа» должен иметь методы для добавления учеников и учителей в школу, а также для проведения занятий. class Student: def __init__(self, name: str, surname: str, age: int, group: str) -> None: self.name = name self.surname = surname self.age = age self.group = group def set_name(self, name: str) -> 'Student': self.name = name return self def set_surname(self, surname: str) -> 'Student': self.surname = surname return self def set_age(self, age: int) -> 'Student': self.age = age return self def set_group(self, group: str) -> 'Student': self.group = group return self def get_info(self) -> str: return '\n'.join([ 'Ученик', f' Имя: {self.name}', f' Фамилия: {self.surname}', f' Возраст: {self.age}', f' Класс: {self.group}' ]) def study(self) -> 'Student': print(f'Ученик {self.name} {self.surname} обучается в классе {self.group}') return self class Teacher: def __init__(self, name: str, surname: str, subject: str) -> None: self.name = name self.surname = surname self.subject = subject def set_name(self, name: str) -> 'Teacher': self.name = name return self def set_surname(self, surname: str) -> 'Teacher': self.surname = surname return self def set_subject(self, subject: str) -> 'Teacher': self.subject = subject return self def get_info(self) -> str: return '\n'.join([ 'Учитель', f' Имя: {self.name}', f' Фамилия: {self.surname}', f' Предмет: {self.subject}' ]) def teach(self) -> 'Teacher': print(f'Учитель {self.name} {self.surname} преподает {self.subject}') return self class School: def __init__(self, name: str) -> None: self.name = name self.students: list[Student] = [] self.teachers: list[Teacher] = [] def add_student(self, student: Student) -> 'School': self.students.append(student) return self def add_teacher(self, teacher: Teacher) -> 'School': self.teachers.append(teacher) return self def get_info(self) -> str: result = '' result += '\n\n'.join([teacher.get_info() for teacher in self.teachers]) result += '\n\n' result += '\n\n'.join([student.get_info() for student in self.students]) return result def conduct_lessons(self) -> 'School': for teacher in self.teachers: teacher.teach() print() for student in self.students: student.study() return self def main(): students: list[Student] = [ Student('Матвей', 'Богданов', 16, '9В'), Student('Кира', 'Филиппова', 18, '11Б'), Student('Софья', 'Шувалова', 17, '10А') ] teachers: list[Teacher] = [ Teacher('Лев', 'Трофимов', 'Русский язык'), Teacher('Анастасия', 'Киреева', 'Английский язык'), Teacher('Николай', 'Борисов', 'Информатика') ] school = School('МОУ "СОШ №115"') for student in students: school.add_student(student) for teacher in teachers: school.add_teacher(teacher) school.conduct_lessons() if __name__ == '__main__': main()