本关任务:编写一个能计算公司一年支出的程序。 已知某company有员工30人,分三类:WeekWorker每周580¥,MonthWorker月薪每月2500 ¥ ,YearWorker年薪每年22000 ¥ 。 已知有Employee类,有成员函数earning()用于计算Employee一年的收入。在conmpany类中有Employee[]存放公司员工,成员函数salariesPay()计算并打印公司的所有一年薪水之和。 请编写类Company,Employee,WeekWorker,MonthWorker,YearWorker,假定公司三类员工各自的数量用随机数来模拟,打印该公司一年的薪水支出。 编程要求
时间: 2024-02-22 18:57:26 浏览: 50
以下是对应的代码实现,主要是类的定义和成员函数的实现:
```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.employee_list = []
self.week_num = 0
self.month_num = 0
self.year_num = 0
self.total_pay = 0
# 随机生成员工并添加到员工列表中
def generate_employee(self):
for i in range(30):
r = random.randint(1, 3)
if r == 1:
self.employee_list.append(WeekWorker())
self.week_num += 1
elif r == 2:
self.employee_list.append(MonthWorker())
self.month_num += 1
else:
self.employee_list.append(YearWorker())
self.year_num += 1
# 计算所有员工的一年薪水之和
def salariesPay(self):
for employee in self.employee_list:
self.total_pay += employee.earning()
print("公司一年的薪水支出为:", self.total_pay)
# 测试
if __name__ == '__main__':
company = Company()
company.generate_employee()
print("公司员工数量:周工人员{}人,月工人员{}人,年工人员{}人".format(company.week_num, company.month_num, company.year_num))
company.salariesPay()
```
运行代码后,会输出公司员工数量以及一年的薪水支出。
阅读全文