软题库 移动APP 扫码下载APP 随时随地移动学习 培训课程
当前位置:信管网 >> 在线考试中心 >> 信息系统项目管理师题库 >> 试题查看
试卷名称 2013年下半年程序员考试下午真题试题(案例分析)
考试中心《2013年下半年程序员考试下午真题试题(案例分析)》在线考试
试卷年份2013年下半年
试题题型【分析简答题】
试题内容

阅读以下说明和C++代码,填充程序中的空缺,将解答填入答题纸的对应栏内。
【说明】
某应急交通控制系统(TraficControlSystem)在红灯时控制各类车辆 (Vehicle)的通行,其类图如图5-1所示,在紧急状态下应急车辆在红灯时可通行,其余车辆按正常规则通行。
下面的C++代码实现以上设计,请完善其中的空缺。

【C++代码】
     #include <typeinfo>
     #include <iostream>
     using namespace std;
     class Vehicle  {  /*抽象基类,车辆*/
     public:
     virtual void run( )  = 0;
     };
    class Emergency  { /*抽象基类,可在红灯时通行的接口,函数均为纯虚函数*/
    public:
          (1)    =  0;           // isEmergent ( )函数接口
          (2)    = 0;            // runRedLight( ) 函数接口
     };
     class Car: public Vehicle  {
     public:
          ~Car ( ) {   }
          void  run ( ) {  /*代码略*/}
     };
     class Truck: public Vehicle  {
     public:
           ~Truck( ) {    }
          void  run   ( )    {  /*代码略*/  }
     };
     class PoliceCar:  (3)  {
     private:
          bool isEmergency;
     public:
          PoliceCar( )  : Car( ) ,Emergency( ){  this->isEmergency  = false;
     }
     PoliceCar(bool  b)   : Car( ) ,Emergency( ) {  this->isEmergency  =  b;}
          ~policeCar ( )    {  }
          bool  isEmergent ( )   {  return  (4) ;    }
          void   runRedLight( )  {                 /*代码略*/       }
     };
     /*类Ambulance、 FireEngine 实现代码略*/
     class  TraficControlSystern  {  /*交通控制类*/
     private:
         Vehicle* v[24};  int nurnVeh:cles;  /*在构造函数中设置初始值为0*/
     public:
         void  control() {  //控制在紧急情况下应急车辆红灯通行,其他情况按常规通行
             for  (int  i =  0;  i <  numVehicles ;  i++)   {
                  Emergency * ev = dynamic_cast<Emergency*>(v[i]);
                  if (ev  != 0)          (5)  ->runRedLight () ;
                  else                    (6)  ->run () ;
              }
      }
      void  add(Vehicle * vehicle)    {  v[numVehicles++]   = vehicle;
                                       / *添加车辆./
      void shutDown()  {  for  (int i = 0;  i <  numVehicles;  i++)  {  delete    
      v[i];  }       }
    } ;
    int main( )  {
            TraficControlSystern. tcs = new TraficControlSystern;
            tcs->add(new  Car( ));  tcs->add(new   PoliceCar( ));
         tcs->add(new Ambulance( ));tcs->add(new Ambulance(true));
       tcs->add(new  FireEngine(true));  tcs->add(new  FireEngine( ));
       tcs->add(new  Truck( ));
       tcs->control( );  tcs->shutDown( );
           delete  tcs;
       }


相关试题

推荐文章
合作网站内容