编写一个能计算公司一年支出的程序。 已知某company有员工30人,分三类:WeekWorker每周580¥,MonthWorker月薪每月2500 ¥ ,YearWorker年薪每年22000 ¥ 。 已知有Employee类,有成员函数earning()用于计算Employee一年的收入。在conmpany类中有Employee[]存放公司员工,成员函数salariesPay()计算并打印公司的所有一年薪水之和。 请编写类Company,Employee,WeekWorker,MonthWorker,YearWorker,假定公司三类员工各自的数量用随机数来模拟,打印该公司一年的薪水支出。 #include<iostream> #include<stdlib.h> #include<string> using namespace std; //请在此处完成YearWork,MonthWorker,WeekWoker及Company类的编码 /***********begin***********/ /************end**********/ int main() { Company co; for(int i=0;i<30;i++) { int r=rand()%3+1; switch (r) { case 1: co.emp[i]=WeekWorker(580); break; case 2: co.emp[i]=MonthWorker(2500); break; case 3: co.emp[i]=YearWorker(22000); break; default: break; } } cout<<"company total pay="<<co.salarypay(); return 0; }
时间: 2023-07-01 07:22:34 浏览: 166
好的,以下是关于YearWorker、MonthWorker、WeekWorker和Company类的代码实现。
```cpp
#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
class Employee {
public:
virtual int earning() = 0;
};
class WeekWorker : public Employee {
int salary;
public:
WeekWorker(int s) {
salary = s;
}
int earning() {
return salary * 52;
}
};
class MonthWorker : public Employee {
int salary;
public:
MonthWorker(int s) {
salary = s;
}
int earning() {
return salary * 12;
}
};
class YearWorker : public Employee {
int salary;
public:
YearWorker(int s) {
salary = s;
}
int earning() {
return salary;
}
};
class Company {
public:
Employee* emp[30];
Company() {
for (int i = 0; i < 30; i++) {
int r = rand() % 3 + 1;
switch (r) {
case 1:
emp[i] = new WeekWorker(580);
break;
case 2:
emp[i] = new MonthWorker(2500);
break;
case 3:
emp[i] = new YearWorker(22000);
break;
default:
break;
}
}
}
int salarypay() {
int total = 0;
for (int i = 0; i < 30; i++) {
total += emp[i]->earning();
}
return total;
}
};
int main() {
Company co;
cout << "company total pay=" << co.salarypay() << endl;
return 0;
}
```
在上述代码中,我们首先定义了一个Employee类,它是一个抽象类,其中有一个earning()函数,用于计算Employee一年的收入。然后,我们又定义了WeekWorker、MonthWorker和YearWorker三个类,分别表示周薪、月薪和年薪的员工。这些类都继承自Employee类,并且都实现了earning()函数,用于计算自己的一年收入。
接着,我们定义了一个Company类,其中有一个名为emp的成员变量,是一个Employee指针数组,用于存放公司的所有员工。在Company类的构造函数中,我们使用随机数生成器模拟了公司三类员工各自的数量,将它们添加到emp变量中。
最后,我们在Company类中定义了一个名为salarypay()的成员函数,用于计算公司的所有一年薪水之和。在这个函数中,我们遍历了emp变量中的所有员工,调用他们的earning()函数,将所有员工的一年收入加起来,然后返回总和。
最后,在主函数中,我们创建了一个Company对象,并调用了它的salarypay()函数来计算公司的一年薪水支出,并打印出来。
阅读全文