Создайте систему контроля базы данных студентов и учителей, создайте тесты и систему сохранения результатов тестов.
Вам понадобится класс Человек, а также классы Учителя и ученики,
которые наследуются от человека, вам нужно будет создать
методы описывающие функционал учителей и студентов,
их информация должна быть записана в файл.
И вы должны создать класс Тестов, которые будут вызваны от экземлпяров
класса студент,чтобы те могли проходить тесты и по окончанию теста, результат
должен сохраняться в файл.(желательно использовать исключения)
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]
ответ:Предметы
Все предметы
Математика
Литература
Алгебра
Русский язык
Геометрия
Английский язык
Химия
Физика
Биология
Другие предметы
История
Обществознание
Окружающий мир
География
Українська мова
Информатика
Українська література
Қазақ тiлi
Экономика
Музыка
Право
Беларуская мова
Французский язык
Немецкий язык
МХК
ОБЖ
Психология
Оʻzbek tili
Кыргыз тили
Астрономия
Физкультура и спорт
Мозг
МозгОтвечающий
Что ты хочешь узнать?
ЗАДАЙ ВО ответь на 5 во из любого предмета, чтобы получить
+50 б.
0/5
2д : 00ч
НАЧАТЬ
Уровень
Вид
+1 НОВЫЙ ВО Биология4 минуты назад
+5 б.
Захворювання шкіри, що спричиняють мікроскопічні гриби-паразити є....
annaderbeneva20
ОТВЕТИТЬ
tcibireva366278
Биология5 минут назад
+46 б.
что такое фитодезайн?
ОТВЕТИТЬ
Во новичка
Биология11 минут назад
+5 б.
перелічіть основні продукти обміну, накопичувані в крові в результаті окиснення. До ть будь ласка
Mooiseyka
NastyaSmaleva
ОТВЕТИТЬ
Биология12 минут назад
+13 б Яке значення ланцюга живлення в природі? 2. Чому рослини знаходяться першими у ланцюгу живлення? 3....
Mooiseyka
ОТВЕТИТЬ
perlsan4oys
Биология13 минут назад
+5 б.
5. Перечислите при растений к различнымопылителям. Приведите примеры.
ОТВЕТИТЬ
Биология13 минут назад
+8 б.
Найти лишнего в каждой строчке 1) пищуха, сурок, соня, суслик; 2) рысь, лев, утконос, гепард; 3) крот, выхухоль,крылан,еж; 4) утконос, ехидна, мара;...
kalinina94
ОТВЕТИТЬ
Биология14 минут назад
+5 б описание структуры кишечной полости
janetreselle
ОТВЕТИТЬ
Во новичка
Биология14 минут назад
+5 б.
6.Н(1) волнение, н(2) слабая физическая готовность — н(3)что н(4) могло убавить желание Игоря принять участие в игре. 1)1,2,3 ...
egreshnykh
ОТВЕТИТЬ
Во новичка
Биология15 минут назад
+5 б.
1. Яке значення ланцюга живлення в природі? 2. Чому рослини знаходяться першими у ланцюгу живлення? 3. Чому деструктори (редуценти) знаходяться...
Mooiseyka
ОТВЕТИТЬ
Биология15 минут назад
+12 б.
К насекомым с полным превращением относится 1) кузнечик 2) тля 3) саранча 4) бабочка-капустница
imangulovaliana0
irenamykytchuk
ОТВЕТИТЬ
Биология15 минут назад
+5 б.
Птица колибри развития прямое или с метаморфозом?
sanmarishechka
ОТВЕТИТЬ
Биология16 минут назад
+16 б.
У насекомых дыхание происходит 1) при трахей 2) через всю поверхность тела 3) при лёгочных мешков 4) при жабр
Mooiseyka
irenamykytchuk
ОТВЕТИТЬ
Биология19 минут назад
+9 б.
Енергетичний обмін, достатній лише для забезпечення роботи внутрішніх органів у стані повного спокою- 8 букв
irenamykytchuk
ОТВЕТИТЬ
Биология20 минут назад
+5 б.
який абіоточний чинник водного серидовища існування а) температура б) бактерії гниття в) водорості
Nastya00go
ОТВЕТИТЬ
Биология20 минут назад
+5 б.
Доповніть незакінчене речення 7. Двостатева квітка має тичинки і...
Mooiseyka
ОТВЕТИТЬ
Биология21 минута назад
+5 б б живлення пеніцилу?
ОТВЕТИТЬ
vedusenkoanecka
Биология21 минута назад
+6 б.
Запропонуйте дослід, що доводить необхідність світла для квіткових рослин. Опишіть схему досліду, та передбачувані результати ОТВЕТИТЬ
Биология21 минута назад
+5 б.
Вкажіть правельну відповідь ("так" чи "ні") 1. Віночок у квітки складається з пелюсток. 2. Тичинка складаеться з приймочки і стовпчика. 3. Усі...
pixiegirl33
ОТВЕТИТЬ
angelinaarustaman340
Биология22 минуты назад
+5 б.
для того чтобы из цветка развился плод с семенами, должно произойтиа) завядание цветкаб) опылениев) образование нового побега
janetreselle
erekovna2008gmailcom
ОТВЕТИТЬ
Биология23 минуты назад
+15 б.
Патологіччне голодування, часто пов'язане з психічними розладами - 9 букв
irenamykytchuk
ОТВЕТИТЬ
ПОКАЗАТЬ ЕЩЕ
ASDXZDCX
Статус: Новичок
15/100
Твой вклад
За 7 дней
Всего
Твои показатели за последние 7 дней в сравнении с предыдущими 7 днями
Популярность
4
Твои ответы пользователям.
+400%
Лучших ответов
0
Другие пользователи могут обозначить твои ответы как самые лучшие другим. Это весело!
Решенных во Объяснение: