第2周-项目5-数组作数据成员-工资类(多文件组织)

来源:互联网 发布:随意画线软件 编辑:程序博客网 时间:2024/04/29 17:47
问题及代码:
/*   *Copyright (c)2015,烟台大学计算机与控制工程学院   *All rights reserved.   *文件名称:score.cpp   *作    者:单昕昕   *完成日期:2015年3月20日   *版 本 号:v1.0   *   *问题描述:用多文件的方式组织最后的程序*程序输入:无。*程序输出:降序排序后工资数据。  */ #include <fstream>   //操作文件必写#include<iostream>#include<cstdlib>using namespace std;class Salary{private:    double salarys[500];    int number;public:    void read_data( );    void write_data();    void add_salarys(int x);    void sort_salarys();    void show_salarys( );};void Salary::read_data( ){    int i;    ifstream infile("salary.txt",ios::in); //以输入的方式(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); //以输入的方式(ios::in)打开文件    if(!outfile)                 //测试是否成功打开,打开失败时(如要读的数据文件不存在)退出    {        cerr<<"open error!"<<endl;        exit(1);    }    for(i=0; i<number; ++i)    {        outfile<<salarys[i]<<endl;    }    outfile.close();    cout<<"处理完毕,请打开文件查看结果!"<<endl;}void Salary::add_salarys(int x){    for (int 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';}int main( ){    Salary salary;    int x;    salary.read_data( );    cout<<"请输入涨的工资数:";    cin>>x;    salary.add_salarys(x);    salary.sort_salarys();    salary.write_data( );    salary.show_salarys( );    return 0;}



运行结果:


程序的多文件组织:

——————————————————主文件: main.cpp,用于定义main()函数

#include<iostream>#include "salarys.h"using namespace std;int main( ){    Salary salary;    int x;    salary.read_data( );    cout<<"请输入涨的工资数:";    cin>>x;    salary.add_salarys(x);    salary.sort_salarys();    salary.write_data( );    salary.show_salarys( );    return 0;}



——————————————————salarys.h,头文件,声明类,定义内置成员函数

#ifndef SALARYS_H_INCLUDED#define SALARYS_H_INCLUDEDclass Salary{private:    double salarys[500];    int number;public:    void read_data( );    void write_data();    void add_salarys(int x);    void sort_salarys();    void show_salarys( );};#endif // SALARYS_H_INCLUDED




——————————————————salary.cpp,用于定义类Salary中其他成员函数

#include <fstream>   //操作文件必写#include<iostream>#include<cstdlib>#include "salarys.h"using namespace std;void Salary::read_data( ){    int i;    ifstream infile("salary.txt",ios::in); //以输入的方式(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_increase.txt",ios::out); //以输入的方式(ios::in)打开文件    if(!outfile)                 //测试是否成功打开,打开失败时(如要读的数据文件不存在)退出    {        cerr<<"open error!"<<endl;        exit(1);    }    for(i=0; i<number; ++i)    {        outfile<<salarys[i]<<endl;    }    outfile.close();    cout<<"处理完毕,请打开文件查看结果!"<<endl;}void Salary::add_salarys(int x){    for (int 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';}



——————————————————源文件夹





知识点总结:

多文件组织。


学习心得:

又练了一遍多文件组织,反正我觉得这就是这个周最重要的知识点了~~

新技能get√~!!

0 0