数组做数组成员 2


  1. /* 
  2.  *Copyright(c)2016,烟台大学计算机与控制工程学院 
  3.  *All rights reserved 
  4.  *文件名称:123.cpp 
  5.  *作    者:隋宗涛 
  6.  *完成日期:2016年5月9日 
  7.  *版 本 号:v1.0 
  8.  * 
  9.  *问题描述:现给出包含了不足500个职工工资的文件,增加一个成员函数,用于从文件中读出数据,再增加一个成员函数,将排序后结果保存到一个文件中。编写main函数,测试你扩充的功能。 
  10.  *输入描述: 
  11.  *程序输出: 
  12. */  
  13.   
  14. #include <iostream>  
  15. #include <fstream>  
  16. #include <cstdlib>  
  17. using namespace std;  
  18. const int N=500;  
  19. class Salary  
  20. {  
  21. public:  
  22.     void read_data( );  
  23.     void write_data();  
  24.     void add_salarys(int x);  
  25.     void sort_salarys();  
  26.     void show_salarys( );  
  27. private:  
  28.     double salarys[N];   
  29.     int number;          
  30. };  
  31.   
  32. void Salary::read_data( )  
  33. {  
  34.     int s;  
  35.     ifstream infile("salary.txt",ios::in);  
  36.     if(!infile)  
  37.     {  
  38.         cerr<<"open error!"<<endl;  
  39.         exit(1);  
  40.     }  
  41.     s=0;  
  42.     while(infile>>salarys[s])  
  43.     {  
  44.         s++;  
  45.     }  
  46.     number=s;  
  47.     infile.close();  
  48. }  
  49. void Salary::write_data( )  
  50. {  
  51.     int s;  
  52.     ofstream outfile("salary_ordered.txt",ios::out);  
  53.     if(!outfile)  
  54.     {  
  55.         cerr<<"open error!"<<endl;  
  56.         exit(1);  
  57.     }  
  58.     for(s=0;s<number;s++)  
  59.     {  
  60.         outfile<<salarys[s]<<endl;  
  61.     }  
  62.     outfile.close();  
  63. }  
  64. void Salary::add_salarys(int m)  
  65. {  
  66.     int s;  
  67.     for (s=0;s<number;s++)  
  68.         salarys[s]+=m;  
  69. }  
  70. void Salary::sort_salarys()  
  71. {  
  72.     int s,j;  
  73.     double t;  
  74.     for (s=0;s<number-1;s++)  
  75.         for(j=0; j<number-s-1; j++)  
  76.             if (salarys[j]<salarys[j+1])  
  77.             {  
  78.                 t=salarys[j];  
  79.                 salarys[j]=salarys[j+1];  
  80.                 salarys[j+1]=t;  
  81.             }  
  82. }  
  83. void Salary::show_salarys( )  
  84. {  
  85.     int s;  
  86.     for (s=0; s<number; s++)  
  87.         cout<<salarys[s]<<"\t";  
  88. }  
  89. int main( )  
  90. {  
  91.     Salary s;  
  92.     s.read_data( );  
  93.     s.add_salarys(500);  
  94.     s.sort_salarys();  
  95.     s.write_data( );  
  96.     s.show_salarys( );  
  97.     return 0;  
  98. }  

你可能感兴趣的:(数组做数组成员 2)