使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
(1)完成构造函数,设置数组元素的个数为0,请在注释1之后添加语句。
(2)完成函数AddMember(int n),如果参数n包含在类的数据成员数组中,则返回0,否则把数据写入数组,然后返回1,请在注释2之后添加语句。
(3)完成函数DelMember(int n),如果变量在数据中,则删除该变量,并且返回1,如果不存在,则返回0,请在注释3之后添加语句。
(4)完成成员函数IsInclude(int n)的定义,该函数检查参数n是否在类的数据成员数组array中,如果在,返回1,否则返回0。请在注释4之后添加语句。
注意:除在指定位置添加语句之外,不要改动程序中的其他内容。
试题程序:
#include<iostream.h>
#define MAX_LENGTH 500
class TCArr
public:
TCArr()
//********1********
int AddMember(int n)
for(int i=0;i<length;i++)
//********2********
return 0;
Array[length++]=n;
return 1;
int DelMember(int n)
int i;
for(i=0;i<length;i++)
if(Array[i]==n)
break;
//********3********
for(;i<length-1:i++)
Array[i]=Array[i+1];
kngth--;
return 1;
return 0;
int IsInclude(int n)
for(int i=0;i<length;i++)
//********4********
return 1;
return 0;
private:
int Array[MAX_LENGTH];
int length;//用来记录数组的个数
;
int main()
TCArr obj;
cout<<obj.AddMember(1)<<end1;
cout<<obj.AddMember(3)<<end1;
cout<<obj.AddMember(8)<<end1;
cout<<obj.AddMember(23)<<end1;
cout<<obj.IsInclude(8)<<end1;
cout<<obj.IsInclude(11)<<end1;
cout<<obj.DelMemloer(3)<<end1;
cout<<obj.DelMember(8)<<end1;
cout<<obj.IsInclude(2)<<end1;
cout<<obj.IsInclude(1)<<end1;
return 0;
参考答案:将“if()”补充完整为“if(Array[i]==n)”或“if(n==Array[i])”。
解析: 本题使length初始化为0,因此第1处应添加“length=0;”。第2处是检查n是否已经在数组当中存在,用if语句来判断,即if(Array[i]==n)或if(n==Array[i])。DelMember(int n)函数用于删除指定的元素,由于元素在数组当中的位置未知,因此必须先查找该元素的位置,在该函数的实现过程中通过for循环来完成,即第一个for循环查找n在数组中的位置。如果n存在于数组中,那么if中的break语句就会执行跳出循环,此时循环变量i的值会小于length,即通过判断i的值是否小于length值可以知道n是否存在于数组中,如果存在于数组中,接下来进行删除操作,即第3处的语句应改为if(i<length)或if(i!=length)。IsInclude(int n)成员函数用来判断n是否存在于数组当中,可用if语句进行比较,即第4处的语句应改为“if(Array[i]==n)“或”if(n==Array[i])”。