| 网站首页 | 技术文章 | 专业论文 | PLC可编程 | 单片机 | 变频器 | 传感器 | 嵌入式系统 | 电源技术 | 运动与伺服 | 
 | 校园招聘 | 留言板 | 
您现在的位置: 自动化学习网 >> 专业论文 >> 自动化论文 >> 文章正文 用户登录 新用户注册
[图文]用Visual Basic开发公园售票系统软件           ★★★ 【字体:
用Visual Basic开发公园售票系统软件
作者:佚名    文章来源:本站原创    点击数:    更新时间:2007-3-20    

一、前言
  当前的公园售票系统几乎全部都是人工售票,不仅消耗人力、效率低下,而且不利于统计、管理。往往在节假日来临时,形成人们排队等候买票的场面。使用计算机售票之后,大大提高了工作效率;同时也杜绝了因为伪造门票而造成的损失,减少了财务漏洞。使用本软件还能够快速、精确统计售票信息和实时查询票务及游客流量情况。
由于公园门票的种类比较多,即有大门票、海洋馆、水下世界、鸟语林这类单种门票,也有这几种门票的相互组合,形成种类繁多的票种,另外还有领导授权票,招待票,儿童票和学生半价票等特殊票种,如果进行人工统计,工作量非常大,通过使用本软件后,可以随时查询并打印当前任何票种的售票量和人数,这样可以根据实际情况随时调整票价,利于管理。

二、系统简介
  本软件主要由三部分组成:数据库部分、界面部分PLC控制部分。如图(一)所示。



软件的最上层使用Visual Basic开发,数据库部分使用SQL Server数据库,PLC采用松下PLC,其中,Visual Basic与SQL Server之间采用ADO连接,Visual Basic与PLC通过串行通讯控件Mscomm.ocx进行通讯。
1.数据库部分
  根据客户的反馈,公园的日客流量一般在每日5,000人左右,在节假日时人数在30,000人左右,为了以防万一,我们假设数据库的最大容量为100,000,经过分析比较各种数据库设计软件,决定数据库部分采用微软的SQL Server,既可以满足数据的需求,速度也不慢,并且微软可以提供给我们最好的支持。

2.界面部分
  界面部分使用Visual Basic进行编程,Visual Basic是当今最为流行的编程软件之一,使用简单,是初学者的最佳选择;而且使用Visual Basic开发软件周期短,能在短时期内制作出功能强大、使用方便的软件。同时,选择Visual Basic和SQL Server是大多数程序员开发客户/服务器软件时的选择。

3.PLC部分
  这是一种目前非常主流的控制方法,由PLC作为控制单元,控制的对象为检票机的各种动作,如票的传动机构、开关门、步进电机打孔、判断是否为儿童等。控制程序的编写采用梯形图的编写软件。
上位机和PLC的通讯程序采用Visual Basic编写,由一台计算机同时控制2—10台检票机,通讯协议采用RS485,由于所选PLC只能支持被动的通讯方式,所以在本系统中使用由计算机轮巡的操作方式。

三、软件实现
  Visual Basic是当前最流行的开发软件之一,它界面友好,使用简单,易于学习,开发周期短,在不设计底层开发的情况下,完全可以开发出功能强大的软件。同时,Visual Basic提供了丰富的API函数,可以弥补它的不足之处。根据客户的需求,我们将售票系统分为四大部分:售普通票窗口,售特殊票窗口,出纳端和管理端。其中,售普通票端只能出售像大门这些单种门票及各种门票的组合票;售特殊票端不仅可以售普通票,还可以售儿童票、学生票、领导授权票(价格由领导决定)和招待票(用于招待某些人或军人、残疾人等)等特殊票种;出纳端是用于当每日结束时,各个售票窗口的售票员将当日所卖的钱交到出纳端,出纳端可以查询单个售票员的售票数和应交的金额数,确认收款后,打印收款单据;管理端的权限最大,可以用来设定票价,增加票种,分配领导授权票和领导票,打印日统计、月统计、年统计的报表。下面分别给予介绍
1.售普通票端
  普通票的种类可以由管理端来添加和删除,程序启动时,首先显示登录界面,通过建立一个ADO对象连接到服务器上,从服务器传递过来普通售票员的记录,添加到ComboBox控件中,为了加快速度,一次将所有普通售票员的编号、姓名和密码全部读取到客户机上,讲这些信息保存到临时数组中,当选择不同的售票员时,从数组中提取出相应的密码,这样就不用每一次都从服务器端传递数据,有利于节省时间和提高运行速度。
  进入主售票界面后,首先在Form_Load事件中选择所有的普通票票种,跟登录界面一样,一次性将所有的普通票的票种、票价、票的属性及类型都保存到临时数组中。选择不同的票种,从相应的数组中提取出相应的票价和票的属性,显示到右边的界面上。这时执行写卡指令,让写卡器处于写卡状态,然后售票员就可以开始刷卡售票了,刷完后,自动显示已经刷了几张卡、应付金额数;输入收款金额后,自动显示应找回的金额数,最后确认卖票,完成一次售票工作。当售票员完成一日的售票工作后,可以进行当日售票的查询,查询方式根据客户的需求,我们设置了位置查询和票种查询两种查询方式。其中,因为售票员的售票位置是不确定的,因此位置查询用于查询售票员在某个地方的售票数;而票种查询则是根据不同的票种来查询售票员的售票情况。同时,我们使用HTMLHELP制作了CHM帮助文件,当售票员有什么地方不会使用时,可以随时使用帮助。

