第二周 项目五:数组作数据成员(5)

来源:互联网 发布:足球彩票哪个软件好 编辑:程序博客网 时间:2024/05/15 06:58

问题及代码:

main.cpp

/** Copyright (c) 2015, 烟台大学计算机学院* All rights reserved.* 文件名称:lei.cpp* 作    者:李楠* 完成日期:2015年3月19日* 版 本 号:v1.0** 问题描述:阅读教材P255例8.4,注意到类中的数据成员可以是数组。设计一个工资类(Salary),其中类的数据成员如下:要设计的成员函数有:•void set_salarys( ):输入职工工资(输入-1标志着工资输入结束),工资保存到salary数组中,实际人数保存到number中;•void add_salarys(int x):给每个人涨x元工资•void sort_salarys():对工资排序•void show_salarys( ):显示工资信息* 输入描述:(5)用多文件的方式组织最后的程序。* 程序输出:略*/#include <iostream>#include "salary.h"using namespace std;int main( ){    Salary sal;    sal.read_data( );    sal.add_salarys(500);    sal.sort_salarys();    sal.salary_data( );    sal.show_salarys( );    return 0;}


salary.h

#ifndef SALARY_H_INCLUDED#define SALARY_H_INCLUDED#include "salary.h"class Salary{public:    void read_data();    void salary_data();    void add_salarys(int x);    void sort_salarys();    void show_salarys();private:    double salarys[500];    int number;   //人数};#endif // SALARY_H_INCLUDED


sal.cpp

#include <iostream>
#include <fstream>//infile的头文件
#include <cstdlib>//exit()的头文件
#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::salary_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::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=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";
}

 

运行结果:

 

知识点总结:

运用上刚学的多文件组织的知识,还是不难的

学习心得:

熟能生巧,这几天写了两三个多文件的项目,感觉以后就不再害怕使用多文件了

0 0
原创粉丝点击