Ин
Информатика
10.07.2021 19:23
Решено

Создайте систему контроля базы данных студентов и учителей, создайте тесты и систему сохранения результатов тестов.
Вам понадобится класс Человек, а также классы Учителя и ученики,
которые наследуются от человека, вам нужно будет создать
методы описывающие функционал учителей и студентов,
их информация должна быть записана в файл.
И вы должны создать класс Тестов, которые будут вызваны от экземлпяров
класса студент,чтобы те могли проходить тесты и по окончанию теста, результат
должен сохраняться в файл.(желательно использовать исключения)

Лучшие ответы
dragon64
9
4,7(96 оценок)
10.07.2021 12:00

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]

vika2499
1
4,7(17 оценок)
10.07.2021 04:05

ответ:Предметы

Все предметы

Математика

Литература

Алгебра

Русский язык

Геометрия

Английский язык

Химия

Физика

Биология

Другие предметы

История

Обществознание

Окружающий мир

География

Українська мова

Информатика

Українська література

Қазақ т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

Другие пользователи могут обозначить твои ответы как самые лучшие другим. Это весело!

Решенных во Объяснение:

Erkina000
20
4,6(68 оценок)
10.07.2021 15:10
34 6 * + 8 2 - * 2 3 4 5 * 6 + 7 + 8 4 2 * 3 4 9 + 3 4 + * 5 + + * + + * * * =  3 24 + 8 2 - * 2 3 4 5 * 6 + 7 + 8 4 2 * 3 4 9 + 3 4 + * 5 + + * + + * * * = 27 8 2 - * 2 3 4 5 * 6 + 7 + 8 4 2 * 3 4 9 + 3 4 + * 5 + + * + + * * * =27 6 * 2 3 4 5 * 6 + 7 + 8 4 2 * 3 4 9 + 3 4 + * 5 + + * + + * * * = 162 2 3 4 5 * 6 + 7 + 8 4 2 * 3 4 9 + 3 4 + * 5 + + * + + * * * = 162 2 3 20 6 + 7 + 8 4 2 * 3 4 9 + 3 4 + * 5 + + * + + * * * = 162 2 3 26 7 + 8 4 2 * 3 4 9 + 3 4 + * 5 + + * + + * * * = 162 2 3 33 8 4 2 * 3 4 9 + 3 4 + * 5 + + * + + * * * = 162 2 3 33 8 8 3 4 9 + 3 4 + * 5 + + * + + * * * = 162 2 3 33 8 8 3 13 3 4 + * 5 + + * + + * * * = 162 2 3 33 8 8 3 13 7 * 5 + + * + + * * * = 162 2 3 33 8 8 3 91 5 + + * + + * * * = 162 2 3 33 8 8 3 96 + * + + * * * = 162 2 3 33 8 8 99 * + + * * * = 162 2 3 33 8 8 99 * + + * * * = 162 2 3 33 8 792 + + * * * = 162 2 3 833 * * * = 162 2 2499 * * = 162 4998 * = 809676
Присоединяйся к нам!
Зарегестрируйтесь
Уже есть аккаунт? Войти