软题库 学习课程
当前位置:信管网 >> 在线考试中心 >> 试题查看
试题题型【分析简答题】
试题内容

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

【C++代码】
#include
#include
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(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;
}

查看答案

相关试题