时间:2024-07-28
吴秀敏,王小兰,陈世斌, 方巍
ATM 机的出现方便了人们的生活,但售票领域至今未出现相似的系统和设备。然而这种系统和设备在生活中却有很大的需求。现实生活中的售票系统的售票过程耗费了大量的人力,但是其效果并不能另人满意,几乎每次买票都需要排很长的队,不管是在车站还是在各个售票点。如果现实生活中有类似ATM机的售票机器,那么购票过程也就不再那么困难了。
整个系统可以设计为一个星形网络,即一个主控机作为服务器连接着多个客户机。客户机运行相同的程序,硬件的配置也基本相同。
系统拓扑结构如图(1)所示
图1 系统总体结构框图
主控机功能:与客户端进行数据交换,建立数据库,进行数据检索,处理和更新等。
客户端功能:与主控机通信,监控客户的操作需求。
主控机程序:串口通信程序,数据检索和处理程序等。
客户端程序:串口通信程序,客户需求处理程序等。
本系统模拟自动购票的过程是:
(1)客户端获取输入的学号和乘车方向信息发送给主控端;
(2)主控端获取学号和乘车方向信息,并通过学生信息中心查询学生的信息,将乘车区间(起点站—终点站)传送给票务中心,票务中心查询相关乘车信息将车次路线信息发送给客户端;
(3)客户端显示车次路线信息;
(4)客户端获取选择的记录号,从车次列表中读取相应车次信息并发送给主控机;
(5)主控机收到车次信息后向客户端发送完整的车票信息(车次、起点站、终点站、发车时间、票价),并发出出票指令;
(6)客户端接收到车票信息和出票指令后,打印车票。
考虑到实际情况的复杂性,本系统主控机和客户端的通信比较复杂。为了方便程序的编写,增加系统的容错性和稳定性,我们设计了主控机和客户端的状态机。
主要工作过程及状态变化是:(1)启动程序,开启通信服务,主控机状态初始化为“等待接收学生学号和乘车方向”状态;(2)等待串口接收数据;(3)串口接收到数据后根据串口协议的设置对接收到的数据进行处理;(4)如果收到学号和乘车方向信息,则查询学生信息数据库得到乘车路线,然后根据乘车路线查询车票信息数据库得到所有包含该乘车路线车次,并将车次信息发给客户端;主控机的状态转到“等待接收车次选择”状态;如果当前状态为“等待接收车次选择”,并且收到了客户端的车次选择信息,则查询车票信息数据库获取对应车次更详细的数据,并将详细信息封装为出票命令发送给客户端,主控机状态转到“等待交易完成”状态;如果当前状态为“等待交易完成”,并且收到了客户端的交易完成信息;则更新车票信息数据库,主控机的状态转到“等待接收学生学号和乘车方向”状态。
1.2.1 主控机的状态机
图(2)所示的状态机形象直观地描述了主控机的工作状态处理过程。
图2 主控机的状态机描述
1.2.2 客户端的状态机
图(3)示出的状态机直观地描述了客户机监控过程。
图3 客户端的状态机描述
系统程序的设计主要体现在主控机和客户机两个方面,下面分别设计主控机和客户机的工作流程。
1.3.1 主控机的程序设计
主控机作为服务器主要负责数据库的管理,并提供查询接口,将查询结果通过串口发送给客户端。程序流程图如图(4)所示。
主控机程序采用MFC单文档形式,程序由MFC函数框架自动完成消息循环,需要编写实现相关功能的消息响应函数的代码,程序中主要的工作是编写菜单的响应函数和串口通信模块的相关代码。
图4 主控机程序流程图
1.3.2 客户机的程序设计
客户机主要负责从客户界面获取输入信息,并将其转换为相应消息格式通过串口发送给主控机,并将主控机的回复信息以一定的方式显示在界面上,可以采用对话框形式。其程序流程图如图(5)所示。
图 5 客户端程序流程图
现在网上销售如此火爆,如果该系统扩展到支持 Web形式,那么可使用网上银行进行网上交易,减少了硬设备的投入,使系统的投资进一步减少。若限制一个账号(学号,工作证号,或身份证号)购票的数目,那么本系统还能够在一定程度上能减少黄牛票,实现公平交易。
[1] 周功业,黄文兰,卢建华.现代微机系统与接口技术,[M] 中山大学出版社,
[2] 王珊,萨斯煊.数据库系统原理概论,[M] 高等教育出版社
[3] 王超龙,陈志华.VC++ 6.0入门与提高,[M] 人民邮电出版社.
[4] 深入浅出VC++串口编程,宋宝华.来自网络.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!