第八周项目一-数组作数据成员(2)

来源:互联网 发布:辛德勒的名单影评知乎 编辑:程序博客网 时间:2024/05/16 13:01


/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作    者:王蕊 *完成日期:2016年4月19日 *版 本 号: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[N];     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;}

学习心得:学会从文件中读取数据。

0 0
原创粉丝点击