當前位置: 首頁 > 問題分類 > 計算機類考試 > 軟考中級 > 問題詳情
問題

請仔細閱讀以下關于某傳輸系統的技術說明、狀態轉換圖及Java程序,根據要求回答問題1~問題2。

[說明]

傳輸門是傳輸系統中的重要裝置。傳輸門具有Open(打開)、Closed(關閉)、Opening(正在打開)、 StayOpen(保持打開)和Closing(正在關閉)5種狀態。觸發狀態的轉換事件有click、complete和timeout3種。事件與其相應的狀態轉換如圖7-16所示。

下面的[Java代碼1]與[Java代碼2]分別用兩種不同的設計思路對傳輸門進行狀態模擬,請填補代碼段中的空缺語句。

[Java代碼1]

請將以上[Java代碼1]與[Java代碼2]程序段中,(1)~(7)空缺處的語句填寫完整。

參考答案
正確答案:這是一道要求讀者掌握狀態轉換圖的程序設計與實現的綜合題。本試題的解答思路如下。 根據(1)空缺處所在的程序段給出的注釋信息“發生click事件時進行狀態轉換”可知(1)空缺處所在的方法為click表示當發生click事件時應該發生什么狀態轉換。找出傳輸門響應事件與其狀態轉換圖(見圖7-16)與click事件相關的內容并特別注意箭頭所指的方向。由于發生click事件前的狀態 CLOSED、CLOSING分別跳轉到狀態OPENING因此(1)空缺處所填寫的內容是“state==CLOSED‖state ==CLOSING”。 同理由圖7-16所示中的狀態轉換關系可知發生click事件前的狀態OPENING、STAYOPEN分別跳轉到狀態CLOSING即(2)空缺處所填寫的內容是“state==OPENING‖state==STAYOPEN”;發生click事件前的狀態OPEN跳轉到狀態STAYOPEN即(3)空缺處所填寫的內容是“state==OPEN”。 仔細閱讀[Java代碼2]程序段由語句private DoorState state=CLOSED;可知類Door的state成員變量用于記錄類Door所處的狀態而state變量的類型為Doorstate。由語句“public void click() {}”、“public void complete() {}”和“public void timeout() {}”可知Doorstate中分別具有click、timeout和complete方法用來響應對應的事件。根據(4)空缺處所在程序段給出的注釋信息“發生click事件時進行狀態轉換”可得(4)空缺處所填寫的內容是“state.click()”。 同理根據(5)空缺處的注釋信息——“發生timeout事件時進行狀態轉換”可得(5)空缺處所填寫的內容是“state.timeout()”;根據(6)空缺處的注釋信息——“發生complete事件時進行狀態轉換”可得(6)空缺處所填寫的內容是“state.complete()”。 根據(7)空缺處所在程序段給出的注釋信息“定義一個基本的Closed狀態”和語句“public void click()”可知(7)空缺處所填寫的內容與傳輸門當前狀態為CLOSED且發生Click事件時狀態的遷移有關。結合圖7-16所示中的狀態轉換關系可知在Click事件下CLOSED狀態將遷移到OPENING因此(7)空缺處應該將傳輸門的狀態設置為OPENING。由于Doorstate變量存儲了當前其存儲的傳輸門的實例因此可直接調用其方法setState設置狀態。同時考慮到傳輸門的狀態采用類的實例變量表示故(7)空缺處所填寫的內容為“door.setState(door.OPENING)”。
這是一道要求讀者掌握狀態轉換圖的程序設計與實現的綜合題。本試題的解答思路如下。 根據(1)空缺處所在的程序段給出的注釋信息“發生click事件時進行狀態轉換”可知,(1)空缺處所在的方法為click,表示當發生click事件時應該發生什么狀態轉換。找出傳輸門響應事件與其狀態轉換圖(見圖7-16)與click事件相關的內容,并特別注意箭頭所指的方向。由于發生click事件前的狀態 CLOSED、CLOSING分別跳轉到狀態OPENING,因此(1)空缺處所填寫的內容是“state==CLOSED‖state ==CLOSING”。 同理,由圖7-16所示中的狀態轉換關系可知,發生click事件前的狀態OPENING、STAYOPEN分別跳轉到狀態CLOSING,即(2)空缺處所填寫的內容是“state==OPENING‖state==STAYOPEN”;發生click事件前的狀態OPEN跳轉到狀態STAYOPEN,即(3)空缺處所填寫的內容是“state==OPEN”。 仔細閱讀[Java代碼2]程序段,由語句private DoorState state=CLOSED;可知,類Door的state成員變量用于記錄類Door所處的狀態,而state變量的類型為Doorstate。由語句“public void click() {}”、“public void complete() {}”和“public void timeout() {}”可知,Doorstate中分別具有click、timeout和complete方法用來響應對應的事件。根據(4)空缺處所在程序段給出的注釋信息“發生click事件時進行狀態轉換”可得,(4)空缺處所填寫的內容是“state.click()”。 同理,根據(5)空缺處的注釋信息——“發生timeout事件時進行狀態轉換”可得,(5)空缺處所填寫的內容是“state.timeout()”;根據(6)空缺處的注釋信息——“發生complete事件時進行狀態轉換”可得,(6)空缺處所填寫的內容是“state.complete()”。 根據(7)空缺處所在程序段給出的注釋信息“定義一個基本的Closed狀態”和語句“public void click()”可知,(7)空缺處所填寫的內容與傳輸門當前狀態為CLOSED且發生Click事件時狀態的遷移有關。結合圖7-16所示中的狀態轉換關系可知,在Click事件下CLOSED狀態將遷移到OPENING,因此(7)空缺處應該將傳輸門的狀態設置為OPENING。由于Doorstate變量存儲了當前其存儲的傳輸門的實例,因此可直接調用其方法setState設置狀態。同時考慮到傳輸門的狀態采用類的實例變量表示,故(7)空缺處所填寫的內容為“door.setState(door.OPENING)”。
您可能感興趣的試題
  • 設有關系R(A,B,C)和S(B,C,D),那么與RS等價的關系代數表達式是______。

    A.σ3=5(RS)

    B.π1,2,3,6 (σ3=5(RS))

    C.σ3=5∧2=4 (R×S))

    D.π1,2,3,6 (σ3=2∧2=1 (R×S))

  • 浮點數的表示范圍和精度取決于______。

    A.階碼的位數和尾數的位數

    B.階碼采用的編碼和尾數的位數

    C.階碼的位數和尾數采用的編碼

    D.階碼采用的編碼和尾數采用的編碼

  • 兩個不同類型的計算機網絡能相互通信是因為( )

    A.他們都符合OSI模型

    B.他們都使用TCP/IP

    C.他們都使用兼容的協議組

  • 我國計算機信息系統實行______保護。(單選)

    A.主任值班制

    B.安全等級

    C.責任制

    D.專職人員資格

×
驗證
广西快乐双彩开奖30期