第2周-项目5-数组作数据成员-工资类(文件读取)

来源:互联网 发布:随意画线软件 编辑:程序博客网 时间:2024/04/29 21:42
问题及代码:
/*   *Copyright (c)2015,烟台大学计算机与控制工程学院   *All rights reserved.   *文件名称:score.cpp   *作    者:单昕昕   *完成日期:2015年3月20日   *版 本 号:v1.0   *   *问题描述:手工输入工资?!太让人不能忍受了。现给出包含了不足500个职工工资的文件salary.txt(点击打开链接),从文件中读数据,完成上面的工作。增加一个成员函数,将排序后结果保存到一个文件中。*程序输入:无。*程序输出:降序排序后工资数据。  */ #include <fstream>   //操作文件必写#include<iostream>#include<cstdlib>using namespace std;class Salary{private:    double salarys[500];    int number;public:    void read_data( );    void write_data();    void add_salarys(int x);    void sort_salarys();    void show_salarys( );};void Salary::read_data( ){    int i;    ifstream infile("salary.txt",ios::in); //以输入的方式(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_increase.txt",ios::out); //以输入的方式(ios::in)打开文件    if(!outfile)                 //测试是否成功打开,打开失败时(如要读的数据文件不存在)退出    {        cerr<<"open error!"<<endl;        exit(1);    }    for(i=0; i<number; i++)    {        outfile<<salarys[i]<<endl;    }    outfile.close();    cout<<"处理完毕,请打开文件查看结果!"<<endl;}void Salary::add_salarys(int x){    for (int 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 salary;    int x;    salary.read_data( );    cout<<"请输入涨的工资数:";    cin>>x;    salary.add_salarys(x);    salary.sort_salarys();    salary.write_data( );    salary.show_salarys( );    return 0;}



运行结果:






知识点总结:
文件读取。

学习心得:

又复习了一遍文件读取写入的程序设计,其实每次写这个知识点的时候都是去找之前第13周刚学的时候老师给的模板然后复制过来根据题意再次进行修改的。

0 0
原创粉丝点击