實例分析3——售票機控制程序
某運輸公司決定爲新的售票機開發車票銷售的控制軟件。圖I給出了售票機的面板示意圖以及相關的控制部件。
圖I 售票機面板示意圖
售票機相關部件的作用如下所述:
(1) 目的地鍵盤用來輸入行程目的地的代碼(例如,200表示總站)。
(2) 乘客可以通過車票鍵盤選擇車票種類(單程票、多次往返票和座席種類)。
(3) 繼續/取消鍵盤上的取消按鈕用於取消購票過程,繼續按鈕允許乘客連續購買多張票。
(4) 顯示屏顯示所有的系統輸出和用戶提示信息。
(5) 插卡口接受MCard(現金卡),硬幣口和紙幣槽接受現金。
(6) 打印機用於輸出車票。
(7) 所有部件均可實現自檢並恢復到初始狀態。
現採用面向對象方法開發該系統,使用UML進行建模,繪製該系統的初始類圖。
參考解決方案:
參考類圖如下:
類說明:
類 名 |
說 明 |
Component |
抽象部件類,所有部件類的父類 |
Keyboard |
抽象鍵盤類 |
ActionKeyboard |
繼續/取消鍵盤類 |
TicketKindKeyboard |
車票種類鍵盤類 |
DestinationKeyboard |
目的地鍵盤類 |
Screen |
顯示屏類 |
CardDriver |
卡驅動器類 |
CashSlot |
現金(硬幣/紙幣)槽類 |
Printer |
打印機類 |
TicketSoldSystem |
售票系統類 |
方法說明:
方法名 |
說 明 |
Component 的init()方法 |
初始化部件 |
Component 的doSeltTest()方法 |
自檢 |
Keyboard的getSelectedKey()方法 |
獲取按鍵值 |
ActionKeyboard的getAction()方法 |
繼續/取消鍵盤事件處理 |
TicketKindKeyboard的getTicketKind()方法 |
車票種類鍵盤事件處理 |
DestinationKeyboard的getDestinationCode()方法 |
目的地鍵盤事件處理 |
Screen的showText()方法 |
顯示信息 |
CardDriver的getCredit()方法 |
獲取金額 |
CardDriver的debitFare()方法 |
更新卡餘額 |
CardDriver的ejectMCard()方法 |
退卡 |
CashSlot的getCredit()方法 |
獲取金額 |
Printer的printTicket()方法 |
打印車票 |
Printer的ejectTicket()方法 |
出票 |
TicketSoldSystem的verifyCredit()方法 |
驗證金額 |
TicketSoldSystem的calculateFare()方法 |
計算費用 |
轉自:http://blog.csdn.net/lovelion/article/details/7843437 劉老師