问答题
使用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=s.PC;
点击查看答案&解析