某学校教师每月工资的计算公式如下:固定工资+课时补贴。 1. 教授(Professor)的固定工资为5000元,每个课时补贴50元; 2. 副教授(ViceProfessor)的固定工资为3000元,每个课时补贴30元; 3. 讲师(Tutor)的固定工资为2000元,每个课时补贴20元。 定义教师(Teacher)抽象类,派生不同职称的教师子类,编写程序求若干教师的月工资。
时间: 2024-02-18 12:04:47 浏览: 320
好的,这是一个简单的面向对象编程问题。下面是一个可能的解决方案:
```python
from abc import ABC, abstractmethod
class Teacher(ABC):
@abstractmethod
def get_salary(self):
pass
class Professor(Teacher):
def __init__(self, course_hours):
self.course_hours = course_hours
def get_salary(self):
return 5000 + self.course_hours * 50
class ViceProfessor(Teacher):
def __init__(self, course_hours):
self.course_hours = course_hours
def get_salary(self):
return 3000 + self.course_hours * 30
class Tutor(Teacher):
def __init__(self, course_hours):
self.course_hours = course_hours
def get_salary(self):
return 2000 + self.course_hours * 20
```
上面的代码定义了一个抽象类 `Teacher` 和三个子类 `Professor`,`ViceProfessor` 和 `Tutor`,分别对应三种职称的教师。每个子类都实现了 `get_salary` 方法,用于计算月工资。
下面是一个简单的测试程序,用于创建三个教师对象并计算他们的月工资:
```python
prof = Professor(100)
vp = ViceProfessor(80)
tut = Tutor(60)
print("Professor's monthly salary:", prof.get_salary())
print("ViceProfessor's monthly salary:", vp.get_salary())
print("Tutor's monthly salary:", tut.get_salary())
```
运行结果应该是:
```
Professor's monthly salary: 10000
ViceProfessor's monthly salary: 5400
Tutor's monthly salary: 3200
```
其中,教授的月工资为 10000 元,副教授的月工资为 5400 元,讲师的月工资为 3200 元。
阅读全文