编写一个简单的工资管理程序,系统可以管理以下四类人:工人( worker)、销售员( salesman),经理( manager)、销售经理(salemanager) 所有的员工都具有 员工号,姓名,工资等属性,有设置姓名,获取姓名,获取员工号,计算工资等方法。 1)工人:工人具有工作小时数和时薪的属性,工资计算方法为 工作小时数*时薪 2)销员员:具有销额和提成比例的属性,工资计算方法为 销售额*提成比例 3)经理:具有固定月薪的属性,工资计草方法为固定月薪 4)销售经理:工资计算方法为 销售额*提成比例+固定月薪 请根据以上要求设计合理的类,完成以下功能 1)加所有类型的人员 2)计算月薪 3)显示所有人工资情况
class Employee: def __init__(self, employee_id, name, salary): self.employee_id = employee_id self.name = name self.salary = salary def get_employee_id(self): return self.employee_id def get_name(self): return self.name def calculate_salary(self): return self.salary class Worker(Employee): def __init__(self, employee_id, name, hourly_rate, hours_worked): super().__init__(employee_id, name, 0) self.hourly_rate = hourly_rate self.hours_worked = hours_worked def calculate_salary(self): return self.hourly_rate * self.hours_worked class Salesman(Employee): def __init__(self, employee_id, name, commission_rate, sales_amount): super().__init__(employee_id, name, 0) self.commission_rate = commission_rate self.sales_amount = sales_amount def calculate_salary(self): return self.commission_rate * self.sales_amount class Manager(Employee): def __init__(self, employee_id, name, fixed_salary): super().__init__(employee_id, name, fixed_salary) class SalesManager(Employee): def __init__(self, employee_id, name, commission_rate, sales_amount, fixed_salary): super().__init__(employee_id, name, fixed_salary) self.commission_rate = commission_rate self.sales_amount = sales_amount def calculate_salary(self): return self.commission_rate * self.sales_amount + self.salary employees = [] # 定义一个列表,添加所有类型的人员 worker = Worker("001", "John", 15, 160) employees.append(worker) salesman = Salesman("002", "Alice", 0.1, 20000) employees.append(salesman) manager = Manager("003", "Bob", 5000) employees.append(manager) sales_manager = SalesManager("004", "Tom", 0.2, 30000, 6000) employees.append(sales_manager) # 计算月薪并显示所有人工资情况 for employee in employees: print(f"Employee ID: {employee.get_employee_id()}") # 格式化形式的输出 print(f"Name: {employee.get_name()}") monthly_salary = employee.calculate_salary() print(f"Monthly Salary: {monthly_salary}") print("-------------------------")