2024/5/10

进行python实验:定义一个人员类People,其属性有:姓名、性别、年龄;基于People实现学生类Student,添加属性:学号、入学时间和入学成绩;基于People实现教师类Teacher,添加属性:职务、部门、工作时间;基于Student实现究生类Graduate,添加属性:研究方向和导师,分别定义其中的构造函数和输出函数。程序中定义各种类的对象,并完成测试。 基于以上类利用接口实现在职研究生类 GradOnWork。
class People:
    def __init__(self, name, gender, age):
        self.name = name
        self.gender = gender
        self.age = age

    def display_info(self):
        print(f"姓名: {self.name}, 性别: {self.gender}, 年龄: {self.age}")


class Student(People):
    def __init__(self, name, gender, age, student_id, enrollment_date, entrance_score):
        super().__init__(name, gender, age)
        self.student_id = student_id
        self.enrollment_date = enrollment_date
        self.entrance_score = entrance_score

    def display_info(self):
        super().display_info()
        print(f"学号: {self.student_id}, 入学时间: {self.enrollment_date}, 入学成绩: {self.entrance_score}")


class Teacher(People):
    def __init__(self, name, gender, age, position, department, work_years):
        super().__init__(name, gender, age)
        self.position = position
        self.department = department
        self.work_years = work_years

    def display_info(self):
        super().display_info()
        print(f"职务: {self.position}, 部门: {self.department},工作时间: {self.work_years}")


class Graduate(Student):
    def __init__(self, name, gender, age, student_id, enrollment_date, entrance_score, research_area, advisor):
        super().__init__(name, gender, age, student_id, enrollment_date, entrance_score)
        self.research_area = research_area
        self.advisor = advisor

    def display_info(self):
        super().display_info()
        print(f"研究方向: {self.research_area}, 导师: {self.advisor}")


class GradOnWork(Graduate):
    def __init__(self, name, gender, age, student_id, enrollment_date, entrance_score, research_area, advisor, company):
        super().__init__(name, gender, age, student_id, enrollment_date, entrance_score, research_area, advisor)
        self.company = company

def display_info(self):
    super().display_info()
    print(f"Company: {self.company}")


# Testing the classes
student1 = Student("张三", "", 20, "S12345", "2022-09-01", 95)
teacher1 = Teacher("李四", "", 35, "教授", "软件工程", 10)
graduate1 = Graduate("王五", "", 25, "G54321", "2020-09-01", 90, "计算机", "李田所")
grad_on_work1 = GradOnWork("田所浩二", "", 27, "114514", "1919-08-10", 88, "下北泽饮食研究", "李田所", "Tech Company")

student1.display_info()
teacher1.display_info()
graduate1.display_info()
grad_on_work1.display_info()

 

posted @ 2024-05-24 22:55  The-rich  阅读(14)  评论(0)    收藏  举报