Задание на питоне
Спроектируйте для языке Python два класса: один класс студент врач-ветеринар, другой класс студент врач-физик-кибернетик. В каждом классе должны быть методы: добавить студента в таблицу, удалить студента из таблицы, вывести список студентов с их средним баллом. От двух этих классов отнаследуйте класс врача, который лечит в будущем людей-киборгов, со своими специфичными методами.Заготовка решения данной задачи в файле: Three_students.ipynbДля реализации описанной задачи на языке Python, нужно создать три класса: Veterinarian, MedicalStudent, и CyborgDoctor. Первые два класса будут иметь методы для добавления, удаления и вывода списка студентов с их средним баллом. Третий класс CyborgDoctor будет наследоваться от первых двух и добавлять свои специфичные методы.Описание:Класс Veterinarian:Имеет методы для добавления, удаления и вывода списка студентов ветеринарных врачей с их средним баллом.Использует словарь students для хранения студентов и их средних баллов.Класс MedicalStudent:Аналогичен классу Veterinarian, но предназначен для студентов-медиков.Класс CyborgDoctor:Наследуется от Veterinarian и MedicalStudent.Добавляет методы для работы с киборг-пациентами: добавление и вывод списка киборг-пациентов.Примечание:В данном примере используется множественное наследование, потому что требуется объединить функциональность нескольких классов.Методы add_student, remove_student, и list_students в классе CyborgDoctor наследуются от Veterinarian и MedicalStudent. В данном случае, если методы в родительских классах имеют одинаковые имена, будет использоваться метод из первого указанного класса в списке наследования (в данном случае Veterinarian).III) Задание 1. Реализация интерфейса должна быть в текстовом терминале с возможностью выбора через кнопочно-циферное меню, например вот так:####################################Нажмите "1" для выбора меню СтудентаНажмите "2" для выбора меню Декана####################################В меню Студента должно быть подменю выбора типа студента-врача и выбор методов, специфичных для данного вида студента.Аналогично в меню Декана должно быть подменю выбора методов, специфичных для Декана.Не забудьте про Пациентов, им тоже потребуется свой функционал.1) В первых двух классах студента ветеринарного врача и студента врача-физика-кибернетика добавьте методы добавления соответствующих пациентов (по аналогии с киборг-пациентами: add_animal_patient и add_human_patient). Вам нужно сделать так, чтобы эти методы были недоступны для класса CyborgDoctor.2) [Опциональное задание] Изолируйте через инкапсуляцию методы add_student, remove_student и list_students для класса CyborgDoctor.3) В каждом классе у каждого типа студента добавить метод, имитирующий (случайно заполняющий) табеля (массивы) посещения лекций для каждого типа студентов). Названия предметов придумайте сами, у каждого типа врача-студента должны быть свои дисциплины. Лекций в каждом семестре всегда 16, заполняем массивы по предметам: "0" - пропустил, "1" - посетил.4) В каждом классе у каждого типа студента-врача добавить метод, имитирующий процент излечения своих пациентов (выставлять случайный процент от 0 до 100).5) В каждом классе у каждого типа студента-врача добавить метод, имитирующий вылечивание пациентов (например, через 5 новых добавленных пациентов, предыдущий в списке (n-5)-й пациент вылечивается). Вылеченного пациента оставлять в таблице врач-пациент с флагом как вылеченный, но не выводить его в методе для вывода списка пациентов.6) В каждом классе у каждого типа студента-врача добавить метод, имитирующий результат написания итоговой тестовой работы по лекционным предметам (случайно выставлять ему оценку: "2", "3", "4" или "5").7) Эти три типа студентов учатся в одном ВУЗе, на одном факультете, например в Галактическом Кибернетическом Ветеринарном Факультете. Создать класс Декана этого Факультета, отнаследовавшись от трёх классов студентов. Добавить в класс Декана методы изменения оценок для каждого типа студентов (после пересдачи по желанию студентов: если студент получил "2", сделайте метод подачи заявления от студента Декану; и метод у Декана, когда Декан после получения заявления от студента, решает в диалоговом окне разрешить студенту пересдавать или нет; а далее студент будет снова сдавать на случайную оценку; здесь потребуется таблица Студент-Декан), методы вывода итоговой статистики для мониторинга успеваемости как по каждому студенту, внутри каждого направления студентов, так и вообще по всему Факультету. Придумать дополнительные методы, на ваш взгляд, специфичные для Декана такого Факультета.8) Для пациентов, если врач их плохо лечит, добавьте методы: "перейти к другому студенту-врачу текущего профиля" (с перемещением в таблице врачей-пациентов), "перейти к студенту-врачу другого профиля" (с перемещением в таблице врачей-пациентов) и "сбежать из этой лечебницы-богадельни" (с полным удалением из таблицы врачей-пациентов).9) Сделать медоты сохранения и чтения всех таблиц для студентов-врачей, их пациентов и декана через текстовые файлы.Понимаю, что задача объемная и странная (университетская), но попрошу подробно объяснить (например в текстовом файле ) как работает скрипт на конкретных этапах.
Other