2.编写程序,实现以下功能。 (1)创建员工类Employee,属性有姓名name、能力值ability、年龄age(能力值为100-年龄),功能有doWork(),该方法执行一次,该员工的能力值-5,创建str方法,打印该员工的信息 (2)创建老板类Boss,属性有金钱money,员工列表employeeList(存储员工类对象),工作量work,功能有雇佣员工addEmployee(),雇佣后将员工添加至列表中,雇佣一人money减5000,金额不足时不能雇佣新员工;开始工作startWork(),工作开始后,依次取出员工列表中的员工开始工作,员工能力值减少的同时总的工作量work也减少,当工作量work为0时,工作结束,调用endWork(该方法为Boss类方法,打印员工的能力值信息)方法,如果所有员工使用完后,依然没有完成工作,则提示老板需要雇佣新员工,并打印剩余工作量 (3)创建Boss类对象,默认执行雇佣3个员工,年龄分别为30,40,50,然后死循环开始工作,直至工作完成。
时间: 2023-10-09 21:08:14 浏览: 125
编写程序实现以下功能:从键盘输入十个整数,用冒泡法排序后按从小到大输出
以下是Python编写的程序,实现上述功能:
```python
class Employee:
def __init__(self, name, age):
self.name = name
self.age = age
self.ability = 100 - age
def doWork(self):
self.ability -= 5
def __str__(self):
return "Name: {}, Age: {}, Ability: {}".format(self.name, self.age, self.ability)
class Boss:
def __init__(self):
self.money = 15000
self.employeeList = []
self.work = 30
self.addEmployee(30)
self.addEmployee(40)
self.addEmployee(50)
def addEmployee(self, age):
if self.money >= 5000:
self.money -= 5000
self.employeeList.append(Employee("Employee", age))
print("Successfully hired a new employee!")
else:
print("Not enough money to hire a new employee!")
def startWork(self):
for employee in self.employeeList:
employee.doWork()
self.work -= 1
if self.work == 0:
break
if self.work > 0 and not self.employeeList:
print("Need to hire new employees! Work left: {}".format(self.work))
def endWork(self):
for employee in self.employeeList:
print(employee)
def run(self):
while self.work > 0:
self.startWork()
self.endWork()
boss = Boss()
boss.run()
```
这个程序创建了一个Employee类和一个Boss类。Employee类表示员工,具有姓名、年龄和能力值等属性,以及执行工作和打印信息的方法。Boss类表示老板,具有金钱、员工列表和工作量等属性,以及雇佣员工、开始工作和结束工作的方法。
在主程序中,创建了一个默认的Boss对象,并死循环开始工作,直至工作完成。在开始工作的过程中,依次取出员工列表中的员工开始工作,员工能力值减少的同时总的工作量work也减少,当工作量work为0时,工作结束,调用endWork方法,打印所有员工的信息。如果所有员工使用完后,依然没有完成工作,则提示老板需要雇佣新员工,并打印剩余工作量。
阅读全文