数组做数组成员 3


  1. /* 
  2.  *Copyright(c)2016,烟台大学计算机与控制工程学院 
  3.  *All rights reserved 
  4.  *文件名称:123.cpp 
  5.  *作    者:隋宗涛
  6.  *完成日期:2016年5月9日 
  7.  *版 本 号:v1.0 
  8.  * 
  9.  *问题描述:实现Salary类中的成员函数,在main函数定义Salary类的对象,用多文件的方式组织最后的程序。 
  10.  *输入描述:无 
  11.  *程序输出:无 
  12. */  
  13.   
  14. 1.类声明  
  15.   
  16. #ifndef 456_H_INCLUDED  
  17. #define 456_H_INCLUDED  
  18. using namespace std;  
  19. const int N=500;  
  20. class Salary  
  21. {  
  22. public:  
  23.     void read_data( );  //读取文件  
  24.     void write_data();  //保存文件  
  25.     void add_salarys(int x);  <span style="font-family: Arial, Helvetica, sans-serif;">//涨工资x元</span>  
  26.     void sort_salarys(); //对工资由大到小排序    
  27.     void show_salarys( );  //显示工资信息  
  28. private:  
  29.     double salarys[N]; //工资, 用指针更好  
  30.     int number;        //人数  
  31. };  
  32. #endif // 456_H_INCLUDED  
  33.   
  34. 2.salary.cpp  
  35.   
  36. #include <iostream>    
  37. #include"456.h"    
  38. using namespace std;  
  39. void Salary::read_data( )  //读取文件  
  40. {  
  41.     int s;  
  42.     ifstream infile("salary.txt",ios::in);  //以输入的方式打开文件  
  43.     if(!infile)  //测试是否成功打开文件  
  44.     {  
  45.         cerr<<"open error!"<<endl;  
  46.         exit(1);  
  47.     }  
  48.     s=0;  
  49.     while(infile>>salarys[s])  
  50.     {  
  51.         s++;  
  52.     }  
  53.     number=s;  
  54.     infile.close();  
  55. }  
  56. void Salary::write_data( )  保存文件  
  57. {  
  58.     int s;  
  59.     ofstream outfile("salary_ordered.txt",ios::out);  //以输入的方式打开文件  
  60.     if(!outfile)  //测试是否成功打开文件  
  61.     {  
  62.         cerr<<"open error!"<<endl;  
  63.         exit(1);  
  64.     }  
  65.     for(s=0;s<number;++s)  
  66.     {  
  67.         outfile<<salarys[s]<<endl;  
  68.     }  
  69.     outfile.close();  
  70. }  
  71.   
  72. void Salary::add_salarys(int m)  //涨工资m元  
  73. {  
  74.     int s;  
  75.     for (s=0;s<number;s++)  
  76.         salarys[s]+=m;  
  77. }  
  78.   
  79. void Salary::sort_salarys()  //对工资由大到小排序  
  80. {  
  81.     int i,j;  
  82.     double t;  
  83.     for (i=0; i<number-1; i++)  
  84.         for(j=0; j<number-i-1; j++)  
  85.             if (salarys[j]<salarys[j+1])  
  86.             {  
  87.                 t=salarys[j];  
  88.                 salarys[j]=salarys[j+1];  
  89.                 salarys[j+1]=t;  
  90.             }  
  91. }  
  92.   
  93. void Salary::show_salarys( )  //显示工资信息  
  94. {  
  95.     int i;  
  96.     for (i=0; i<number; i++)  
  97.         cout<<salarys[i]<<"\t";  
  98. }  
  99. 3.main()函数  
  100.   
  101. #include <iostream>    
  102. #include"456.h"    
  103. using namespace std;  
  104. int main( )  
  105. {  
  106.     Salary s;  
  107.     s.read_data( );  
  108.     s.add_salarys(500);  
  109.     s.sort_salarys();  
  110.     s.write_data( );  
  111.     s.show_salarys( );  
  112.     return 0;  
  113. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值