实例分析3——售票机控制程序
实例分析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】
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
