2024.5.20

8-1 【Python0014】设计高校人员信息包,并完成测试
分数 10
作者 doublebest
单位 石家庄铁道大学

【题目描述】定义一个人员类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(self):

print("Name:", self.name)

print("Gender:", self.gender)

print("Age:", self.age)

class Student(People):

def __init__(self, name, gender, age, student_id, admission_date, admission_score):

super().__init__(name, gender, age)

self.student_id = student_id

self.admission_date = admission_date

self.admission_score = admission_score

def display(self):

super().display()

print("Student ID:", self.student_id)

print("Admission Date:", self.admission_date)

print("Admission Score:", self.admission_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(self):

super().display()

print("Position:", self.position)

print("Department:", self.department)

print("Work Years:", self.work_years)

class Graduate(Student):

def __init__(self, name, gender, age, student_id, admission_date, admission_score, research_area, supervisor):

super().__init__(name, gender, age, student_id, admission_date, admission_score)

self.research_area = research_area

self.supervisor = supervisor

def display(self):

super().display()

print("Research Area:", self.research_area)

print("Supervisor:", self.supervisor)

class GradOnWork(Graduate):

def __init__(self, name, gender, age, student_id, admission_date, admission_score, research_area, supervisor,

position, department, work_years):

super().__init__(name, gender, age, student_id, admission_date, admission_score, research_area, supervisor)

self.position = position

self.department = department

self.work_years = work_years

def display(self):

super().display()

print("Position:", self.position)

print("Department:", self.department)

print("Work Years:", self.work_years)

# 测试

if __name__ == "__main__":

# 创建对象并测试

p1 = People("Alice", "Female", 25)

print("People:")

p1.display()

print()

s1 = Student("Bob", "Male", 22, "S001", "2020-09", 95)

print("Student:")

s1.display()

print()

t1 = Teacher("Carol", "Female", 35, "Associate Professor", "Computer Science", 10)

print("Teacher:")

t1.display()

print()

g1 = Graduate("David", "Male", 28, "G001", "2019-09", 90, "Machine Learning", "Dr. Adams")

print("Graduate:")

g1.display()

print()

gow1 = GradOnWork("Eve", "Female", 30, "G002", "2018-09", 85, "Data Science", "Dr. Smith",

"Assistant Professor", "Data Science", 5)

print("GradOnWork:")

gow1.display()

posted @ 2024-06-13 15:42  liuxuechao  阅读(12)  评论(0编辑  收藏  举报