阅读以下说明和C++代码,将应填入 (n) 处的字句写在对应栏内。[说明]传输门是传

题型:填空题

问题:

阅读以下说明和C++代码,将应填入 (n) 处的字句写在对应栏内。

[说明]

传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(已关闭)、Opening(正在打开)、StayOpen(保持打开)、Closing(正在关闭)5种状态。触发传输门状态转换的事件有crick、complete和timeout三种。事件与其相应的状态转换如图18-5所示。

下面的“C++代码1”与“C++代码2”分别用两种不同的设计思路对传输门进行状态模拟,请填补代码中的空缺。

[C++代码1]

const int CLOSED=1;const int OPENING=2;

const int OPEN=3;const int CLOSZNG=4;

const int STAYOPEN=5;//定义状态变量,用不同整数表示不同状态

class Door

private:

int state;//传输门当前状态

void setState(int state)(this->state=state;)//设置当前状态

public:

Door():state(CLOSED):

void getstate()//根据当前状态输出相应的字符串

switch(state)

case OPENING:cout<<""OPENING""<<end1;break;

case CLOSED:cout<<("CLOSED"<<end1;break;

case OPEN:cout<<"OPEN"<<end1;break;

case CLOSZNG:cout<<"CLOSZNG"<<end1;break;

case STAYOPEN:cout<<"STAYOPEN"<<end1;break;

void cliok()//发生click事件时进行状态转换

if( (1) )setStsate(OPENING);

else if( (2) )setState(CLOSZNG);

else if( (3) )aetState(STAYOPEN);

void timeout()//发生timeout事件时进行状态转换

if(state==OPEN)setState(CLOSZNG);

void complete()//发生complete事件时进行状态转换

if(state==OPENING)setState(OPEN):

else if(state==CLOSZNG)setState(CLOSED);

int main()

Door aDoor;

aDoor.getState();aDoor.click();aDoor.getStaLe();aDoor.Complete();

aDoor.getState();aDoor.click();aDoor.getState();aDoor.click();

aDoor.getState();return 0;

[C++代码2]

Class Door

public:

Doorstate *CLOSED,*OPENING,*0PEN,*CLOSZNG,*STAYOPEN,*state:

Door():

virtual ~Door()……//释放申请的内存,此处代码省略);

void setState(Doorstate *state)(this->state=state;

void getState()

//此处代码省略,本方法输出状态字符串

//例如,当前状态为CLOSED时,输出字符串为"CLOSED"

void C1ick();

void timeout();

void complete();

Door::Door()

CLOSED=new DoorClosed(this);OPENING=new Dooropening (this);

OPEN=new DoorOpen(this);CLOSING=new DoorClosing(this);

STAYOPEN=new DoorStayOpen(this);state=CLOSED:

void Door::C1ick()( (4)

void Door::timeout()( (5)

void Door::complete()( (6)

class DoorState//定义一个抽象的状态,它是所有状态类的基类

protected:Door *door;

public:

DoorState(Door *door)(this->door=door;

virtual ~DoorState(void);

virtual void click()

virtual void complete()

virtual void timeout()

class DoorClosed:PubliC DoorState(//定义一个基本的Closed状态

public:

DoorClosed(Door *door):DoorState(door)

Virtual ~DoorClosed()

void click();

void DoorClosed::click()( (7)

int main()

Door aDoor;

aDoor.getState();aDoor.click();aDoor.getState();aDoor.complete();

aDoor.getState();aDoor.timeout();aDoor.getState();return 0;

(4)处填()。

考点:计算机软件水平考试中级软件设计师软件设计师
题型:填空题

一个三角形的底边和这边上的高的和为10,这个三角形的面积最大可以达到______.

题型:填空题

一本连画画3元,25元可以买几本《连环画》?应找回多少元?

题型:填空题

有关眼外伤的预防,错误的是()。

A.极少数眼外伤通过预防可避免发生

B.宣传教育是重要的预防手段

C.体育运动应完善防护措施

D.对工农业生产应严格遵守安全规范

E.禁止儿童玩耍危险玩具,如射弹弓、投石子、燃放烟花、鞭炮等

题型:填空题

如图,水平放置的密封汽缸内的气体被一竖直隔板分隔为左右两部分,隔板可在汽缸内无摩擦滑动,右侧气体内有一电热丝。汽缸壁和隔板均绝热。初始时隔板静止,左右两边气体温度相等。现给电热丝提供一微弱电流,通电一段时间后切断电源。当缸内气体再次达到平衡时,与初始状态相比

[ ]

A.右边气体温度升高,左边气体温度不变

B.左右两边气体温度都升高

C.左边气体压强增大

D.右边气体内能的增加量等于电热丝放出的热量

题型:填空题

期货交易是指交易双方在期货交易所买卖(),并根据合约规定的条款约定在未来某一特定的时间和地点、以某一特定价格买卖某一特定数量和质量的商品的交易行为。

A.金融产品

B.期货合约

C.实物商品

D.外汇

更多题库