av免费网址-青青青手机在线视频-√天堂资源中文-免费在线观看av网站-午夜dj视频在线观看完整版1-老少配老妇老熟女中文普通话-亚洲精品久久久久成人2007-国产精品边做奶水狂喷-另类综合小说-精品无码成人片一区二区-超碰超在线-国产对白刺激视频-亚洲天堂网在线观看-国产精品国产精品偷麻豆-国产精品美女久久久久久福利-国产露脸国语对白在线-91人人爽久久涩噜噜噜-亚洲欧美久久-久久综合色网-特级黄色 一级播放

2006年11月軟件設計師下午試題[7]

軟件設計師 責任編輯:yz888520 2008-08-06

添加老師微信

備考咨詢

加我微信

摘要:試題七(共15分)閱讀以下說明以及Java程序,將應填入(n)處的字句寫在答題紙的對應欄內。[說明]傳輸門是傳輸系統中的重要裝置。傳輸門具有Open(打開)、Closed(關閉)、Opening(正在打開)、StayOpen(保持打開)、Closing(正在關閉)五種狀態。觸發狀態的轉換事件有click、complete和timeout三種。事件與其相應的狀態轉換如圖7-1所示。

試題七(共15分)
閱讀以下說明以及Java程序,將應填入 (n) 處的字句寫在答題紙的對應欄內。
[說明]
傳輸門是傳輸系統中的重要裝置。傳輸門具有Open(打開)、Closed(關閉)、Opening(正在打開)、StayOpen(保持打開)、Closing(正在關閉)五種狀態。觸發狀態的轉換事件有click、 complete和timeout三種。事件與其相應的狀態轉換如圖7-1所示。



 下面的[Java代碼1]與[Java代碼2]分別用兩種不同的設計思路對傳輸門進行狀態模擬,請填補代碼中的空缺。
[Java代碼1]
public class Door{
public static final int CLOSED = 1; public static final int OPENING = 2:
public static final int OPEN = 3: public static final int CLOSING = 4:
public static final int STAYOPEN = 5; private int state = CLOSED:
//定義狀態變量,用不同的整數表示不同狀態

private void setState(int state){this.state = state;}//設置傳輸門當前狀態
public void getState(){
//此處代碼省略,本方法輸出狀態字符串,
//例如,當前狀態為CLOSED時,輸出字符串為"CLOSED"
}
public void click(){//發生click事件時進行狀態轉換
if( (1) )setState(OPENING);
else if( (2) )setState(CLOSING);
else if( (3) )setState(STAYOPEN);
}
//發生timeout事件時進行狀態轉換
public void timeout(){if(state == OPEN) setState(CLOSING);}
public void complete(){//發生complete 事件時進行狀態轉換
if(state == OPENING) setState(OPEN);
else if(state == CLOSING) setState(CLOSED);
}
public static void main (String [] args){
Door aDoor = new Door();
aDoor.getState();aDoor.click(); aDoor.getState(); aDoor.complete();
aDoor.getState();aDoor.click();aDoor.getState();aDoor.clik();
aDoor.getState();return;
}
}
[Java代碼2]
public class Door{
public final DoorState CLOSED = new DoorClosed(this);
public final DoorState OPENING = new DoorOpening(this);
public final DoorState OPEN = new DoorOpen(this);
public final DoorState CLOSING = new DoorClosing(this);
public final DoorState STAYOPEN = new DoorStay0pen(this);
private DoorState state = CLOSED;

//設置傳輸門當前狀態
public void setState(DoorState state){this.state = state;}
public void getState(){//根據當前狀態輸出對應的狀態字符串
System.out?println(state.getClass().getName());
}
public void click(){ (4) ;}//發生click事件時進行狀態轉換
public void timeout(){ (5) ;}//發生timeout事件時進行狀態轉換
public void complete(){ (6) ;}//發生complete事件時進行狀態轉換

public static void main (String[] args){
Door aDoor = new Door():
aDoor.getState();aDoor. click();aDoor.getState();aDoor.complete();
aDoor.getstate();aDoor.timeout();aDoor.getState();return;
}
public abstract class DoorState{//定義所有狀態類的基類
protected Door door:
public DoorState(Door door){this.door = door;}
public void click(){}
public void complete(){}
public void timeout(){}
}
class DoorClosed extends DoorState{//定義一個基本的Closed狀態
public DoorClosed(Door door){super(door);}
public void click(){ (7) ;}
//該類定義的其余代碼省略
}
//其余代碼省略
 
[答案討論]

[1]  [2]  [3]  [4]  [5]  [6]  [7]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

軟考備考資料免費領取

去領取

!
咨詢在線老師!