第八周项目1—数组做数据成员(工资类 数组 文件)

来源:互联网 发布:淘宝已购买的宝贝 编辑:程序博客网 时间:2024/05/15 12:42
/**Copyright(c) 2016.烟台大学计算机与控制工程学院*ALL rights  reserved.*文件名称:test.cpp*作者:杨驰*完成日期:2016年4月19日*问题描述:手工输入工资?!太让人不能忍受了。现给出包含了不足500个职工工资的          文件salary.txt(下载),增加一个成员函数,用于从文件中读出数据,再          增加一个成员函数,将排序后结果保存到一个文件中。编写main函数,测试          你扩充的功能。 */#include <iostream>#include<fstream>#include<cstdlib>using namespace std;class Salary{public:    void read_data();//读取文件    void write_data();//保存文件    void set_salarys();//输入职工工资(输入-1标志着工资输入结束),工资保存到salary数组中,实际人数保存到number中;    void add_salarys(int x); //给每个人涨x元工资    void sort_salarys(); //对工资由大到小排序    void show_salarys(); //显示工资信息private:    double salarys[50]; //多人的工资    int number;  //实际人数};void Salary::read_data()//读取文件{    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::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<<salarys[i]<<endl;    outfile.close();}void Salary::set_salarys(){    cout<<"请输入员工的工资:"<<endl;    int i=0;    double sal;    cin>>sal;    while(sal!=-1)    {        salarys[i]=sal;//工资保存到数组数据成员中        i++;        cin>>sal;    }    number=i;//number是数据成员,记录下职工人数}void Salary::add_salarys(int x) //给每个人涨x元工资{    int i;    for(i=0;i<number;i++)       salarys[i]+=x;}void Salary::sort_salarys()//对工资由大到小排序{    int i,j;    double temp;    for(i=0;i<number;i++)        for(j=0;j<number-1-i;j++)           if(salarys[j]<salarys[j+1])           {               temp=salarys[j];               salarys[j]=salarys[j+1];               salarys[j+1]=temp;           }}void Salary::show_salarys() //显示工资信息{    int i;    for(i=0;i<number;i++)        cout<<salarys[i]<<" ";}int main(){    Salary sala;    sala.read_data();    sala.set_salarys();    sala.add_salarys(500);    sala.sort_salarys();    sala.show_salarys();    sala.write_data();    return 0;}

0 0
原创粉丝点击