第3周项目5-读入文件,保存数据

来源:互联网 发布:安畅网络阿里云 编辑:程序博客网 时间:2024/05/01 20:29
/*   * Copyright (c) 2015, 烟台大学计算机学院   * All rights reserved.   * 文件名称:test.cpp   * 作    者:姜甜甜   * 完成日期:2015年 3 月 21日   * 版 本 号:v1.0   *   * 问题描述: 手工输入工资?!太让人不能忍受了。现给出包含了不足500个职工工资的文件salary.txt(下载),从文件中读数据,完成上面的工作 *            增加一个成员函数,将排序后结果保存到一个文件中。  */                                                                                                       <pre class="cpp" name="code">#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 i;    ifstream infile("salary.txt",ios::in);   //以输入的方式打开文件    if(!infile)                 //测试是否成功打开    {        cerr<<"open error!"<<endl;        exit(1);    }    i=0;    while(infile>>salarys[i])        i++;    number=i;    infile.close();}void Salary::write_data( ){    int i;    ofstream outfile("salary_ordered.txt",ios::out);   //以输入的方式打开文件    if(!outfile)                 //测试是否成功打开    {        cerr<<"open error!"<<endl;        exit(1);    }    for(i=0; i<number; ++i)    {        outfile<<salarys[i]<<endl;    }    outfile.close();}void Salary::add_salarys(int x){    int i;    for (i=0; i<number; i++)        salarys[i]+=x;}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";}int main( ){    Salary s;    cout<<"读入文件中"<<endl;    s.read_data( );    s.add_salarys(500);    s.sort_salarys();    s.write_data( );    cout<<"工资情况如下:"<<endl;    s.show_salarys( );    return 0;}

笔会:从文件中读入数据,在运行过程中,生成文件来保存数据。

0 0