面向对象编程--编写工资管理程序系统

要求: 编写一个简单的工资管理程序系统可以管理以下四类人:工人(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
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值