要求: 编写一个简单的工资管理程序系统可以管理以下四类人:工人(worker)、销售员( salesman)、经理( manager)、销售经理( salemanager)
所有的员工部具有员工号、姓名、工资等属性,有设置姓名、获取姓名、获取员工号,计算工资等方法。
(1)工人:工人具有工作小数和时薪的属性,工资计算法方法为工作小时数*时薪。
(2)销售员:具有销额和提成比例的属性,工资计算方法为销售额*提成比例
(3)经理:具有固定月薪的属性,工资计算方法为固定月薪
(4)销售经理:工计算方法为(销售额*提成比例)+固定月薪
请根据以上要求设计合理的类,完成以下功能
(1)添加所有类型的人员
(2)计算月薪
程序代码如下:
class Person(object):
def __init__(self, nu, name, salary):
self.nu = nu
self.name = name
self.salary = salary
def __str__(self):
msg = '工号:{},姓名{},本月工资{}'.format(self.nu, self.name, self.salary)
return msg
def getSalary(self):
return self.salary
# 工人
class Worker(Person):
def __init__(self, nu, name, salary, hours, per):
super().__init__(nu, name, salary)
self.hours = hours
self.per = per
def getSalary(self):
money = self.hours * self.per
self.salary += money
return self.salary
#销售员
class salesman(Person):
def __init__(self,nu,name,salary,sell_amounts,commission_rate):
super().__init__(nu,name,salary)
self.sell_amounts = sell_amounts
self.commission_rate = commission_rate
def getSalary(self):
money = self.sell_amounts * self.commission_rate
self.salary += money
return self.salary
#经理
class manager(Person):
def __init__(self,nu,name,salary,fixed_monthly_salary):
super().__init__(nu,name,salary)
self.fixed_monthly_salary = fixed_monthly_salary
def getSalary(self):
money = self.fixed_monthly_salary
self.salary += money
return self.salary
#销售经理
class salemanager(Person):
def __init__(self,nu,name,salary,fixed_monthly_salary,sell_amounts,commission_rate):
super().__init__(nu,name,salary)
self.fixed_monthly_salary = fixed_monthly_salary
self.sell_amounts = sell_amounts
self.commission_rate = commission_rate
def getSalary(self):
money = self.fixed_monthly_salary + (self.commission_rate *self.sell_amounts)
self.salary += money
return self.salary
# 创建子类对象
# 创建工人类对象
w = Worker('001', '小李', 0, 180, 25)
s = w.getSalary()
print("月薪是:", s)
print(w)
print("==" * 50)
# 创建销售员类对象
sm = salesman('002','小张',0,160,25)
s = sm.getSalary()
print("月薪是:",s)
print(sm)
print("==" * 50)
# 创建经理类对象
mg = manager('003','小芳',0,4500)
s =mg.getSalary()
print("月薪是:",s)
print(mg)
print("==" * 50)
# 创建销售经理类对象
sm2 = salemanager('004','小丽',0,3700,40,25)
s = sm2.getSalary()
print("月薪是:",s)
print(sm2)
运行结果:
月薪是: 4500
工号:001,姓名小李,本月工资4500
====================================================================================================
月薪是: 4000
工号:002,姓名小张,本月工资4000
====================================================================================================
月薪是: (4500,)
工号:003,姓名小芳,本月工资4500
====================================================================================================
月薪是: 4700
工号:004,姓名小丽,本月工资4700
Process finished with exit code 0