第三周 项目五-数组做数据成员(三)文件操作-数组

来源:互联网 发布:软件开发业务员 编辑:程序博客网 时间:2024/05/21 17:09


/*
 * Copyright (c) 2015, 烟台大学计算机学院
 * All rights reserved.
 * 文件名称:test.cpp
 * 作    者:冷基栋
 * 完成日期:2015年 3 月 21 日
 * 版 本 号:v1.0
*/

问题

(3)手工输入工资?!太让人不能忍受了。现给出包含了不足500个职工工资的文件salary.txt(下载),从文件中读数据,完成上面的工作。
(4)增加一个成员函数,将排序后结果保存到一个文件中。

代码

#include <iostream>#include <cstdlib>#include <fstream>using namespace std;const int N=500;class Salary{private:    double salarys[N];    int number;public:    void read_salarys();    void write_salarys();    void add_salarys(int);    void sort_salarys();    void show_salarys();};void Salary::read_salarys(){    int x=0,i=0;    ifstream infile("salary.txt",ios::in);    if(!infile)                 //测试是否成功打开    {        cerr<<"open error!"<<endl;        exit(1);    }    while (infile>>salarys[i])    {        i++;    }    number=i;    infile.close();}void Salary::write_salarys(){    int i;    ofstream outfile("sort.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 a){    for (int i=0; i<number; i++)    {        salarys[i]+=a;    }}void Salary::sort_salarys(){    int a;    for (int i=0; i<number-1; i++)        for (int j=0; j<number-1; j++)        {            if(salarys[j]>salarys[j+1])            {                a=salarys[i];                salarys[i]=salarys[i+1];                salarys[i+1]=a;            }        }}void Salary::show_salarys(){    for (int i=0; i<number; i++)        cout<<salarys[i]<<endl;}int main(){    Salary s;    s.read_salarys();    s.add_salarys(666);    s.sort_salarys();    s.write_salarys();    s.show_salarys();}

运行结果:

知识点总结:

记事本默认的拓展名不用写。

学习心得:

好好学习 天天向上

0 0
原创粉丝点击