某学校对教师每月工资的计算公式如下:固定工资+额外补贴。教授的固定工资为5000元,每个课时补贴50元;副教授的固定工资为3000元,每个课时补贴为30元;讲师的固定工资为2000元,每个课时补20元。定义教师抽象类,派生不同职称的教师类,编写程序求若干教师的月工资。
时间: 2024-03-17 09:40:59 浏览: 118
基于ASP+SqlServer某高校工资管理系统的设计与实现(源代码+论文)
好的,这是一个典型的面向对象程序设计题目。我们可以先定义一个教师抽象类,然后派生出教授、副教授、讲师三个类,最后在主函数中创建若干个不同职称的教师对象,调用其计算工资的方法,输出结果即可。
下面是一个可能的实现:
```python
# 定义教师抽象类
class Teacher:
def __init__(self, fixed_salary, allowance):
self.fixed_salary = fixed_salary # 固定工资
self.allowance = allowance # 每个课时补贴
def calculate_salary(self, teaching_hours):
# 计算月工资
return self.fixed_salary + self.allowance * teaching_hours
# 定义教授类
class Professor(Teacher):
def __init__(self):
super().__init__(5000, 50) # 固定工资为5000元,每个课时补贴50元
# 定义副教授类
class AssociateProfessor(Teacher):
def __init__(self):
super().__init__(3000, 30) # 固定工资为3000元,每个课时补贴30元
# 定义讲师类
class Lecturer(Teacher):
def __init__(self):
super().__init__(2000, 20) # 固定工资为2000元,每个课时补贴20元
# 主函数
if __name__ == '__main__':
# 创建若干个不同职称的教师对象
professor = Professor()
associate_professor = AssociateProfessor()
lecturer = Lecturer()
# 调用计算工资的方法,输出结果
print('教授月工资:', professor.calculate_salary(80))
print('副教授月工资:', associate_professor.calculate_salary(60))
print('讲师月工资:', lecturer.calculate_salary(40))
```
程序的输出结果如下:
```
教授月工资: 9000
副教授月工资: 4800
讲师月工资: 2800
```
这就是三个不同职称的教师的月工资计算结果。
阅读全文