请打开考生文件夹下的解决方案文件proj1,该工程中包含程序文件main.epp,其中有类Door(“门”)和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:

admin2020-04-07  35

问题 请打开考生文件夹下的解决方案文件proj1,该工程中包含程序文件main.epp,其中有类Door(“门”)和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
    打开503号门...门是锁着的,打不开。
    打开503号门的锁...锁开了。
    打开503号门...门打开了。
    打开503号门...门是开着的,无须再开门。
    锁上503号门...先关门...门锁上了。
    注意:只修改每个“//ERROR*********found*********”下的那一行,不要改动程序中的其他内容。
    #include<iostream>
    using namespace std;
    class Door{
      int num;  //门号
      bool closed;  //true表示门关着
      bool locked;  //true表示门锁着
    public:
      Door(int num){
    //ERROR  *******found*******
        num:this一>num;
        closed=locked=true;
      }
      bool isClosed()const{return closed;}
    //门关着时返回true,否则返回false
      bool isOpened()const{return!closed;}
    //门开着时返回true,否则返回false
      bool isLocked()const{Eeturn locked;}
    //门锁着时返回true,否则返回false
      bool.isUnlocked()consL{return!locked;}
    //门未锁时返回true,否则返回false
      void open(){  //开门
        cout:<<endl<<"打开"<<rum<<"号门...";
      //ERROR *****found*****
      if(closed)
        cout<<"门是开着的,无须再开门。";
      else if(locked)
        cout<<"门是锁着的,打不开。";
      else{
        closed=false;
        cout;<<"门打开了。";
       }
     }
     void close(){  //关门
       cout;<<endl<<"关上"<<num<<"号门...";
       if(closed)
         cout<<"门是关着的,无须再关门。";
      else{
        closed=true;
        cout<<"门关上了。";
      }
    }
    //ERROR  *******found*******
      void lock()const{  //锁门
        cout<<endl<<"锁上"<<num<<"号门...";
      if(locked)
        cout<<"门是锁着的,无须再锁门。";
      else {
        if(!closed){
          cout<<"先关门...";
          closed=true;
       }
         locked=true;
         cout<<"门锁上了。";
        }
      }
      void unlock(){  //开锁
        cout<<endl<<"开"<<num<<"号门的锁...";
        if(! loked)
          cout<<"门没有上锁,无须再开锁。";
     else{
          locked=false;
          cout<<"锁开了。";
        }
      }
    };
    int main(){
      Door door(503);
      door.open();
      door.unlock();
      door.open();
      door.open();
      door.lock();
      return 0;
    }

选项

答案(1)this—>num=num; (2)if(!closed) (3)void lock(){

解析 (1)主要考查考生对this指针的掌握,在构造函数中this指针指向的是当前类,因此要给。num赋值使用语句this一>hum=num;完成。
    (2)主要考查考生对if语句的掌握,先看类的私有成员中关于closed的定义::bool closed;//trile表示门关着。再看下一条语句:cout<<"门是开着的,无须再开门。";。即满足条件时就会输出:门是开着的,无须再开门。因此if括号内应该是!closed。
    (3)主要考查考生对const函数的掌握,lock函数体中存在语句locked=true,即有参数发生改变,因此不能用const。
转载请注明原文地址:https://kaotiyun.com/show/bu8p777K
0

最新回复(0)