阅读教材P255例8.4,注意到类中的数据成员可以是数组。设计一个工资类(Salary),其中的数据成员有:double型数组salary[50](实际人数可以少于50,固定取50可能造成空间浪费),整型值number表示的职工人数。在main函数中调用你自己设计好的成员函数完成下面的功能:
(1)输入职工工资,工资保存到salary数组中,实际人数保存到number中(输入-1标志着工资输入结束);
(2)给每个人涨100元工资;
(3)对涨后的工资进行排序;
(4)输出排序后的工资。
源程序:
#include <iostream>
using namespace std;
class Salary
{
public:
void GetSalary();
void AddSalary();
void OrderSalary();
void ShowSalary();
private:
double salary[50];
int number;
};
int main()
{
Salary sal1;
sal1.GetSalary();
sal1.AddSalary();
sal1.OrderSalary();
sal1.ShowSalary();
cout <<endl;
return 0;
}
void Salary::GetSalary()
{
int i = 0;
number = 0;
cout << "请输入员工的工资(输入-1标志着工资输入结束):" <<endl;
for(i= 0; i <= 50; i++)
{
cin >> salary[i];
while(salary[i] == -1)
{
number = i;
return;
}
}
}
void Salary::AddSalary()
{
for(int i = 0; i <= number; ++i)
{
salary[i] = salary[i] + 100;
}
}
void Salary::OrderSalary()
{
double temp;
for(int i = 0; i < number - 1; ++i)
{
for(int j = 0; j < number - i - 1; ++j)
{
if(salary[j] < salary[j + 1])
{
temp = salary[j];
salary[j] = salary[j + 1];
salary[j + 1] = temp;
}
}
}
}
void Salary::ShowSalary()
{
for(int i = 0; i < number; ++i)
{
cout << salary[i] << ' ';
}
}
运行结果: