本文主要是介绍第六周项目三--人数不定的工资类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题及代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:test.cpp
*作 者:尚 月
*完成日期:2015年04月12日
*版 本 号:v1.0
*
*问题描述:设计一个工资类,其中的数据成员包括职工人数和number个职工的工资salary,要求输入职工工资并逐个输出。
提示:用固定大小的数组存储number个职工的工资,可能造成空间的浪费,也可能由于空间不够而不能处理职工人数过多的应用。将salary声明为指针类型的成员,通过动态分配空间,分配正好大小的空间存储数据。
*输入描述: 输入number个员工发的工资
*输出描述:逐个输出salary
*/
#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;
}
void Salary::input_salary()
{
cout<<"请输入 "<<number<<" 名职工的工资"<<endl;
for(int i=0; i<number; i++)
cin>>*(salary+i);
return ;
}
void Salary::show_salary()
{
cout<<"职工工资清单: "<<endl;
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;
}
运行结果:
学习总结:体验了通过动态分配空间的应用,分配了正好大小空间的存储数据。
这篇关于第六周项目三--人数不定的工资类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!