需求: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