某学校对教师每月工资的计算公式如下: 固定工资+额外补贴(课时数*补贴单价)。 1. 教授的固定工资为5000元,每个课时补贴50元; 2.副教授的固定工资为3000元,每个课时补贴为30元; 3. 讲师的固定工资为2000元,每个课时补20元。 4.。定义教师抽象类,派生不同职称的教师类,编写程序求若干教师的月工资
时间: 2024-02-18 16:02:09 浏览: 155
数学建模,教师的薪金.doc
好的,根据您的要求,我来为您解答这个问题。
首先,我们需要定义一个教师抽象类,包含固定工资和课时补贴两个成员变量,以及一个计算月工资的纯虚函数:
```python
class Teacher:
def __init__(self, base_salary, bonus_per_hour):
self.base_salary = base_salary
self.bonus_per_hour = bonus_per_hour
def calculate_monthly_salary(self, total_hours):
pass
```
然后,我们派生出三个不同职称的教师类,并实现它们的计算月工资的函数:
```python
class Professor(Teacher):
def __init__(self):
super().__init__(5000, 50)
def calculate_monthly_salary(self, total_hours):
return self.base_salary + total_hours * self.bonus_per_hour
class AssociateProfessor(Teacher):
def __init__(self):
super().__init__(3000, 30)
def calculate_monthly_salary(self, total_hours):
return self.base_salary + total_hours * self.bonus_per_hour
class Lecturer(Teacher):
def __init__(self):
super().__init__(2000, 20)
def calculate_monthly_salary(self, total_hours):
return self.base_salary + total_hours * self.bonus_per_hour
```
最后,我们来测试一下这些教师的月工资:
```python
prof = Professor()
print(prof.calculate_monthly_salary(80)) # 9000
asso_prof = AssociateProfessor()
print(asso_prof.calculate_monthly_salary(60)) # 4800
lec = Lecturer()
print(lec.calculate_monthly_salary(40)) # 3000
```
以上就是这个问题的解答,希望能够帮到您!
阅读全文