您的位置:首页 > 其它

数组做数组成员 2

2016-05-10 16:12 260 查看

/* 
 *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
;   
    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;  
}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: