2024.5.22
【题目描述】设计教师接口,该接口包含教师工资计算方法。应用(一)中的高校人员信息包,设计不同职称的教师类:教授,副教授,讲师,教师的基本信息包括姓名、性别、出生年月、职称、课时工作量等属性。注意学校对教师每月工资的计算规定如下:固定工资+课时补贴;教授的固定工资为5000元,每个课时补贴50元;副教授的固定工资为3000元,每个课时补贴30元;讲师的固定工资为2000元,每个课时补贴20元。
程序中定义各种教师类的对象,并编写程序求这些教师的月工资。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
# 定义教师接口
class Teacher:
def __init__(self, name, gender, birthdate, title, teaching_hours):
self.name = name
self.gender = gender
self.birthdate = birthdate
self.title = title
self.teaching_hours = teaching_hours
def calculate_salary(self):
pass
# 定义教授类
class Professor(Teacher):
def calculate_salary(self):
# 固定工资
fixed_salary = 5000
# 课时补贴
hourly_allowance = 50 * self.teaching_hours
# 总工资
total_salary = fixed_salary + hourly_allowance
return total_salary
# 定义副教授类
class AssociateProfessor(Teacher):
def calculate_salary(self):
# 固定工资
fixed_salary = 3000
# 课时补贴
hourly_allowance = 30 * self.teaching_hours
# 总工资
total_salary = fixed_salary + hourly_allowance
return total_salary
# 定义讲师类
class Lecturer(Teacher):
def calculate_salary(self):
# 固定工资
fixed_salary = 2000
# 课时补贴
hourly_allowance = 20 * self.teaching_hours
# 总工资
total_salary = fixed_salary + hourly_allowance
return total_salary
# 测试
if __name__ == "__main__":
# 创建教师对象并计算工资
professor = Professor("John Doe", "Male", "1980-01-01", "Professor", 40)
associate_professor = AssociateProfessor("Jane Smith", "Female", "1985-05-10", "Associate Professor", 30)
lecturer = Lecturer("Alice Johnson", "Female", "1990-12-15", "Lecturer", 20)
# 打印工资
print(f"{professor.name}'s monthly salary: ${professor.calculate_salary()}")
print(f"{associate_professor.name}'s monthly salary: ${associate_professor.calculate_salary()}")
print(f"{lecturer.name}'s monthly salary: ${lecturer.calculate_salary()}")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通