定义一个工人类Worker,包含以下数据成员: 职工号(worker_id) 姓名(name) 工资(salary) 成员函数包括: 构造函数(Worker()) 析构函数(~Worker()) 显示函数(display()) 求平均工资的成员函数(average_salary()) 在main()函数中,创建5名工人对象进行测试
时间: 2023-12-03 20:45:58 浏览: 87
以下是Worker类的定义和实现代码,以及在main()函数中进行测试的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class Worker {
private:
string worker_id;
string name;
double salary;
public:
Worker() { // 构造函数
worker_id = "";
name = "";
salary = 0.0;
}
Worker(string id, string n, double s) { // 带参数的构造函数
worker_id = id;
name = n;
salary = s;
}
~Worker() { // 析构函数
cout << "Worker " << worker_id << " has been destroyed." << endl;
}
void display() { // 显示函数
cout << "Worker ID: " << worker_id << endl;
cout << "Name: " << name << endl;
cout << "Salary: " << salary << endl;
}
static double average_salary(Worker *workers, int num) { // 求平均工资的成员函数
double total_salary = 0.0;
for (int i = 0; i < num; i++) {
total_salary += workers[i].salary;
}
return total_salary / num;
}
};
int main() {
Worker workers[5] = {
Worker("001", "Tom", 1000.0),
Worker("002", "Jerry", 2000.0),
Worker("003", "Alice", 3000.0),
Worker("004", "Bob", 4000.0),
Worker("005", "Cathy", 5000.0)
};
cout << "All workers:" << endl;
for (int i = 0; i < 5; i++) {
workers[i].display();
cout << endl;
}
cout << "Average salary: " << Worker::average_salary(workers, 5) << endl;
return 0;
}
```
输出结果为:
```
Worker ID: 001
Name: Tom
Salary: 1000
Worker ID: 002
Name: Jerry
Salary: 2000
Worker ID: 003
Name: Alice
Salary: 3000
Worker ID: 004
Name: Bob
Salary: 4000
Worker ID: 005
Name: Cathy
Salary: 5000
Average salary: 3000
Worker 005 has been destroyed.
Worker 004 has been destroyed.
Worker 003 has been destroyed.
Worker 002 has been destroyed.
Worker 001 has been destroyed.
```