某学校教师行月工资的计算公式如下:固定工资+课时补贴。 教授(Protessor)的周定工资为5000元,手个课时补贴50元; 副教授(ViceProtessor)的周定工资为3000元,行个课时补贴30元; 讲师(Tutor)的周定工资为2000元,每个课时补贴20元。 定义教师(Teacher)抽象类,派生不问职称的教师子类,编写程序求若干教师的月工资
时间: 2023-12-06 19:44:26 浏览: 74
基金定投:一周投,两周投or月投哪种收益更好1
根据题目,我们可以先定义出教师抽象类和不同职称的教师子类:
```python
from abc import ABC, abstractmethod
class Teacher(ABC):
@abstractmethod
def calculate_salary(self):
pass
class Professor(Teacher):
WEEKLY_SALARY = 5000
HOURLY_SUBSIDY = 50
def __init__(self, hourly_count):
self.hourly_count = hourly_count
def calculate_salary(self):
return self.WEEKLY_SALARY + self.hourly_count * self.HOURLY_SUBSIDY
class ViceProfessor(Teacher):
WEEKLY_SALARY = 3000
HOURLY_SUBSIDY = 30
def __init__(self, hourly_count):
self.hourly_count = hourly_count
def calculate_salary(self):
return self.WEEKLY_SALARY + self.hourly_count * self.HOURLY_SUBSIDY
class Tutor(Teacher):
WEEKLY_SALARY = 2000
HOURLY_SUBSIDY = 20
def __init__(self, hourly_count):
self.hourly_count = hourly_count
def calculate_salary(self):
return self.WEEKLY_SALARY + self.hourly_count * self.HOURLY_SUBSIDY
```
在不同的教师子类中,我们分别定义了每周的固定工资和每个课时的补贴,同时实现了计算月工资的方法。
接下来,我们可以创建不同职称的教师对象,并查看他们的月工资:
```python
professor = Professor(hourly_count=50)
print("教授的月工资为:", professor.calculate_salary())
vice_professor = ViceProfessor(hourly_count=30)
print("副教授的月工资为:", vice_professor.calculate_salary())
tutor = Tutor(hourly_count=100)
print("讲师的月工资为:", tutor.calculate_salary())
```
输出结果如下:
```
教授的月工资为: 7500
副教授的月工资为: 3900
讲师的月工资为: 4000
```
这样,我们就成功地实现了教师月工资的计算。
阅读全文