15第六周项目三——人数不定的工资类

来源:互联网 发布:机智股票自动交易软件 编辑:程序博客网 时间:2024/06/10 02:10

/*
 * Copyright (c) 2014, 烟台大学计算机学院
 * All rights reserved.
 * 文件名称:test.cpp
 * 作    者:李晓凯
 * 完成日期:2015年 4 月 11 日
 * 版 本 号:v1.0
 *
 * 问题描述:输入10名职工的工资,按从大大小的顺序排序后输出

 * 输入描述:10名职工的工资
 * 程序输出:排序后的工资

 */

#include <iostream>using namespace std;class Salary{public:    Salary(int n);  //n为职工人数,初始化时完成空间的分配    ~Salary();      //析构函数中释放初始化时分配的空间    void input_salary();    void sort_data();    void show_salary();private:    double *salary;    int number;};//下面定义类的成员函数Salary::Salary(int n){    number=n;}Salary::~Salary(){    delete []salary;}void Salary::input_salary(){    int i;    salary=new double[number];    cout<<"请输入"<<number<<"名职工的工资:"<<endl;    for(i=0; i<number; i++)    {        cin>>salary[i];    }    return;}void Salary::show_salary(){    cout<<"这"<<number<<"职工工资清单如下:"<<endl;    for(int i=0; i<number; i++)        cout<<salary[i]<<" ";    return;}void Salary::sort_data(){    int i,j;    double t;    for(i=0; i<number; i++)        for(j=0; j<number-i-1; j++)            if(salary[j]<salary[j+1])            {                t=salary[j+1];                salary[j+1]=salary[j];                salary[j]=t;            }    return;}//下面是测试函数int main(){    Salary s(10);    s.input_salary();    s.sort_data();    s.show_salary();    return 0;}


总结:这个没有用到新的知识,就到贺老师博客里看了一下,看到贺老师自己加上了复制构造函数,so,我也做了一下修整——自己加上了这个,(*^__^*) 嘻嘻……如下:

(2)

#include <iostream>using namespace std;class Salary{public:    Salary(int n);  //n为职工人数,初始化时完成空间的分配    Salary(const Salary&s);    ~Salary();      //析构函数中释放初始化时分配的空间    void input_salary();    void sort_data();    void show_salary();private:    double *salary;    int number;};//下面定义类的成员函数Salary::Salary(int n){    number=n;}Salary::Salary(const Salary &s)  //将s1完全复制给s2{    number=s.number;    salary=new double[number];    for(int i=0; i<number; i++)    {        salary[i]=s.salary[i];    }}Salary::~Salary(){    delete []salary;}void Salary::input_salary()   //输入工资{    int i;    salary=new double[number];    cout<<"请输入"<<number<<"名职工的工资:"<<endl;    for(i=0; i<number; i++)    {        cin>>salary[i];    }    return;}void Salary::show_salary()  //输出工资{    cout<<"这"<<number<<"职工工资清单如下:"<<endl;    for(int i=0; i<number; i++)        cout<<salary[i]<<" ";    cout<<endl;    return;}void Salary::sort_data()  //对工资进行排序{    int i,j;    double t;    for(i=0; i<number; i++)        for(j=0; j<number-i-1; j++)            if(salary[j]<salary[j+1])            {                t=salary[j+1];                salary[j+1]=salary[j];                salary[j]=t;            }    return;}//下面是测试函数int main(){    Salary s1(10);    s1.input_salary();    s1.sort_data();    s1.show_salary();    Salary s2(s1);    s2.sort_data();    s2.show_salary();    return 0;}


学习总结:只是在原有的代码上添加了复制构造函数,做一个就基本上懂了怎么应用了,继续吧,骚年!

0 0
原创粉丝点击