zoukankan      html  css  js  c++  java
  • C++走向远洋——37(工资类,2)

    */
     * Copyright (c) 2016,烟台大学计算机与控制工程学院
     * All rights reserved.
     * 文件名:salarly.cpp
     * 作者:常轩
     * 微信公众号:Worldhello
     * 完成日期:2016年4月20日
     * 版本号:V1.4
     * 问题描述:对数组内的工资进行一系列的操作
     * 程序输入:工资
     * 程序输出:见运行结果
     */
    #include <iostream>  
    #include <fstream>  
    #include <cstdlib>  
    using namespace std;  
    const int N=500;  
    class Salary  
    {  
    public:  
        void read_data( );  
        void write_data();  
        void add_salarys(int x);  
        void sort_salarys();  
        void show_salarys( );  
    private:  
        double salarys[N]; //工资, 指针更好  
        int number;        //人数  
    };  
    
    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::write_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]<<"		";  
    }  
    
    int main( )  
    {  
        Salary s;  
        s.read_data( );  
        s.add_salarys(500);  
        s.sort_salarys();  
        s.write_data( );  
        s.show_salarys( );  
        return 0;  
    } 


    运行结果:

    心得:

       无

  • 相关阅读:
    【转】[行业透视] 外企九年-我最终选择放弃
    【转】Win7下有线与无线网络使用优先级
    【转】POJ 1177 Picture(1)
    【转】POJ 1151 Atlantis
    POJ1151Atlantis(扫描线求面积并+线段树+离散化)
    【转】poj_1151(Atlantis)
    【转】poj pku 线段树题目20道汇总+简要算法+分类+难度
    【转】POJ 1151 Atlantis(AC)
    【转】线段树(segment tree)
    【转】poj 1177 pictures(2)
  • 原文地址:https://www.cnblogs.com/chxuan/p/8232243.html
Copyright © 2011-2022 走看看