您的位置:首页 > 其它

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

2015-04-11 18:40 405 查看
/*

* 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;
}




学习总结:只是在原有的代码上添加了复制构造函数,做一个就基本上懂了怎么应用了,继续吧,骚年!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: