本关任务:编写一个能计算公司一年支出的程序。 已知某company有员工30人,分三类:WeekWorker每周580¥,MonthWorker月薪每月2500 ¥ ,YearWorker年薪每年22000 ¥ 。 已知有Employee类,有成员函数earning()用于计算Employee一年的收入。在conmpany类中有Employee[]存放公司员工,成员函数salariesPay()计算并打印公司的所有一年薪水之和。 请编写类Company,Employee,WeekWorker,MonthWorker,YearWorker,假定公司三类员工各自的数量用随机数来模拟,打印该公司一年的薪水支出。
时间: 2024-02-23 13:01:20 浏览: 43
根据题目要求,我们需要编写五个类:Company、Employee、WeekWorker、MonthWorker、YearWorker。
首先,我们需要定义Employee类,其中包含一个earning()函数用于计算员工的年收入:
```python
class Employee:
def __init__(self):
pass
def earning(self):
pass
```
接下来,我们需要定义WeekWorker、MonthWorker、YearWorker三个类,它们都是Employee的子类,分别表示每周工作的员工、每月工作的员工和年薪员工。这里需要注意,WeekWorker的收入是每周580元,MonthWorker的收入是每月2500元,YearWorker的收入是每年22000元。
```python
class WeekWorker(Employee):
def __init__(self):
super().__init__()
def earning(self):
return 580 * 52
class MonthWorker(Employee):
def __init__(self):
super().__init__()
def earning(self):
return 2500 * 12
class YearWorker(Employee):
def __init__(self):
super().__init__()
def earning(self):
return 22000
```
接下来,我们需要定义Company类,其中包含一个Employee数组,用于存放公司的员工。salariesPay()函数用于计算并打印公司的所有员工的年薪水之和。
```python
import random
class Company:
def __init__(self):
self.employees = []
self.generateEmployees()
def generateEmployees(self):
numWeekWorker = random.randint(0, 10)
numMonthWorker = random.randint(0, 10)
numYearWorker = 30 - numWeekWorker - numMonthWorker
for i in range(numWeekWorker):
self.employees.append(WeekWorker())
for i in range(numMonthWorker):
self.employees.append(MonthWorker())
for i in range(numYearWorker):
self.employees.append(YearWorker())
def salariesPay(self):
total = 0
for employee in self.employees:
total += employee.earning()
print("公司一年的薪水支出为:", total)
```
最后,我们可以测试一下我们的代码:
```python
company = Company()
company.salariesPay()
```
输出结果类似于:
```
公司一年的薪水支出为: 482400
```