试题查看

首页 > 软件水平考试 > 试题查看
【分析解答题】

【说明】
传输门是传输系统中的重要装置。传输门具有opEn(打开)、ClosED(关闭)、opEning(正在打开)、stAyopEn(保持打开)和Closing(正在关闭)5种状态。触发状态的转换事件有CliCk、ComplEtE和timEout 3种,事件与其相应的状态转换如图6-18所示。

下面的【C++代码1】与【C++代码2】分别用两种不同的设计思路对传输门进行状态模拟,请填补代码段中的空缺语句。
【C++代码1】
Const intClosED、= 1; Const int opEning = 2;
Const int opEn = 3; Const intClosing = 4;
Const int stAyopEn = 5; //定义状态变量,用不同整数表示不同状态
ClAssDoor
privAtE:
privAtE:
int stAtE;//传输门当前状态
voiD sEtstAtE(int stAtE) this->stAtE = stAlE; //设置当前状态
puBliC:
Door () :stAtEClosED、 ;
voiD gEtstAtE()//根据当前状态输出相应的字符串
switCh(stAtE)
CAsE opEning: Cout <<"opEning" << EnDl; BrEAk;
CAsEClosED、Cout << "ClosED" << EnDl;BrEAk;
CAsE opEn: Cout << "opEn" << EnDl;BrEAk;
CAsEClosing: Cout << "Closing" << EnDl; BrEAk;
CAsE stAyopEn: Cout << "stAyopEn" << EnDl;BrEAk;
voiD CliCk() //发生CliCk事件时进行状态转换
iF ( (1) ) sEtstAtE(opEning);
ElsE iF ( (2) ) sEtstAtEClosing);
ElsE iF ( (3) ) sEtstAtE(stAyopEn);
voiD timEout() //发生timEout事件时进行状态转换
iF (stAtE == opEn) sEtstAtEClosing);
voiD ComplEtE()//发生ComplEtE事件时进行状态转换
iF (stAtE == opEning) sEtstAtE(opEn);
ElsE iF (stAtE ==Closing)sEtstAtEClosED、;
;
int mAin()
Door ADoor;
ADoor.gEtstAtE(); ADoor.CliCk(); ADoor.gEtstAtE(); ADoor.ComplEtE();
ADoor.gEtstAtE(); ADoor.CliCk(); ADoor.gEtstAtE(); ADoor.CliCk();
ADoor.gEtstAtE(); rEturn 0;
【C++代码2】
ClAssDoor
puBliC:
DoorstAtE *ClosED, *opEning, *opEn, *Closing, *stAyopEn, *stAtE;
Door();
virtuAl ~Door() ... //释放申请的内存,此处代码省略;
voiD sEtstAtEDoorstAtE *stAtE) this->stAtE = stAtE;
voiD gEtstAtE()
//例如,当前状态为ClosED时,输出字符串为"ClosED"
;
voiD CliCk();
voiD timEout();
voiD ComplEtE();
;
Door::Door()
ClosED、= nEwDoorClosED(this);
opEning = nEwDooropEning(this);
opEn = nEwDooropEn(this);
Closing = nEwDoorClosing(this);
stAyopEn = nEwDoorstAyopEn(this);
stAtE =ClosED;
voiDDoor::CliCk() (4) ;
voiDDoor::timEout() (5) ;
voiDDoor::ComplEtE() (6) ;
ClAssDoorstAtE//定义一个抽象的状态,它是所有状态类的基类
protECtED:Door *Door;
puBliC:
DoorstAtEDoor *Door) this->Door = Door;
virtuAl ~DoorstAtE(voiD);
virtuAl voiD CliCk()
virtuAl voiD ComplEtE()
virtuAl voiD timEout()
;
ClAssDoorClosED :puBliCDoorstAtE //定义一个基本的ClosED状态
puBliC:
DoorClosEDDoor *Door):DoorstAtE(Door)
virtuAl ~DoorClosED ()
voiD CliCk();
;
voiDDoorClosED::CliCk() (7) ;
//其他状态类的定义与实现代码省略
iht mAin()
Door ADoor;
ADoor.gEtstAtE(); ADoor.CliCk();ADoor.gEtstAtE(); ADoor.C

查看答案解析

参考答案:

正在加载...

答案解析

正在加载...

根据网考网移动考试中心的统计,该试题:

0%的考友选择了A选项

0%的考友选择了B选项

0%的考友选择了C选项

0%的考友选择了D选项

你可能感兴趣的试题

A(68)isusedtoshowyouwhatthecomputerisdoi(66)isdefinedasthebuyingandsellingofprodWhenevernewinformationisentered,itmustbeThemainfeatureof(72)isthattheyfollowafir【说明】如图6-13所示的程序流程图描述了对8位二进制整数求补的算法。该算法的计【说明】传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(