Создайте систему контроля базы данных студентов и учителей, создайте тесты и систему сохранения результатов тестов.
Вам понадобится класс Человек, а также классы Учителя и ученики,
которые наследуются от человека, вам нужно будет создать
методы описывающие функционал учителей и студентов,
их информация должна быть записана в файл.
И вы должны создать класс Тестов, которые будут вызваны от экземлпяров
класса студент,чтобы те могли проходить тесты и по окончанию теста, результат
должен сохраняться в файл.(желательно использовать исключения)
Ответы на вопрос:
import json
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def to_dict(self):
return {"name": self.name, "age": self.age, "gender": self.gender}
class Teacher(Person):
def __init__(self, name, age, gender, subject):
super().__init__(name, age, gender)
self.subject = subject
def to_dict(self):
teacher_dict = super().to_dict()
teacher_dict["subject"] = self.subject
return teacher_dict
class Student(Person):
def __init__(self, name, age, gender, group):
super().__init__(name, age, gender)
self.group = group
def to_dict(self):
student_dict = super().to_dict()
student_dict["group"] = self.group
return student_dict
class Test:
def __init__(self, questions, answers):
self.questions = questions
self.answers = answers
def run(self):
score = 0
for i, question in enumerate(self.questions):
print(f"Question {i + 1}: {question}")
answer = input("Enter your answer: ")
if answer == self.answers[i]:
score += 1
print(f"Your score: {score}/{len(self.questions)}")
return score
def to_dict(self):
return {"questions": self.questions, "answers": self.answers}
class TestResult:
def __init__(self, student_name, test, score):
self.student_name = student_name
self.test = test
self.score = score
def to_dict(self):
return {"student_name": self.student_name, "test": self.test.to_dict(), "score": self.score}
class Database:
def __init__(self, teachers_file, students_file, test_results_file):
self.teachers_file = teachers_file
self.students_file = students_file
self.test_results_file = test_results_file
def load_file(self, file_path):
try:
with open(file_path, "r") as f:
return json.load(f)
except FileNotFoundError:
return []
def save_file(self, data, file_path):
with open(file_path, "w") as f:
json.dump(data, f)
def add_teacher(self, teacher):
teachers = self.load_file(self.teachers_file)
teachers.append(teacher.to_dict())
self.save_file(teachers, self.teachers_file)
def get_teachers(self):
return [Teacher(**teacher_dict) for teacher_dict in self.load_file(self.teachers_file)]
def add_student(self, student):
students = self.load_file(self.students_file)
students.append(student.to_dict())
self.save_file(students, self.students_file)
def get_students(self):
return [Student(**student_dict) for student_dict in self.load_file(self.students_file)]
def add_test_result(self, test_result):
test_results = self.load_file(self.test_results_file)
test_results.append(test_result.to_dict())
self.save_file(test_results, self.test_results_file)
def get_test_results(self):
test_results = self.load_file(self.test_results_file)
return [TestResult(test_result["student_name"], Test(**test_result["test"]), test_result["score"]) for test_result in test_results]
x = float(input("Введіть час, проведений Петриком (у годинах): "))
y = float(input("Введіть час, проведений Катериною (у годинах): "))
speed_petryk = 5 # швидкість Петрика (км/год)
speed_katerina = 4 # швидкість Катерини (км/год)
distance_petryk = speed_petryk * x # відстань, пройдена Петриком (км)
distance_katerina = speed_katerina * y # відстань, пройдена Катериною (км)
if distance_petryk > distance_katerina:
print("Петрик пройшов більшу відстань: ", distance_petryk, "км")
elif distance_katerina > distance_petryk:
print("Катерина пройшла більшу відстань: ", distance_katerina, "км")
else:
print("Петрик і Катерина пройшли однакову відстань: ", distance_petryk, "км")
Объяснение:
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
vkristinav0622.05.2021 14:05
-
макс309214.07.2021 17:10
-
асел908.01.2023 01:37
-
DAYN777DEBIL01.10.2022 20:40
-
vika1612200431.08.2020 21:40
-
emil13217.01.2023 17:18
-
tayatoadvel18.08.2020 08:25
-
supermaxwtf13.12.2021 00:14
-
полнаума03.10.2021 04:37
-
KateBytorova11.07.2021 21:09
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.