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

问题及代码:

/*

*Copyright(c) 2016.烟台大学计算机与控制工程学院
*ALL rights  reserved.

*文件名称:main.cpp
*作者:郝昱猛
*完成日期:2016年4月27日
*问题描述:用多文件的方式组织最后的程序。 
*/  
文件1  main.cpp  
  
#include <iostream>  
#include<fstream>  
#include"salary.h"  
using namespace std;  
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;  
}    
文件2  salary.h  
 
#ifndef SALARY_H_INCLUDED  
#define SALARY_H_INCLUDED  
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;  //实际人数  
};    
#endif // SALARY_H_INCLUDED  
  
文件3  salary.cpp  
#include <iostream>  
#include<fstream>  
#include<cstdlib>  
#include"salary.h"  
using namespace std;   
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]<<" ";  
}  






你可能感兴趣的:(第八周项目1—数组做数据成员(多文件))