- /*
- *Copyright(c)2016,烟台大学计算机与控制工程学院
- *All rights reserved
- *文件名称:123.cpp
- *作 者:隋宗涛
- *完成日期:2016年5月9日
- *版 本 号:v1.0
- *
- *问题描述:实现Salary类中的成员函数,在main函数定义Salary类的对象,用多文件的方式组织最后的程序。
- *输入描述:无
- *程序输出:无
- */
- 1.类声明
- #ifndef 456_H_INCLUDED
- #define 456_H_INCLUDED
- using namespace std;
- const int N=500;
- class Salary
- {
- public:
- void read_data( ); //读取文件
- void write_data(); //保存文件
- void add_salarys(int x); <span style="font-family: Arial, Helvetica, sans-serif;">//涨工资x元</span>
- void sort_salarys(); //对工资由大到小排序
- void show_salarys( ); //显示工资信息
- private:
- double salarys[N]; //工资, 用指针更好
- int number; //人数
- };
- #endif // 456_H_INCLUDED
- 2.salary.cpp
- #include <iostream>
- #include"456.h"
- using namespace std;
- 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) //涨工资m元
- {
- int s;
- for (s=0;s<number;s++)
- salarys[s]+=m;
- }
- void Salary::sort_salarys() //对工资由大到小排序
- {
- int i,j;
- double t;
- for (i=0; i<number-1; i++)
- for(j=0; j<number-i-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 i;
- for (i=0; i<number; i++)
- cout<<salarys[i]<<"\t";
- }
- 3.main()函数
- #include <iostream>
- #include"456.h"
- using namespace std;
- int main( )
- {
- Salary s;
- s.read_data( );
- s.add_salarys(500);
- s.sort_salarys();
- s.write_data( );
- s.show_salarys( );
- return 0;
- }