问题及代码:
/*。
*Copyright(c)2014,烟台大学计算机学院
*All right reserved,
*文件名:test.cpp
*作者:liu_feng_zi_
*完成日期:2015年3月28日
*版本号:v1.0
*
问题描述:(3)手工输入工资?!太让人不能忍受了
。现给出包含了不足500个职工工资的文件salary.txt,
从文件中读数据,完成上面的工作
涨500元工资,排序后工资数据,然后输出结果
*输入描述:
*程序输出:
*/
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
class Salary
{
private:
double salarys[500]; //多人的工资
int number; //实际人数
public:
void set_salarys();
void add_salarys(int x);
void sort_salarys();
void show_salarys();
void read_data();
void write_data();
};
int main ()
{
Salary sal1;
sal1.read_data();
sal1.add_salarys(500);
sal1.sort_salarys();
sal1.show_salarys();
}
void Salary::read_data( )
{
int i;
ifstream infile("salary.txt",ios::in);
i=0;
while(infile>>salarys[i])
i++;
number=i;
infile.close();
}
void Salary::add_salarys(int x)
{
int i=0;
for(;i<number;i++)
salarys[i]+=x;
}
void Salary::sort_salarys()
{
int i,j;
double n;
for(i=0;i<number-1;i++)
for(j=0;j<number-i-1;j++)
{
if(salarys[j]<salarys[j+1])
{
n=salarys[j+1];
salarys[j+1]=salarys[j];
salarys[j]=n;
}
}
}
void Salary::show_salarys()
{
int i=0;
for(;i<number;i++)
cout<<salarys[i]<<'\t';
}
运行结果: