软件工程日报(4.11)
时长:两个小时
问题:
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_info(self):
print(f"姓名: {self.name}, 性别: {self.gender}, 年龄: {self.age}")
class Student(People):
def __init__(self, name, gender, age, student_id, enrollment_year, admission_score):
super().__init__(name, gender, age)
self.student_id = student_id
self.enrollment_year = enrollment_year
self.admission_score = admission_score
def display_student_info(self):
super().display_info()
print(f"学号: {self.student_id}, 入学年份: {self.enrollment_year}, 录取分数: {self.admission_score}")
class Teacher(People):
def __init__(self, name, gender, age, title, department, working_years):
super().__init__(name, gender, age)
self.title = title
self.department = department
self.working_years = working_years
def display_teacher_info(self):
super().display_info()
print(f"职务: {self.title}, 部门: {self.department}, 工作时间: {self.working_years}")
class Graduate(Student):
def __init__(self, name, gender, age, student_id, enrollment_year, admission_score, research_direction, advisor):
super().__init__(name, gender, age, student_id, enrollment_year, admission_score)
self.research_direction = research_direction
self.advisor = advisor
def display_graduate_info(self):
super().display_student_info()
print(f"研究方向: {self.research_direction}, 导师: {self.advisor}")
class GradOnWork(Graduate):
def __init__(self, name, gender, age, student_id, enrollment_year, admission_score, research_direction, advisor, work_status):
super().__init__(name, gender, age, student_id, enrollment_year, admission_score, research_direction, advisor)
self.work_status = work_status
def display_work_status(self):
print(f"工作状态: {self.work_status}")
# 重写显示信息方法,包含工作状态
def display_graduate_info(self):
super().display_graduate_info()
self.display_work_status()
if __name__ == "__main__":
# 创建一个研究生实例
grad_student = Graduate("索尔古德曼", "男", 24, "S2023001", 2023, 85.0, "文科", "Dr.布吉岛")
grad_student.display_graduate_info()
# 创建一个在职研究生实例
grad_on_work = GradOnWork("沃尔特怀特", "男", 27, "S2021002", 2021, 90.0, "结晶学", "Prof.海森堡", "在职研究生")
grad_on_work.display_graduate_info()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2023-04-16 c++训练打卡(8)