2.出纳端
  出纳端的目的是用来收取售票员的交款。首先也需要输入正确的密码才能成功登录,只是这次从服务器端返回的是出纳员的记录,登录后,出纳员可以选择两种方式来查询:查询售票员的售票情况和查询售票员的交款情况。第一种是用来当售票员来交款时,出纳员需要查询该售票员需要交多少钱,总共卖了多少票,输入该售票员的交款数额后,确认并打印收款凭证。第二种情况适当所有的售票员(或其中一部分)交款完毕后,打印出所有售票员的交款情况。

3.管理端
  管理端的情况就比较复杂了,管理端不仅可以设置票价、添加票种、增删售票员之外,还可以查询当日、当月的售票记录,并可以生成报表打印。在软件制作的过程中,管理端花费的时间也是最多的。

四、编程过程中的问题及解决方法
1.连接数据库
  在连接数据库的各种方法中,使用ADO是最常见的一种,一般都使用ADO控件进行数据库的连接,但是使用控件需要花费的资源比较多,因此,我们在程序中都采用代码的形式进行连接数据库。示例代码如下:
Public cn As ADODB.Connection
Public adoRS As ADODB.Recordset
Set cn = New ADODB.Connection
Set adoRS = New ADODB.Recordset
cn.ConnectionString = "driver={SQL Server};server=cjy;uid=sa;pwd=;database=DLHTLY"
cn.Open
'adors.'指示编辑过程中对记录使用的锁定类型。
adoRS.LockType = adLockOptimistic
'指示在 Recordset 对象中使用的游标类型,使运行速度最快
adoRS.CursorType = adOpenKeyset
读者最好将这些代码编为一个函数,在需要调用的时候,直接调用该函数即可。

2.插入及查询数据
向数据库中插入数据,有下列几种方法:
①使用结构化查询语句SQL
②使用ADO对象的Addnew方法
  第一种方法不仅能够节省代码的输入量,而且能够以最快的速度插入到数据库中;第二种方法使用起来比较方便,而且在调试时可以很方便地查找出插入错误的代码位置。因此,我们建议在调试时使用  第二种方法,最后在生成可执行程序时再改为第一种方法。
示例如下:
第一种方法
strSQL = "insert into DL_Tickets values('" & resticknum & "','" & TempIDKind(ii) & "'," & Val(lblPrice.Caption) & ",'" & FormatDateTime(Now, vbShortDate) & _
"','" & FormatDateTime(Now, vbLongTime) & "','" & FormatDateTime(Now, vbShortDate) & "','" & LoginPlace & "','" & LoginUserID & "','" & TempCheckProperty(ii) & "')"
cn.Execute strSQL
第二种方法
'添加新数据
adoRS.AddNew
adoRS("Ticket_No") = resticknum
adoRS("ID_Kind") = TempIDKind(ii)
adoRS("Ticket_Price") = lblPrice.Caption
adoRS("Sell_Date") = FormatDateTime(Now, vbShortDate)
adoRS("Sell_Time") = FormatDateTime(Now, vbLongTime)
adoRS("Checket_Date") = FormatDateTime(Now + 3, vbLongTime)
adoRS("Sell_Place") = LoginPlace
adoRS("ID_Operator") = LoginUserID
adoRS("Check_Property") = TempCheckProperty(ii)
adoRS.Update

3.报表
  制作报表有两种方式,一种是使用Visual Basic自带的Data Enviroment(即数据环境),另一种是Crystal Report(即水晶报表)。数据环境使用比较简单,但是功能有限,只能够简单地将数据库中的数据筛选出来,数据环境集成于Visual Basic中,不再需要额外安装;水晶报表是一种功能强大的制作报表的软件,需要额外安装,一般在Visual Basic安装盘的Tool目录下都有,使用水晶报表不仅可以做简单的数据浏览的报表,而且可以做交叉表、统计表和图表等。最重要的是,水晶报表在Visual Basic.NET(通常说的Visual Basic7.0)中已经成为默认的制作报表的工具。

4.制作帮助文件
  帮助文件有两种格式:.hlp文件和.chm文件。在现在的大部分软件的帮助文件都是.chm文件,.hlp文件在Win95/98系统中多见。一般来说,.hlp文件需要先在Word或写字板中编辑好(需要设定特定的格式)保存为.rtf格式,然后在Html Help WorkShop中进行编译生成,最后在Visual Basic中调用,调用方法也比较简单,设定CommonDialog控件的HelpFile属性就可以了。而.chm文件需要首先使用FrontPage等网页编辑软件首先编辑好.htm文件,最后在Html Help WorkShop编译生成,也可以在Html Help WorkShop中编辑.htm文件。

五、结束语
  本软件采用了磁卡作为门票,并对每张门票进行加密处理,由验票系统自动对门票进行识别,从而杜绝了假票和人为因素,减少了不必要的损失。并且本系统采用计算机控制和管理极大地提高了工作效率和管理水平。能够实时、准确地查询和统计门票发行的数量、销售额、类别、时间及流量,并可打印日、周、月、季、年报表,便于审核即科学化决策。

六、感谢
  在软件的编写过程中,得到了机械科学研究院的查振元高级工程师的帮助,在此表示感谢!


[参考文献]
[1] E.Winemiller,J.Roff著 ,Visual Basic6.0数据库开发,清华大学出版社,1999年。
[2] Visual Basic开发手册,机械工业出版社。
[3] Visual Basic6.0编程与实例解析,科学出版社。
[4]常斗南著,可编程序控制器原理•应用•实验,机械工业出版社,1998年。
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      最新热点   最新推荐   相关文章
    三相异步电动机智能化节能器…
    高线自动打包机PLC控制系统
    基于组态软件的等离子熔积直…
    基于RTLinux系统低杂波数据采…
    天然气调压站智能监控系统的…
    关于网络仪表的思考
    恶劣环境下晶闸管强触发脉冲…
    新一代HMI引领FA/PA步入网络…
    Y355—4电动机故障分析及处理
    PCI总线技术概论
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)