数组作数据成员(拓展2)

来源:互联网 发布:java微信公众号开发pdf 编辑:程序博客网 时间:2024/06/07 03:59
/** 作    者: 霍雨佳* 完成日期:2014 年3月19日* 版 本 号:v1.0* 问题描述:数组做数据成员。* 样例输入:* 样例输出:* 问题分析:(1)输入职工工资,工资保存到salary数组中,实际人数保存到number[]中(输入-1标志着工资输入结束);            (2)给每个人涨500元工资(add_salarys是有参函数,在调用时,500当实参);          (3)对涨后的工资进行排序;          (4)输出排序后的工资。          (5)在main函数定义Salary类的对象,调用你自己设计好的成员函数,完成相关的工作。             (6)从文件中读取数据。*/#include <iostream>#include <fstream>#include <cstdlib>using namespace std;class Salary{public:    void set_salarys();     //(1)    void add_salarys(double x); //(2)    void sort_salarys();      //(3)    void show_salarys();     //(4)private:    double salarys[500]; //工资    int number;//实际人数};void Salary::set_salarys()     //(1){    int i;    ifstream infile("salary.txt",ios::in);//以输入的方式打开文件    if(!infile) //测试是否成功打开    {        cerr<<"open error!"<<endl;        exit(1);    }    i=0;    while(infile>>salarys[i])    {        i++;    }    number=i;    infile.close();}void Salary::add_salarys(double x)//(2){    for(int i=0; i<number; i++)    {        salarys[i]=salarys[i]+x;    }}void Salary::sort_salarys()      //(3)对涨后的工资进行排序;{    int i=0,j=0;    double t;    for(i=0; i<number-1; i++)    {        for(j=0; j<number-j-1; j++)        {            if (salarys[j]<salarys[j+1])            {                t=salarys[j];                salarys[j]=salarys[j+1];                salarys[j+1]=t;            }        }    }}void Salary::show_salarys( )    //(4){    cout<<"排序后的工资为:"<<endl;    for(int m=0; m<number; m++)    {        cout<<salarys[m]<<endl;    }}int main(){    Salary salary;    salary.set_salarys();    salary.add_salarys(500);    salary.sort_salarys();    salary.show_salarys();    return 0;}


运行结果:

文件的读入,写的还不够熟练,加油!

0 0
原创粉丝点击