基于LabVIEW的列车自主选座系统的设计
2021-07-18彭爱泉曲行达
彭爱泉,曲行达
(贵州交通职业技术学院机械电子工程系,贵州贵阳,550000)
LabVIEW 是一种图形化编程语言,编辑语言G 编写程序,产生的程序是框图的形式,它广泛地被各界所接受,视为一个标准的数据采集和一起控制软件。
本设计,用户可以根据出发时间、出发起始站和目的站选择需要购买的列车班次,用户在选择购买的班次后输入用户的个人信息,系统根据用户输入的信息,提示用户可以选择的铺位是哪种(上、中、下铺),用户根据提示选择票种,点击确定完成此次购票。基于LabVIEW 软件对列车卧铺铺位自主选票系统进行开发设计,以便更好的运用在群众中,使得购票系统的结构完整化、智能化,解决网上订票系统不能自主选择铺位的问题。
1 系统功能
根据乘车用户提供的身份信息和所选择的目的地、班次及铺位,设计一个列车自主选铺程序,完成程序设计、画面制作、系统运行调试。
第一次使用自动购票系统需要注册账号信息,将自己的姓名和身份证号码录入系统。用户信息的注册界面如图1 所示[1]。
图1 用户信息注册界面
注册成功后则可以登录购票系统,登录界面如图2 所示。
图2 登录界面
登录进系统以后,用户操作过程有四个步骤:车票查询、列车信息列表、选择列车信息和选择乘客。操作过程如图3所示。
图3 操作过程
2 系统设计流程框图
列车自主选铺这个系统,核心要解决的问题是网上售票。涉及到2 个角色使用该系统:用户、铁道部。用户的核心诉求是查询余票、购票;铁道部的核心诉求是售票。购票和售票其实是一个场景,对用户来说是购票,对铁道部来说是售票。因此,我们要设计一个在线的网站系统,解决用户的查询余票、购票,以及铁道部的售票这3 个核心诉求。看起来,这3 个场景都是围绕火车票展开的。
查询余票:用户输入出发地、目的地、出发日三个条件,查询可能存在的车次,用户可以看到每个车次经过的站点名称,以及每种座位的余票数量。购票:购票分为订票和付款两个阶段。一张票的核心信息包括:出发时间、出发地、目的地、车次、座位号。持有票的人就拥有了一个凭证,该凭证表示持有它的人可以坐某个车次的某个座位号,从某地到某地。
系统启动以后获取用户信息,并将信息引入while loop 函数中,此时loop 函数中会有数据分析对比,将按照年龄的大小来进行对应铺位的分析,如果说输入的信息被判定为老年人,则系统在后面推荐的铺位里面会提示是否优先选择下铺;若输入的信息被判定为年轻人,则系统在后面推荐的铺位里面会提示是否优先选择上铺,其次是中铺;若输入的信息被判定为儿童,则系统在后面推荐的铺位里面会提示不能购票,需要添加成人信息,合并购票。
系统提示是否开始购票,选择购票以后系统获取用户信息,索引数组列出车票信息,最后选择购票人并确认购票提示信息,即购票成功。系统实际流程框图如图4 所示。
图4 系统设计流程框图
3 根据要求进行Labview 程序设计
根据现有网上购票系统用户购买卧铺的方式,本列车自主选铺系统,用户可以根据出发时间、出发起始站和目的站选择需要购买的列车班次,用户在选择购买的班次后输入用户的个人信息,系统根据用户输入的信息(身份证号码、残疾人证、县级以上医院开具的 伤病证明等),提示用户可以选择的铺位是哪种(上、中、下铺),用户根据提示选择票种,点击确定完成此次购票。用户还可以根据购买时输入的个人信息查询到所购买的车票的基本信息,如果用户取消出行,可以选择退票模块进行退票操作,用户同时可以根据目的站和出发站和出发时间查询到当天此条线路的列车的发车时间,票价和余票数等。
根据要求进行Labview 程序设计,首先打开开发环境,进入项目浏览器,在项目浏览全球窗口,建立新项目,然后在我的电脑-新建-VI,新建VI 后,弹出两个窗口,即前面板和程序面板,保存VI 并左右两栏显示[2]。
新建文件以后添加程序,获取乘车用户的座次信息跟列次信息并引入WhileLoop,在whileloop 中添加两个布尔开关,一个为确认购票,一个为放弃购票,再次从whileloop 中套用Eventsteucture,当用户点击放弃购票后则退出Eventsteucture,通过单按钮对话框函数检测用户确认点击放弃后返回主页面直接显示余票及座次信息;点击确认购票后进入下一个条件循环:检测是否选择好出发地、目的地及张数,若没有选择好出发地、目的地及张数则通过连接字符串弹出单按钮对话框提醒乘客进行选票,若已选好,则根据索引数组计算出票价并进入下一条件结构判断乘车用户选择的行程是否在该列车内及是否还有余票,若已选好,则通过列次信息、剩余票用二维数组转置、替换数组子集、删除数元素、索引数组及十进制数字符串至数值转换等函数计算出乘车用户所选择的行程是否在该列车行程内,如果不在该行程内,则通过连接字符串弹出单按钮对话框提醒乘车用户重新选择,若乘车用户选择的行程在该次列车内,通过十进制索引数组、分数/指数字符串至数值转换、数值至十进制数字符串转换、替换数组子集等函数所得数值引入ForLoop 判断出余票数是否少于所需,若没有余票则通过双按钮对话框函数计算并提示用户没有余票需重新选择起点站、终点站或张数;或者查看余票库,若还有余票则根据录入信息,通过条件结构划分乘客中是否存在老、弱、病、残、孕等特殊人群,若存在,则该特殊人群优先选择下铺,若无特殊人群,则通过随机数根据余票随机分配座次,并检查该座次是否一直无人,将所得数值引入下一条件结构,更新座次,用0 表示该座次已被订购,最后将所有数据通过连接字符串函数汇总后,弹出双按钮对话框提醒乘车用户确认购票信息,一个为确认信息,一个为重新编辑,若乘车用户点击重新编辑则对话框关闭,乘车用户重新填写信息,若点击确认信息,则购票成功,并返回主页面显示车票信息。
4 系统调试
用户先注册信息,然后根据注册的信息登录系统,选择购票选项后,输入出发地和目的地,选择好出发时间以后点击查询车票,在车票列表中选择合适的车次,最后添加乘车人以后就可以确认购票了。这样基于Labview 的自动选座系统设计完成。点击退出按钮,系统即可退出运行。