某学校对教师每月工资的计算公式如下:固定工资+额外补贴。教授的固定工资为5000元,每个课时补贴50元;副教授的固定工资为3000元,每个课时补贴为30元;讲师的固定工资为2000元,每个课时补20元。定义教师抽象类,派生不同职称的教师类,编写程序求若干教师的月工资。
时间: 2023-12-03 15:46:15 浏览: 134
教师工资计算系统
以下是一个简单的实现:
```python
# 定义教师抽象类
from abc import ABC, abstractmethod
class Teacher(ABC):
def __init__(self, hours):
self.hours = hours # 课时数
@abstractmethod
def calculate_salary(self):
pass
# 定义不同职称的教师类
class Professor(Teacher):
def __init__(self, hours):
super().__init__(hours)
self.fixed_salary = 5000
self.extra_allowance = 50
def calculate_salary(self):
return self.fixed_salary + self.extra_allowance * self.hours
class AssociateProfessor(Teacher):
def __init__(self, hours):
super().__init__(hours)
self.fixed_salary = 3000
self.extra_allowance = 30
def calculate_salary(self):
return self.fixed_salary + self.extra_allowance * self.hours
class Lecturer(Teacher):
def __init__(self, hours):
super().__init__(hours)
self.fixed_salary = 2000
self.extra_allowance = 20
def calculate_salary(self):
return self.fixed_salary + self.extra_allowance * self.hours
# 测试程序
if __name__ == '__main__':
p = Professor(80)
print("教授的月工资为:", p.calculate_salary())
a = AssociateProfessor(60)
print("副教授的月工资为:", a.calculate_salary())
l = Lecturer(40)
print("讲师的月工资为:", l.calculate_salary())
```
输出结果为:
```
教授的月工资为: 9000
副教授的月工资为: 4800
讲师的月工资为: 2800
```
阅读全文