学校教职工的工资计算方法为: (1)所有教职工都有基本工资。 (2)教师月薪 = 教师固定工资+课时补贴,课时补贴根据职称和课时数计算。例如,每课时教授补贴50元,副教授补贴30 元,讲师补贴20 元。注意,这里的教师固定工资不是基本工资。 (3)管理人员月薪 = 基本工资+职务工资。 (4)实验室人员月薪 = 基本工资+工作日补贴,工作日补贴 = 日补贴x 月工作日数。 定义教职工抽象类,派生教师类、管理人员类和实验室人员类,编写程序测试这个类体系。
时间: 2023-06-12 18:05:04 浏览: 229
输入教师和对应的课时数,输出与之相对应的工资数
5星 · 资源好评率100%
以下是一个简单的实现:
```python
from abc import ABC, abstractmethod
class Employee(ABC):
def __init__(self, name, basic_salary):
self.name = name
self.basic_salary = basic_salary
@abstractmethod
def calculate_salary(self):
pass
class Teacher(Employee):
def __init__(self, name, basic_salary, title, course_hours):
super().__init__(name, basic_salary)
self.title = title
self.course_hours = course_hours
def calculate_salary(self):
if self.title == "教授":
allowance = 50
elif self.title == "副教授":
allowance = 30
elif self.title == "讲师":
allowance = 20
else:
allowance = 0
return self.basic_salary + allowance * self.course_hours
class Manager(Employee):
def __init__(self, name, basic_salary, position_salary):
super().__init__(name, basic_salary)
self.position_salary = position_salary
def calculate_salary(self):
return self.basic_salary + self.position_salary
class LabWorker(Employee):
def __init__(self, name, basic_salary, daily_allowance, working_days):
super().__init__(name, basic_salary)
self.daily_allowance = daily_allowance
self.working_days = working_days
def calculate_salary(self):
return self.basic_salary + self.daily_allowance * self.working_days
# 测试
teacher = Teacher("张三", 10000, "教授", 80)
print(teacher.calculate_salary())
manager = Manager("李四", 8000, 2000)
print(manager.calculate_salary())
lab_worker = LabWorker("王五", 5000, 50, 20)
print(lab_worker.calculate_salary())
```
运行结果为:
```
14000
10000
6000
```
其中,教师的工资计算为基本工资加上课时补贴,管理人员的工资计算为基本工资加职务工资,实验室人员的工资计算为基本工资加工作日补贴。不同职位的补贴和职务工资可以在类的构造函数中传入。
阅读全文