某高校对教师每个月工资的计算规定如下:固定工资+课时补贴。其中,教授的固定工资为5000元,每个课时补贴50元;副教授的固定工资为3000元,每个课时补贴30元;讲师的固定工资为2000元,每个课时补贴20元。 定义教师抽象类,派生不同职称的教师类,编写程序求若干个教师的月工资。
时间: 2024-05-14 08:17:02 浏览: 89
好的,我明白了你的问题。以下是我对你的回答:
首先,我们需要定义一个教师抽象类,然后派生出不同职称的教师类。在教师类中,我们需要定义固定工资和课时补贴,并实现计算月工资的函数。具体代码如下:
```python
from abc import ABC, abstractmethod
class Teacher(ABC):
def __init__(self, name, course_hours):
self.name = name
self.course_hours = course_hours
@property
@abstractmethod
def fixed_salary(self):
pass
@property
@abstractmethod
def per_hour_subsidy(self):
pass
def calculate_month_salary(self):
return self.fixed_salary + self.course_hours * self.per_hour_subsidy
class Professor(Teacher):
@property
def fixed_salary(self):
return 5000
@property
def per_hour_subsidy(self):
return 50
class AssociateProfessor(Teacher):
@property
def fixed_salary(self):
return 3000
@property
def per_hour_subsidy(self):
return 30
class Lecturer(Teacher):
@property
def fixed_salary(self):
return 2000
@property
def per_hour_subsidy(self):
return 20
```
接下来,我们可以实例化教师对象,并通过调用计算月工资的函数来计算其月工资。例如:
```python
p1 = Professor('Tom', 50)
print(f"{p1.name}的月工资为{p1.calculate_month_salary()}元。")
a1 = AssociateProfessor('Jerry', 80)
print(f"{a1.name}的月工资为{a1.calculate_month_salary()}元。")
l1 = Lecturer('Tony', 60)
print(f"{l1.name}的月工资为{l1.calculate_month_salary()}元。")
```
输出结果如下:
```
Tom的月工资为7500元。
Jerry的月工资为5400元。
Tony的月工资为3200元。
```
以上就是计算不同职称教师月工资的程序。感谢您的提问。
阅读全文