使用VC6打开考生文件夹下的工程test25_3,此工程包含一个源程序文件test25_3.cpp,其中定义了用于表示堆的类Set,但它的定义并不完整。请按要求完成下列操作,将程序补充完整。 (1)完成成员函数int IsMemberOf(int n

admin2012-05-11  10

问题 使用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==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=s.elems;
       }
       void Set::Print()
      {
        cout<<"{";
        for(int i=O; i<PC-1; i++)
            cout<<elems<<",";
        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;

解析 本题主要考查考生对于类的成员函数的定义和拷贝初始化函数的理解。
转载请注明原文地址:https://kaotiyun.com/show/w7ID777K
0

最新回复(0)