初識python: 類練習 - 老闆&員工

需求:python

  一、員工具備姓名、年齡、能力值(能力值爲100-年齡),能夠工做,每工做一次,該員工的能力值-5,建立__str__方法,打印該員工的信息;
  二、老闆具備投資金額,工做量,員工列表。能夠僱傭員工,僱傭後將員工添加至列表中,僱傭一人投資金額減5000,金額不足時不能僱傭新員工;
  三、員工工做時,依次取出員工列表中的員工開始工做,員工能力值減小的同時總的工做量也減小,當工做量爲0時,工做結束;
  四、若是全部員工使用完後,依然沒有完成工做,則提示老闆須要僱傭新員工,並打印剩餘工做量;
  五、結束工做,打印員工的能力值信息。app

具體代碼以下:ide

#!/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()
老闆與員工

執行結果部分截圖以下:spa

 

 

 

 

 

 

 

 

相關文章
相關標籤/搜索