Skip to content

oop_homework_2.py #19

@anton216216

Description

@anton216216

class Student:
def init(self, name, surname, gender):
self.name = name
self.surname = surname
self.gender = gender
self.finished_courses = []
self.courses_in_progress = []
self.grades = {}

def rate_lecture(self, lecturer, course, grade):
    # Проверяем, что оцениваемый является лектором
    if not isinstance(lecturer, Lecturer):
        return "Ошибка: можно оценивать только лекторов"
    
    # Проверяем, что студент записан на этот курс
    if course not in self.courses_in_progress:
        return "Ошибка: студент не записан на этот курс"
    
    # Проверяем, что лектор ведет этот курс
    if course not in lecturer.courses_attached:
        return "Ошибка: лектор не ведет этот курс"
    
    # Проверяем корректность оценки
    if not (0 <= grade <= 10):
        return "Ошибка: оценка должна быть от 0 до 10"
    
    # Добавляем оценку лектору
    if course not in lecturer.grades:
        lecturer.grades[course] = []
    lecturer.grades[course].append(grade)
    return None

class Lecturer:
def init(self, name, surname):
self.name = name
self.surname = surname
self.courses_attached = []
self.grades = {}

class Reviewer:
def init(self, name, surname):
self.name = name
self.surname = surname
self.courses_attached = []

def rate_hw(self, student, course, grade):
    # Проверяем, что ревьюер прикреплен к курсу
    if course not in self.courses_attached:
        return "Ошибка: ревьюер не прикреплен к этому курсу"
    
    # Проверяем, что студент изучает этот курс
    if course not in student.courses_in_progress:
        return "Ошибка: студент не изучает этот курс"
    
    # Добавляем оценку студенту
    if course not in student.grades:
        student.grades[course] = []
    student.grades[course].append(grade)
    return None

Тестирование системы

lecturer = Lecturer('Иван', 'Иванов')
reviewer = Reviewer('Пётр', 'Петров')
student = Student('Алёхина', 'Ольга', 'Ж')

student.courses_in_progress += ['Python', 'Java']
lecturer.courses_attached += ['Python', 'C++']
reviewer.courses_attached += ['Python', 'C++']

print(student.rate_lecture(lecturer, 'Python', 7)) # None - успешно
print(student.rate_lecture(lecturer, 'Java', 8)) # Ошибка: лектор не ведет этот курс
print(student.rate_lecture(lecturer, 'C++', 8)) # Ошибка: студент не записан на этот курс
print(student.rate_lecture(reviewer, 'Python', 6)) # Ошибка: можно оценивать только лекторов

print(lecturer.grades) # {'Python': [7]}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions