题目:设计一个类,它具有一个float指针成员。构造函数具有一个整型参数count,它为指针成员分配count个存储数据的元素空间。析构函数释放指针指向的空间。另外,设计两个函数成员完成如下功能:
(1)向指针指向的空间中存储数据。
(2)返回这些数的平均值。
编写一个完整的成员检验该类的正确性。
#include<iostream>
#include<iomanip>
using namespace std;
class Pointer
{
float *p;
int num;
public:
Pointer(int count=10); //内联构造函数,count默认为10
void preserve(float x); //在指针指向的空间中存储数据
float average(); //平均值
~Pointer()
{
delete []p;
cout<<"已释放空间!"<<endl; //释放内存空间
};
};
Pointer::Pointer(int count)
{
p=new float[count];
num=0;
if(p==NULL)
{
exit(0);
}
cout<<endl<<"构造已经完成"<<endl<<endl;
}
void Pointer::preserve(float x)
{
p[num]=x;
num++;
}
float Pointer::average()
{
int i;
float sum=0;
for(i=0;i<num;i++)
sum+=p[i];
sum=sum/num;
return sum;
}
int main()
{
cout<<"输入要输入的数据数目:";
int n;
cin>>n;
Pointer pointer(n); //调用构造函数
cout<<"请输入"<<n<<"个数据:"<<endl;
for(int i=0;i<n;i++) //调用preserve函数
{
float e;
cin>>e;
pointer.preserve(e);
}
cout<<"数据的平均值为:"<<pointer.average()<<endl; //调用求平均值函数
return 0;
}