已知某company有员工30人,分三类:WeekWorker每周580¥,MonthWorker月薪每月2500 ¥ ,YearWorker年薪每年22000 ¥ 。 已知有Employee类,有成员函数earning()用于计算Employee一年的收入。在conmpany类中有Employee[]存放公司员工,成员函数salariesPay()计算并打印公司的所有一年薪水之和。 请编写类Company,Employee,WeekWorker,MonthWorker,YearWorker,假定公司三类员工各自的数量用随机数来模拟,打印该公司一年的薪水支出。
时间: 2024-02-17 19:05:19 浏览: 100
好的,下面是代码实现:
```python
import random
class Employee:
def earning(self):
pass
class WeekWorker(Employee):
def earning(self):
return 580 * 52
class MonthWorker(Employee):
def earning(self):
return 2500 * 12
class YearWorker(Employee):
def earning(self):
return 22000
class Company:
def __init__(self):
self.employees = []
for i in range(10):
self.employees.append(WeekWorker())
for i in range(10):
self.employees.append(MonthWorker())
for i in range(10):
self.employees.append(YearWorker())
def salariesPay(self):
total = 0
for employee in self.employees:
total += employee.earning()
print("公司一年的薪水支出为:", total)
company = Company()
company.salariesPay()
```
在这个实现中,我们定义了三个不同的员工类型:WeekWorker、MonthWorker和YearWorker,每个类型都继承了Employee类并实现了earning函数。在Company类中,我们使用随机数来模拟公司三种类型员工的数量,然后将所有员工添加到employees列表中。最后,我们实现了salariesPay函数,用于计算并打印公司的所有一年薪水之和。
注意,本题需要注意python版本问题,如果是Python2,需将print语句改为print语句。
阅读全文