A.the moveable barrier in the entrance to a building, room, cupboard, car, etc.
B.the channel to a certain place
C.None of the above
D.the panel board
第1题:
阅读以下说明和C++代码。
【说明】
传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening (正在打开)、StayOpen(保持打开)和Closing(正在关闭)五种状态。触发传输门状态转换的事件有click、complete和timeout三种。事件与其相应的状态转换如下图所示。
下面的C++代码1与C++代码2分别用两种不同的设计思路对传输门进行状态模拟,请填补代码中的空缺。
【C++代码1】
const int CLOSED=1; const int PENING=2;
const int PEN=3; const int CLOSING=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"<<endl; break;
case CLOSED: cout<<"CLOSED"<<endl; break;
case OPEN: cout<<"OPEN"<<endl; break;
case CLOSING: cout<<"CLOSING"<<endl; break;
case STAYOPEN:cout<<"STAYOPEN"<<endl; break;
}
};
void click() { //发生click事件时进行状态转换
if ((1)) setState(OPENING);
else if ((2)) setState(CLOSING);
else if ((3)) setState(STAYOPEN);
}
void timeout(){ //发生timeout事件时进行状态转换
if (state == OPEN) setState(CLOSING);
}
void complete(){ //发生complete事件时进行状态转换
if (state == OPENING) setState(OPEN);
else if (state == CLOSING) setState(CLOSED);
}
};
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】
class Door {
public:
DoorState *CLOSED,*OPENING,*OPEN,*CLOSING,*STAYOPEN,*state;
Door();
virtual~Door(){……//释放申请的内存,此处代码省略);
void setState(DoorState *state) { this->state = state;}
void getState(){
//此处代码省略,本方法输出状态字符串,
//例如,当前状态为CLOSED时,输出字符串为“CLOSED”
};
void click();
void timeout();
void complete();
};
Door::Door(){
CLOSED = new DoorClosed(this); OPENING = new DoorOpening(this);
PEN = new DoorOpen(this); CLOSING = new DoorClosing(this);
STAYOPEN = new DoorStayOpen(this);state = CLOSED;
}
void Door :: click() {(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(
第2题:
下列何种不属于集装箱整箱接收、拆箱交付方式?()
A.DOOR/CY
B.DOOR/CFS
C.CY/CFS
D.CY/CY
第3题:
LCL—FCL货物交接的运输方式包括
A.CY—CY
B.CFS--TACKLE
C.CFS--CY
D.CY—DOOR
第4题:
18. —What's behind ________door? I can’t open it.
—Let me see.Oh,there is ________chair.
A. the;a
B. a;the
C. a;a
D. the,the
第5题:
对下面的代码,哪段描述是错误的?() public class Door{ } public class House{ public House(){ Door door = new Door();}}
A.Door是一个类。
B.House是一个从Door继承的类。
C.House的构造函数中声明了一个名为door的变量。
D.door是一个对象。
第6题:
目前,海运集装箱货物交接的常见方式有CY/CY和CFS/CFS。下列()适合整箱交、拼箱接(FCL/LCL)。
A.CY-CFS
B.CY-DOOR
C.DOOR-DOOR
D.DOOR-CFS