/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 吴暇
* 完成日期: 2012 年 03 月 14 日
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述: 设计一个工资类(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 setsalary();//输入职工工资,工资保存到salary 数组中(输入‐1 标志着工资输入结束)
void getsalary(int x);//将实际人数保存到number中
void addsalary();//给每个人涨一百元工资
void comsalary();//对涨后的工资进行排序
void coutsalary();//输出排序后的工资
private:
double salary[50];
int number;
};
int main()
{
Salary s1;
s1.getsalary(5);//先对职工人员赋值
cout<<"请输入职工工资:";
s1.setsalary();
cout<<endl;
s1.addsalary();
s1.comsalary();
cout<<"工资增加并排好序后的工资为:";
s1.coutsalary();
cout<<endl;
return 0;
}
void Salary::setsalary()//输入职工工资,工资保存到salary 数组中(输入‐1 标志着工资输入结束)
{
int i;
for(i=0;i<number;i++)
{cin>>salary[i];}
}
void Salary::getsalary(int x)//将实际人数保存到number中
{
number=x;
}
void Salary::addsalary()//给每个人涨一百元工资
{
int i;
for(i=0;i<number;i++)
{
salary[i]=salary[i]+100;
}
}
void Salary::comsalary()//对涨后的工资进行排序
{
int i,j,t;
for(j=0;j<number-1;j++)
for(i=0;i<number-j-1;i++)
if(salary[i]>salary[i+1])
{
t=salary[i];
salary[i]=salary[i+1];
salary[i+1]=t;
}
}
void Salary::coutsalary()//输出排序后的工资
{
int i;
for(i=0;i<number;i++)
{cout<<salary[i]<<" ";}
}
运行结果:
上机感言:
调试程序时一个函数一个函数的调,编好一个函数后可通过输出检查此函数的对否。