第三周项目5-4:数组作成员数据-数据保存

来源:互联网 发布:网络上口口是什么意思 编辑:程序博客网 时间:2024/05/21 00:47
问题及代码:
/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:test.cpp*作者:陈文青*完成日期:2015年3月28日*版 本 号:v1.0**问题描述:增加一个成员函数,将排序后结果保存到一个文件中。*程序输入:*程序输出:*/#include <iostream>#include <fstream>#include <cstdlib>using namespace std;class Salary{public:    void set_salarys();     //读取职工工资    void write_data();      //输出职工工资    void add_salarys(int x);//每人涨x元攻资    void sort_salarys();    //对工资排序    void show_salarys();    //显示工资信息private:    double salarys[500];    //用来动态数组    int number;             //实际人数};void Salary::set_salarys(){    ifstream infile("salary.txt",ios::in);    if(!infile)                 //测试是否成功打开,打开失败时退出    {        cerr<<"open error!"<<endl;        exit(1);    }    int i=0;    while(infile>>salarys[i])    {        i++;    }    number=i;    infile.close();//读入完毕关闭文件}void Salary::write_data( ){    ofstream outfile("salary_increase.txt",ios::out);    if(!outfile)                 //测试是否成功打开,打开失败时(如要读的数据文件不存在)退出    {        cerr<<"open error!"<<endl;        exit(1);    }    else    {        for(int i=0; i<number; i++)        {            outfile<<salarys[i]<<endl;        }        outfile.close();        cout<<"处理完毕,请打开文件查看结果!"<<endl;    }}//给每个人涨x元工资void Salary::add_salarys(int x){    for(int i=0; i<number; i++)        salarys[i]+=x;}//对工资排序void Salary::sort_salarys(){    double t;    for (int i=0; i<number-1; i++)        for(int 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(){    for(int i=0; i<number; i++)        cout<<"第"<<i<<"位员工的工资是:"<<salarys[i]<<endl;}int main(){    Salary s;    s.set_salarys();    int x;    cout<<"为职工增加工资:";    cin>>x;    s.add_salarys(x);    s.show_salarys();    cout<<"职工工资排序后:";    s.sort_salarys();    s.show_salarys();    s.write_data();    return 0;}

运行结果:

 

知识点总结:
数据读入与存储,这样才算是一个完整的程序


 

0 0