文件中读数据完成工资输入

/*
* 程序的版权和版本声明部分
* Copyright (c)2014, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称:a.cpp
* 作    者:孔云
* 完成日期:2014年3月30日
* 版 本 号: v1.0
* 输入描述:从文件中读入职工工资。
* 问题描述:工资定义为数组,实际人数保存到number中,给每个人涨500元工资,对涨后的工资进行排序。
* 输出描述:排序后的工资。
*/
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <fstream>//处理文件要包括头文件fstream
using namespace std;
const int n=1000;
class Salary
{
public:
    void set_salarys();
    void add_salarys(int x);
    void sort_salarys();
    void show_salarys();
private:
    double salarys[n]; //工资,定义为数组
    int number;			//实际人数
};
int main()
{
    Salary sa;
    sa.set_salarys();
    sa.add_salarys(500);
    sa.sort_salarys();
    sa.show_salarys();
    return 0;
}
void Salary::set_salarys()
{
    int i=0;
    ifstream infile("salary.txt",ios::in);   //以输入的方式打开文件
    if(!infile)                 //测试是否成功打开
    {
        cerr<<"open error!"<<endl;
        exit(1);
    }
    while(infile>>salarys[i])
        i++;
    number=i;
    infile.close();
}
void Salary::add_salarys(int x)
{
    int i;
    for(i=0; i<number; i++)
    {
        salarys[i]+=x;
    }
}
void Salary::sort_salarys()
{
    int i,j;
    double t;
    for(i=0; i<number-1; i++)
    {
        for(j=i+1; j<number; j++)
        {
            if(salarys[i]<salarys[j])
            {
                t=salarys[j];
                salarys[j]=salarys[i];
                salarys[i]=t;
            }
        }
    }
}
void Salary::show_salarys()
{
    int i;
    for(i=0; i<number; i++)
    {
        cout<<salarys[i]<<setw(6)<<setiosflags(ios::left)<<endl;
    }
}

文件中读数据完成工资输入_第1张图片

心得体会:这个程序的代码与前面的程序代码有相似之处,但可值得体验的是能从文件中读取数据奋斗

你可能感兴趣的:(文件中读数据完成工资输入)