源程序:
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:工资类
* 作 者: 114-3 张宗佳
* 完成日期: 2012 年 3 月 17 日
* 版 本 号: vc.2
* 对任务及求解方法的描述部分
* 输入描述:输入职员的工资
* 问题描述:设计一个工资类(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 input_salary();
void add_salary();
void order_salary();
void show_salary();
private:
double salary[50];
int number;
};
int main()
{
Salary sal1;
cout << "请输入职工工资:" << endl;
sal1.input_salary();
sal1.add_salary();
sal1.order_salary();
cout << "增加工资且排序后的工资是:" << endl;
sal1.show_salary();
return 0;
}
void Salary::input_salary()
{
int i, num = 0;
for(i = 0; ; ++i)
{
cin >> salary[i];
++num;
if(salary[i] == -1)
{
break ;
}
}
number = num;
return ;
}
void Salary::add_salary()
{
for(int i = 0; i < number; ++i)
{
salary[i] = salary[i] + 100;
}
}
void Salary::order_salary()
{
int i, j, t;
for(i = 0; i < number; ++i)
{
for(j = 0; j < number - i - 1; ++j)
{
if(salary[j] < salary[j + 1])
{
t = salary[j];
salary[j] = salary[j + 1];
salary[j + 1] = t;
}
}
}
return ;
}
void Salary::show_salary()
{
for(int i = 0; i < number - 1; ++i)
{
cout << salary[i] << endl;
}
return ;
}
实验结果:
经验积累:
1.类中的数据成员可以是数组。
2.类中的数据成员是通过成员函数来访问的,属于私有函数
上机感言:
其实用到了很多上学期学到的知识,像冒泡法,在定义类内成员函数时就用到了,数组还是照样用的,只是在类内定义的数组,只能够通过成员函数来访问