第三周 项目5-数组做数据成员(3)

来源:互联网 发布:上淘宝显示证书错误 编辑:程序博客网 时间:2024/05/18 02:41
/*  * Copyright (c) 2014, 烟台大学计算机学院  * All rights reserved.  * 文件名称:test.cpp  * 作    者:呼亚萍  * 完成日期:2015年 3月 26日  * 版 本 号:v1.0  *  * 问题描述:手工输入工资?!太让人不能忍受了。现给出包含了不足500个职工工资的文件salary.txt,从文件中读数据,完成上面的工作。 * 程序输入:相应的程序 * 程序输出:每个人涨500元工资,排序后工资数据 */main.cpp:#include <iostream>#include "salary.h"using namespace std;int main(){    Salary s1;    s1.read_salarys();    cout<<endl;    cout<<"为每位职工增加500元工资后工资为:"<<endl;    s1.add_salarys(500);    cout<<endl;    cout<<"从小到大对工资排序:"<<endl;    s1.sort_salarys();    s1.show_salarys();    return 0;}salary.cpp:#include <iostream>#include "salary.h"#include <fstream>//infile的头文件#include <cstdlib>//exit 的头文件using namespace std;void Salary::read_salarys(){    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(int x){    int i;    for(i=0; i<number; i++)    {        Salarys[i]=Salarys[i]+x;//为每一个工人加工资        cout<<Salarys[i]<<'\t';    }}void Salary::sort_salarys()//用冒泡法给工资排序{    int i,j;    double t;    for(i=0; i<number; i++)        for(j=0; j<number-i-1; j++)            if(Salarys[j]>Salarys[j+1])            {                t=Salarys[j];                Salarys[j]=Salarys[j+1];                Salarys[j+1]=t;            }}void Salary::show_salarys(){    int i;    for(i=0; i<number; i++)    {        cout<<Salarys[i]<<'\t';    }} salary.h:#ifndef SALARY_H_INCLUDED#define SALARY_H_INCLUDEDclass Salary{public:    void read_salarys();//读入职工工资    void add_salarys(int);//给每人涨工资    void sort_salarys();//对工资排序    void show_salarys();//显示工资信息private:    double Salarys[500];//定义为指针,将来指向一个动态数组    int number;//实际人数};#endif // SALARY_H_INCLUDED


运算结果:

知识点总结:

对文件读取!

学习心得:

对于从文件中读取数据还是不熟练,要多加练习!

0 0