第三周——基于对象的程序设计——工资类(4)多文件组织

来源:互联网 发布:万国数据 海外上市 编辑:程序博客网 时间:2024/04/29 06:41

问题及代码:

main主函数代码:

/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:  图书馆的书 .cpp*作    者:莉莉*完成日期:2015年3月19日*版 本 号:v1.0*问题描述:多文件组织,手工输入工资?!太让人不能忍受了。现给出包含了不足500个职工工资的文件salary.txt(下载),从文件中读数据,完成上面的工作。增加一个成员函数,将排序后结果保存到一个文件中。*/#include <iostream>#include <fstream>#include <cstdlib>#include "salary.h"using namespace std;int main(){    int a;    Salarys s;    s.set_salarys();    cout<<"请输入要涨的金额:"<<endl;    cin>>a;    s.add_salarys(a);    cout<<"增加后的工资为:"<<endl;    s.show_salarys();    cout<<"按工资由高到低排序后:"<<endl;    s.sort_salarys();    s.write_salarys();    s.show_salarys();    return 0;}


salary工资类的定义代码:

#ifndef SALARY_H_INCLUDED#define SALARY_H_INCLUDED#include <fstream>#include <cstdlib>using namespace std;const int N=500;class Salarys{public:    void set_salarys();    void write_salarys();    void add_salarys(int x);    void sort_salarys();    void show_salarys();private:    double salarys[N];    int number;};#endif // SALARY_H_INCLUDED


成员函数的定义:

#include <iostream>#include <fstream>#include <cstdlib>#include "salary.h"using namespace std;void Salarys::set_salarys(){    int i=0;    ifstream infile("salary.txt",ios::in);    if(!infile)    {        cerr<<"open error!"<<endl;    }    while(infile>>salarys[i])    {        i++;    }    number=i;    infile.close();}void Salarys::write_salarys(){    ofstream outfile("salaryout.txt",ios::out);    if(!outfile)    {        cerr<<"open error!"<<endl;    }    for(int i=0; i<number; i++)    {        outfile<<salarys[i]<<'\t';    }    cout<<endl;}void Salarys::add_salarys(int x){    int i=0;    for(i=0; i<number; i++)    {        salarys[i]+=x;    }}void Salarys::sort_salarys(){    int i=0,j=0;    double t;    for(i=0; i<number-1; 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 Salarys::show_salarys(){    int i=0;    for(i=0; i<number; i++)    {        cout<<salarys[i]<<'\t';    }    cout<<endl;}


运行结果:

0 0
原创粉丝点击