码迷,mamicode.com
首页 > 编程语言 > 详细

初识python: 类练习 - 老板&员工

时间:2019-08-31 00:53:14      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:cli   工作量   class   资产   完成   依次   env   bsp   查看   

需求:

  1、员工具有姓名、年龄、能力值(能力值为100-年龄),可以工作,每工作一次,该员工的能力值-5,创建__str__方法,打印该员工的信息;
  2、老板具有投资金额,工作量,员工列表。可以雇佣员工,雇佣后将员工添加至列表中,雇佣一人投资金额减5000,金额不足时不能雇佣新员工;
  3、员工工作时,依次取出员工列表中的员工开始工作,员工能力值减少的同时总的工作量也减少,当工作量为0时,工作结束;
  4、如果所有员工使用完后,依然没有完成工作,则提示老板需要雇佣新员工,并打印剩余工作量;
  5、结束工作,打印员工的能力值信息。

具体代码如下:

技术图片
#!/user/bin env python
# author:Simple-Sir
# time:2019/8/30 14:12
# 类的练习:老板与员工

class Boss():
    ‘‘‘
    老板类
    money : 老板的金额
    workload : 工作量
    emplist : 员工列表
    ‘‘‘
    def __init__(self,money,workload):
        super(Boss,self)
        self.money = money
        self.workload = workload
        self.emplist = []

    def staff(self,emp_obj):
        ‘‘‘
        雇佣员工
        :param emp_obj: 员工对象
        ‘‘‘
        if self.money >= 5000:
            self.emplist.append(emp_obj)
            self.money -= 5000
            print(员工信息已添加!\n您一共有%s个员工%len(self.emplist))
        else:
            print(您的金额已不足,无法再招聘员工!)

    def startWork(self):
        print(emmmm...您还没有员工,请先招聘员工。)
        is_staff = ‘‘
        while is_staff != N:
            name = input(员工姓名:).strip()
            age = int(input(年龄:).strip())
            while age<18 or age>=65:
                if age <= 3 or age >= 70:
                    print(嘿,朋友!走点心!尊老爱幼是中华名族的传统美德!)
                elif age >= 4 and age < 18:
                    print(你确定要雇佣童工吗?)
                elif age >= 65:
                    print(朋友,这已经是退休年龄了!)
                age = int(input(年龄:).strip())
            e = Employees(name, age)
            print(e)  # 查看员工信息
            self.staff(e)
            if self.money >= 5000:
                is_staff = input(您是否还要继续招聘员工?).strip().upper()
            else:
                print(您的资产已不足已再招聘一个员工了!将开始工作!)
                break
        print(------ 所有员工信息 ------)
        for info in self.emplist:
            print(姓  名:%s\n年  龄:%s\n能力值:%s\n - - - - - - - - - - - - - - - - % (info.name, info.age, info.ability))
        for e in self.emplist:
            while e.ability >= 0:
                e.work()
                self.workload -= 5
                if self.workload <= 0:
                    print(工作已完成)
                    return
        if self.workload > 0:
            print(还有%s个工作量没做完,需要招聘新的员工! % self.workload)

    def endWork(self):
        结束工作
        if len(self.emplist) > 0:
            print(----- 员工能力值 -----)
            for e in self.emplist:
                e.ability = 0 if e.ability < 0 else e.ability
                print(%s的能力值:%s%(e.name,e.ability))

class Employees(object):
    员工
    def __init__(self,name,age):
        self.name = name
        self.age = age
        self.ability = 100 - age

    def __str__(self):
        员工信息
        return ‘‘‘
--- 员工信息 ---
    姓名:%s
    年龄:%s
    能力值:%s  
        ‘‘‘%(self.name,self.age,self.ability)

    def work(self):
        工作
        print(%s正在工作....%self.name)
        self.ability -= 5


def main():
    money = int(input(老板,您打算投资多少钱啊?\n).strip())
    while money < 5000:
            print(这么点钱还想当老板?再考虑考虑?)
            money = int(input(老板,您到底打算投资多少钱啊?\n).strip())
    workload = int(input(老板,您有多少工作要做呢?\n).strip())
    while workload <= 0:
            print(您是大善人么?不用工作,还能拿工资!)
            workload = int(input(好好想想,您到底有多少工作要做呢?\n).strip())
    b = Boss(money,workload)
    b.startWork()
    b.endWork()

if __name__ == __main__:
    main()
老板与员工

执行结果部分截图如下:

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

初识python: 类练习 - 老板&员工

标签:cli   工作量   class   资产   完成   依次   env   bsp   查看   

原文地址:https://www.cnblogs.com/simple-li/p/11437530.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!