问答题
使用VC6打开考生文件夹下的工程test25_3,此工程包含一个源程序文件test25_3.cpp,其中定义了用于表示堆的类Set,但它的定义并不完整。请按要求完成下列操作,将程序补充完整。
(1)完成成员函数int IsMemberOf(int n)的定义,该函数检查参数n是否在类的数据成员数组elems中,如果在返回1,反之返回0。请在注释“//**1**”之后添加适当的语句。
(2)完成成员函数int Add(int n)的定义,如果参数n包含在类的数据成员数组elems中则返回1如果数组超界则返回0,如果都不是,则将参数n插入到elems中,下标大小为类的数据成员PC,之后PC自加一。请在注释“//**2**”之后添加适当的语句。
(3)完成拷贝初始化构造函数Set(Set &s)的定义,请在注释“//**3**”之后添加适当的语句。输出结果如下:
1
{}
{1,2,3,4,5,6,7,8}
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件test25_3.cpp清单如下:
#include<iostream.h>
class Set
{
public:
Set() {PC=O;}
Set(Set &s);
void Empty() {PC=O;}
int IsEmpty() {return PC==O;}
int IsMemberOf(int n);
int Add(int n);
void Print();
private:
int elems[100];
int PC;
};
int Set::IsMemberOf(int n)
{
//**1**
if(elems[i]==n)
return 1;
return O;
}
int Set::Add(int n)
{
//**2**
return 1;
else if(PC>=100)
return O;
else
{
elems[PC++]=n;
return 1;
}
}
Set::Set(Set &s)
{
//**3**
for(int i=O; i<PC; i++)
elems[i]=s.elems[i];
}
void Set::Print()
{
cout<<"{";
for(int i=O; i<PC-1; i++)
cout<<elems[i]<<",";
if(PC>O)
cout<<elems[PC-1];
cout<<"}"<<endl;
}
void main()
{
Set A;
cout<<A.IsEmpty()<<endl;
A.Print();
Set B;
for(int i=l; i<=8; i++)
B.Add(i);
B.Print();
}
【参考答案】
(1) for(int i=O;i<PC;i++) (2) if(IsMemberOf(n)) (3) PC......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)