第六周项目三——人数不定的工资类
来源:互联网 发布:sql数据库紧急模式 编辑:程序博客网 时间:2024/06/07 02:56
设计一个工资类(Salary),其中的数据成员包括职工人数(number,人数不定)和number个职工的工资salary,要求输入职工工资并逐个输出。
提示:用固定大小的数组存储number个职工的工资,可能造成空间的浪费,也可能会由于空间不够而不能处理职工人数过多的应用。将salary声明为指针类型的成员,通过动态分配空间,分配正好大小的空间存储数据。
提示:用固定大小的数组存储number个职工的工资,可能造成空间的浪费,也可能会由于空间不够而不能处理职工人数过多的应用。将salary声明为指针类型的成员,通过动态分配空间,分配正好大小的空间存储数据。
class Salary{public: Salary(int n); //n为职工人数,初始化时完成空间的分配 ~Salary(); //析构函数中释放初始化时分配的空间 void input_salary(); void show_salary();private: double *salary; int number;};//下面定义类的成员函数……//下面是测试函数int main(){ Salary s(10); s.input_salary(); s.show_salary(); return 0;}
参考解答(重点的有注释):
/* All rights reserved. * 文件名称:test.cpp * 作者:陈丹妮 * 完成日期:2015年 4 月 15 日 * 版 本 号:v1.0 */#include <iostream>using namespace std;class Salary{public: Salary(int n); //n为职工人数,初始化时完成空间的分配 Salary(const Salary &s); //建立复制构造函数 ~Salary(); //析构函数中释放初始化时分配的空间 void input_salary(); void show_salary();private: double *salary; int number;};Salary::Salary(int n){ number=n; salary=new double[number]; //更据人数的大小来确定分配的空间的大小。}Salary::Salary(const Salary &s){ number=s.number; salary=new double[number]; for(int i=0;i<number;i++) { *(salary+i)=*(s.salary+i); }}Salary::~Salary(){ delete []salary; //这一步是必须要有的,在析构函数中释放用new分配的空间}void Salary::input_salary(){ int i; cout<<"请输入"<<number<<"名职工的工资:"<<endl; for(i=0;i<number;i++) { cin>>*(salary+i); } return;}void Salary::show_salary(){ cout<<"职工工资清单:"; for(int i=0;i<number;i++) { cout<<*(salary+i)<<" "; } cout<<endl; return;}int main(){ Salary s(10); s.input_salary(); s.show_salary(); return 0;}
心得体会:灵活运用复制函数(记得要用new分配一个恰好的空间,函数结束后在用析构函数delete释放掉我们所分配的空间。),有时会很便捷的。继续加油吧!
1 1
- 第六周项目三—人数不定的工资类
- 第六周项目三:人数不定的工资类
- 第六周 项目三:人数不定的工资类
- 第六周项目三:人数不定的工资类
- 第六周项目三--人数不定的工资类
- 第六周项目三 人数不定的工资类
- 第六周项目三 人数不定的工资类
- 第六周项目三之人数不定的工资类
- 第六周 项目三 人数不定的工资类
- 第六周 项目三 人数不定的工资类
- 第六周 项目三-人数不定的工资类
- 第六周项目三 人数不定的工资类
- 第六周项目三 人数不定的工资类
- 第六周项目三-人数不定的工资类
- 第六周——项目三:人数不定的工资类
- 15第六周项目三——人数不定的工资类
- 第六周项目三——人数不定的工资类
- 第六周 课后实践:项目三——人数不定的工资类
- 第一个字符设备驱动
- centos 6.5 下安装 mysql
- 人数不定的工资类
- 第六周项目四 友员函数 初体验
- 第6周项目2 数组类
- 第六周项目三——人数不定的工资类
- 深入理解RMQ & LCA
- 第六周上机项目3人数不定的工资类
- RAM的特点
- Dedecms 数据库结构分析
- Container with most water
- 关于mysql的update语句中可能出现的com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException的一点发现
- ubuntu安装sogou失败后恢复ibus
- Facebook新开源框架Fresco(转载)