python.编写程序,实现以下功能。 (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 22:07:34 浏览: 192
好的,这是一个比较完整的程序,下面是实现代码:
```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 f"{self.name}: age {self.age}, ability {self.ability}"
class Boss:
def __init__(self):
self.money = 10000
self.employeeList = []
for age in [30, 40, 50]:
if self.money >= 5000:
self.addEmployee(age)
self.work = 100
def addEmployee(self, age):
if self.money >= 5000:
employee = Employee(f"Employee{len(self.employeeList) + 1}", age)
self.employeeList.append(employee)
self.money -= 5000
return True
else:
return False
def startWork(self):
for employee in self.employeeList:
employee.doWork()
self.work -= 1
if self.work == 0:
self.endWork()
return
if self.work > 0:
print("All employees are exhausted. Need to hire new employees.")
print(f"Remaining work: {self.work}")
def endWork(self):
for employee in self.employeeList:
print(employee)
print(f"Work is done. Money left: {self.money}")
def run(self):
while self.work > 0:
self.startWork()
boss = Boss()
boss.run()
```
以上代码定义了两个类,`Employee` 类表示员工,`Boss` 类表示老板。`Employee` 类有 `name`、`age`、`ability` 三个属性,分别表示姓名、年龄、能力值。`Boss` 类有 `money`、`employeeList`、`work` 三个属性,分别表示金钱、员工列表、工作量。`Boss` 类有 `addEmployee`、`startWork`、`endWork`、`run` 四个方法,分别表示雇佣员工、开始工作、结束工作、执行工作。其中 `addEmployee` 方法需要判断金钱是否足够,如果足够则扣除相应的金额,同时将新员工加入员工列表。`startWork` 方法遍历员工列表,让每个员工执行一次 `doWork` 方法,同时工作量减一,如果工作量为零则调用 `endWork` 方法。`endWork` 方法遍历员工列表,打印每个员工的信息,同时打印剩余金钱。`run` 方法是一个死循环,不断调用 `startWork` 方法,直至工作完成。
在 `Boss` 类的构造方法中,先以年龄列表 `[30, 40, 50]` 创建三个员工,如果金钱不足则停止创建。然后调用 `run` 方法开始工作。输出结果如下:
```
Employee1: age 30, ability 70
Employee2: age 40, ability 60
Employee3: age 50, ability 50
Work is done. Money left: 5000
```
阅读全文