第三周项目5数组作数据成员

来源:互联网 发布:led视频制作软件 编辑:程序博客网 时间:2024/06/13 11:43
*   * Copyright (c) 2015, 烟台大学计算机学院   * All rights reserved.   * 文件名称:test.cpp   * 作    者:梁璨    * 完成日期:2015年 3 月 29 日   * 版 本 号:v1.0   *  * 问题描述: 阅读教材P255例8.4,注意到类中的数据成员可以是数组。设计一个工资类(Salary),其中类的数据成员如下:     class Salary     {     private:         double salarys[50]; //多人的工资         int number;  //实际人数     };     要设计的成员函数有:     void set_salarys( ):输入职工工资(输入-1标志着工资输入结束),工资保存到salary数组中,实际人数保存到number中;     void add_salarys(int x):给每个人涨x元工资     void sort_salarys():对工资排序     void show_salarys( ):显示工资信息(5)用多文件的方式组织最后的程序。 * 输入描述:NULL; * 程序输出:按要求输出。


#include <iostream>#include <fstream>#include <cstdlib>using namespace std;class Salary{private:    double salary[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);   //以输入的方式打开文件    if(!infile)                 //测试是否成功打开    {        cerr<<"open error!"<<endl;        exit(1);    }    i=0;    while(infile>>salary[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<<salary[i]<<endl;    }    outfile.close();}void Salary::add_salarys(int x){    int i;    for(i=0;i<number;i++)    {        salary[i]+=x;    }}void Salary::sort_salarys(){    int i,j;    double t;    for(i=0;i<number;i++)    {        for(j=0;j<number-i-1;j++)        {            if(salary[j]<salary[j+1])            {                t=salary[j];                salary[j]=salary[j+1];                salary[j+1]=t;            }        }    }}void Salary::show_salarys(){    int i;    for(i=0;i<number;i++)    {        cout<<salary[i]<<'\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
原创粉丝点击