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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions