- /*
- *Copyright(c)2016,烟台大学计算机与控制工程学院
- *All rights reserved
- *文件名称:123.cpp
- *作 者:隋宗涛
- *完成日期:2016年5月9日
- *版 本 号:v1.0
- *
- *问题描述:现给出包含了不足500个职工工资的文件,增加一个成员函数,用于从文件中读出数据,再增加一个成员函数,将排序后结果保存到一个文件中。编写main函数,测试你扩充的功能。
- *输入描述:
- *程序输出:
- */
- #include <iostream>
- #include <fstream>
- #include <cstdlib>
- using namespace std;
- const int N=500;
- class Salary
- {
- public:
- void read_data( );
- void write_data();
- void add_salarys(int x);
- void sort_salarys();
- void show_salarys( );
- private:
- double salarys[N];
- int number;
- };
- void Salary::read_data( )
- {
- int s;
- ifstream infile("salary.txt",ios::in);
- if(!infile)
- {
- cerr<<"open error!"<<endl;
- exit(1);
- }
- s=0;
- while(infile>>salarys[s])
- {
- s++;
- }
- number=s;
- infile.close();
- }
- void Salary::write_data( )
- {
- int s;
- ofstream outfile("salary_ordered.txt",ios::out);
- if(!outfile)
- {
- cerr<<"open error!"<<endl;
- exit(1);
- }
- for(s=0;s<number;s++)
- {
- outfile<<salarys[s]<<endl;
- }
- outfile.close();
- }
- void Salary::add_salarys(int m)
- {
- int s;
- for (s=0;s<number;s++)
- salarys[s]+=m;
- }
- void Salary::sort_salarys()
- {
- int s,j;
- double t;
- for (s=0;s<number-1;s++)
- for(j=0; j<number-s-1; j++)
- if (salarys[j]<salarys[j+1])
- {
- t=salarys[j];
- salarys[j]=salarys[j+1];
- salarys[j+1]=t;
- }
- }
- void Salary::show_salarys( )
- {
- int s;
- for (s=0; s<number; s++)
- cout<<salarys[s]<<"\t";
- }
- int main( )
- {
- Salary s;
- s.read_data( );
- s.add_salarys(500);
- s.sort_salarys();
- s.write_data( );
- s.show_salarys( );
- return 0;
- }