实例分析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
时间: 2024-10-08 08:44:17