ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:142.20KB ,
资源ID:10919079      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10919079.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汽车售票系统详细分析.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汽车售票系统详细分析.docx

1、汽车售票系统详细分析第4章 详细设计4.1结构程序设计4.2人机界面设计4.2.1设计问题1. 系统响应时间2. 用户帮助设施3. 出错信息处理4. 命令交互4.2.2处理过程车票汇总:工作人员将一天所售出的票进行统计,包括票数,票类,形成确定的车票记录。查询:将顾客需要的车票信息输入系统,并查询其是否可供应。查询顾客信息:为订票所设,将顾客的准确信息记录,为其预定所车票。处理买票:进行买票交易,把顾客需要的票(可供应)售出,并在系统中作相应记录,确定车票记录。处理订票:进行订票交易,工作人员为顾客预定其所需车票,并在系统中作相应记录,确定订票记录。处理退票:进行退票交易,工作人员为顾客办理退

2、票手续,并在系统中作相应记录,确定退票记录。 4.2.3关系模型:车票与顾客之间的联系售票 1:N车票(票号,车次,日期,车型,票价,开车时间,票种,座位号,起始站,终点站)顾客(身份证号,银行卡号,票号)退票1:N车票(票号,车次,日期,车型,票价,开车时间,票种,座位号,起始站,终点站)顾客(身份证号,银行卡号,票号,退票时间,退票手续费)订票1:N车票(票号,车次,日期,车型,票价,开车时间,票种,座位号,起始站,终点站)顾客(身份证号,银行卡号,票号,日期,交易时间,交易金额,数量,起始站,终点站)4.2.4数据库结构表2.1 Car表详细设计字段名数据类型是否主键是否必填字段说明Ca

3、rID文本是是车次编号CarType数字否否客车型号PlateNumber文本否是车牌号CarHolder文本否否责任人RunningWay文本否否经营路线SeatLimit数字否是座位限额OutSetTime日期/时间否是发车时间表2.2 Seat表详细设计字段名数据类型是否主键是否必填字段说明CarID文本否是车次编号Date时间/日期否是日期Terminal文本否是终点站Selled是/否否否票是否售出Price数字否是车票价格表2.3 PriceDiscount表详细设计字段名数据类型是否主键是否必填字段说明RecordNumber自动编号是是记录号TicketTypeID数字否是车票

4、类型Discount数字否是折扣CarID文本否是车次表2.4 Price表详细设计字段名数据类型是否主键是否必填字段说明TerminalID文本是是终点站编号OutStation文本否否起始站TerminalName文本否是终点站TNPYCode文本否是拼音码CarID文本否是车次编号TicketPrice数字否是票价表2.5 Type表详细设计字段名数据类型是否主键是否必填字段说明RecordID自动编号是是记录号TicketTypeID数字否是车票类型编号TicketType文本否是车票类型4.2.5 数据库设计本车站售票系统有两个实体,分别是车票和顾客,利用SQL建表如下:车票顾客4.

5、2.6系统软件结构1.系统功能设计汽车站售票管理系统主要设有五个主要功能模块:分别是车次管理、票价管理、票务管理、用户管理和查询管理。如图4-1所示。2.车次管理模块该模块主要实现车次信息的编辑。车次管理中的数据源为Access数据库中Car表,在此管理部分中,能够使用界面操作实现车次信息的编辑,并将数据库中的数据按照编辑的要求来及时更新数据表中的相关数据。3票价管理模块该模块主要实现票价信息的录入、修改与删除以及票价折扣信息的录入、修改与删除。 票价详细信息的录入、修改、删除,它的数据源为Access数据库的Price表。在此管理部分中,通过票价管理(FrmPriceManage)界面来选择

6、记录并决定执行何种操作,是修改、添加或删除。当命令为修改或者添加时则自动跳转到票价编辑窗体(FrmPriceEdit)实现票价信息的编辑并更新数据库中相应数据记录。4票务管理模块票务管理部分实现前台售票、前台退票功能。主要完成售票、远程售票、废票、取消废票功能、改签票、退票、取消退票功能、补票、售票查询和票款结算单填写等功能。5用户管理模块该模块主要实现用户添加,用户信息修改与用户的删除。所有系统用户的管理,包括系统普通用户与系统管理员。此管理模块数据源为Access数据库的Users表。在系统主界面中首先进入的是名称为FrmUserMan的用户管理主窗体,通过提取用户名、用户类型来查看用户具

7、体信息,选择添加或删除用户进入名为FrmUserEdit的用户编辑界面进行操作,操作完成便更新数据库数据。6查询管理模块 该模块主要实现拥护通过查询界面可以根据条件进行车次时刻、车次票价查询。 4-1功能模块图4.2.7其他需求汽车站售票系统数据库中的数据量十分庞大,而且更新速度十分快。在数据大小方面要求数据的属性要设置合理,假如是数据的属性值越大,则数据本身所占用的容量也就十分的庞大,不但会造成传输的不方便甚至错误,也更加重系统的负担,有可能削弱系统运行速度,使得系统无法达到预期的目的。另外,在整个系统当中要确保数据在保存与传递过程中的安全,以免发生严重的错误,造成巨大的损失。4.2.8说明

8、售票 正常出售本站所有车次车票,并按要求打印出车票。 远程售票 正常出售远程车站所有车次车票,并按远程车站的要求打印出车票。 废票 在正常售票过程中, 可能因操作失误或打印机械故障等原因造成错票而作废车票。 取消废票 当废票时,发现废的票是不应该废的,即为正常票,需要通过取消废票来实现。 远程废票 对所售远程车票作废票处理。 退票 在正常退票时间内办理退票,并根据退票规定收取一定的手续费。 远程退票 对所售远程车票作退票处理。 取消退票 当退票时,发现退的票是不应该退的,即为正常的票,需要通过取消退票来实现。 改签票 由于乘客或车站某种原因需对已出售的车票作更换车次的车票。改签仅允许改签一次。

9、 远程改签票 对所售远程车票作改签处理。 注销票 删除某些由于调试程序所用的票记录及其影响。 补票 只能在超过售票时限后进行,且在未发车之前,在统计时注意对非微机售票的票的处理(例如:剪刀票)。 售票查询 通过一定的授权和设定售票员可以查询在设定时间范围内或多少张票以前的出售、作废、改签和退票的情况,并对有权限的人员可有累计票款服务。 票款结算单 售票员每天售完车票后填写每日结算单,以便财务人员查询。 重打车票 在正常售票过程中, 可能因打印机械故障等原因造成错票而重新打印车票。 售票类型 车票中所有联都应有的信息为车次、起止站点、票价、发车日期时间,而正联所特有的信息为售票员工号、检票口、是

10、否改签票、车票上应有的信息:车票固有票号、计算机打印的票号、票号条形码(仅用于自动检票的车站)。 (2)车票类型 1)正常班次车票:发售的当天或预售正常轮班车次的车票。 2)远程售票:发售远程车站车次的车票,其打印格式同远程车站。 3)流水班次车票:发售的流水班次车票。 4)退票和改签票: 退票分为 A、正常退票。办理标准规定退票时间内的退票。 B、强行退票。在超过时限后退票,即强行退票。 补票:补票只能在超过售票时限后进行,且必须在未发车之前。 订票:设定定票有效期限,在有有效时限保留座位,有效时外释放座位等。 票种的定义 全价票 半价票 允许设定可用标志,自由定义名称。 免票 只允许设定可

11、用标志。 优惠票1-3 允许设定可用标志,自由定义名称。 折扣票 对原票价的基础上进行一定的打折,有严格的权限控制。 5 程序模块设计5.1功能模块详细设计5.1.1 车次管理模块代码实现Private Sub Cmd_OK_Click()检查用户录入数据的有效性If Len(Trim(txtCarID) = 0 Then MsgBox 请输入车次编号 txtCarID.SetFocus Exit Sub End If If Len(Trim(txtOutTime) = 0 Then MsgBox 请输入发车时间 txtOutTime.SetFocus Exit Sub End If 把用户录

12、入的数据赋值到数据库对象变量中 With MyType .CarID = MakeStr(txtCarID) 车次编号 .OutSetTime = MakeStr(TimeEdit) 发车时间 .RunninWay = MakeStr(WayEdit) 经营路线 .CarType = MakeStr(TypeEdit) 车辆类型 .PlateNumber = MakeStr(CNnEdit) 车牌号 .CarHolder = MakeStr(HolderEdit) 责任人 .SeatLimit = MakeStr(LSeatEdit) 额定座位 根据变量Modify决定是插入新数据,还是修改已

13、有的数据 If Modify = False Then .Insert 插入新数据 Else 修改 .Update (nId) 修改已有的数据End IfEnd With Unload Me 关闭窗口5.1.2 票价管理模块代码实现 票价管理部分代码如下(信息添加过程):Private Sub Cmd_Add_Click() 初始化FrmDiscountEdit信息 FrmPriceEdit.txtTerminalName = FrmPriceEdit.txtTNPYCode = FrmPriceEdit.txtCarID = FrmPriceEdit.txtTicketPrice = Frm

14、PriceEdit.Modify = False FrmPriceEdit.VarTermanalID = OriTerminalID FrmPriceEdit.Show RefreshDataEnd Sub5.1.3用户管路模块代码实现(编辑窗体代码):Private Sub Cmd_OK_Click() If Trim(txtUserName) = Then MsgBox 请输入用户名 txtUserName.SetFocus Exit Sub End If If Len(txtPass) 5 Then MsgBox 密码长度不能小于5 txtPass.SetFocus txtPass.S

15、elStart = 0 txtPass.SelLength = Len(txtPass2) Exit Sub End If If txtPass txtPass2 Then MsgBox 密码和确认密码不相同,请重新确认txtPass2.SetFocus txtPass2.SelStart = 0 txtPass2.SelLength = Len(txtPass2) Exit Sub End If 判断是否存在同名用户 With MyUser If Modify = False Or OriUser Trim(txtUserName) Then If .In_DB(Trim(txtUserNa

16、me) = True Then MsgBox 用户名已存在,请重新输入 txtUserName.SetFocus txtUserName.SelStart = 0 txtUserName.SelLength = Len(txtUserName) Exit Sub End If模块中的程序代码如下:Public adoCon As New ADODB.ConncetionPublic adors As New ADODB.Recordset连接数据库Public Sub main() Set adoCon = New ADODB.Connection adoCon.Open = Provider

17、=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & 汽车站售票管理系统.mdb & ;Persist Security Info=False FrmLogin.Show FrmLogin.txtUser.SetFocusEnd Sub5.2 界面设计系统主界面设计如下,主界面顶端显示不同管理模块,点击则进入相应界面。下端显示系统当前所处日期和时间。53附录:系统程序源代码(1)登陆窗体(FrmLogin)代码Public PasswordKey As StringPublic NameKey As StringPublic Try_times

18、As Integer取消键退出登陆界面Private Sub Cmd_Cancel_Click()Unload MeEnd SubPrivate Sub Cmd_OK_Click() 数据库有效性检查If Trim(txtUser) = Then MsgBox 请输入用户名txtUser.SetFocus Exit SubEnd IfIf Trim(txtPwd) = Then MsgBox 请输入密码 txtPwd.SetFocus Exit Sub End IfEnd SubPrivate Function MakeStr() As String NameKey = Str(txtUser

19、) PasswordKey = Str(txtPwd) 判断用户是否存在 If MyUser.In_DB(NameKey) = Flase Then MsgBox 用户名不存在 Try_times = Try_times + 1 If Try_times = 3 Then MsgBox 您已经三次尝试进入本系统,均不成功,系统将关闭 DBapi_Disconnect End Else Exit Function End If End If 判断密码是否正确 MyUser.GetINfo (NameKey) If MyUser.Pwd PasswordKey Then MsgBox 密码错误 T

20、ry_times = Try_times + 1 If Try_times = 3 Then MsgBox 您已经三次尝试进入本系统,均不成功,系统将关闭 DBapi_Disconnect End Else Exit Function End IfEnd If 登陆成功,将当前用户的信息保存在CurUser中 CurUser.UserName = MyUser.UserName CurUser.User_type = MyUser.User_type CurUserEmpID = MyUser.EmpID 关闭自己并显示主窗体 Unload Me FrmMain.ShowEnd Functio

21、n(2)主窗体(FrmMain)代码设置数据库连接字符串Conn = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & 汽车站售票管理系统.mdb & ;Presist Security Info=False系统登陆界面FrmLogin.ShowEnd SubPrivate Sub PJCX_Click()End SubPrivate Sub PJGL_Click() FrmPriceManage.ShowEnd SubPrivate Sub SPGL_Click() FrmTicketSell.ShowEnd SubPriv

22、ate Sub TPGL_Click() FrmBack.ShowEnd SubPrivate Sub XGMM_Click() With FrmUserEdit .OriUser = CurUser.UserName .txtUserName = CurUser.UserName If CurUser.User_type = 1 Then .ComboType.AddItem 系统管理员 Else .ComboType.AddItem 普通用户 End If .ComboType.ListIndex = 0 .ComboType.Enabled = False .Modify = True

23、.Show 1 End WithEnd SubPrivate Sub YHGL_Click() If CurUser.User_type = 1 Then FrmUserMan.Show Else MsgBox 没有权限 End IfEnd SubPrivate Sub ZKGL_Click() FrmDiscount.ShowEnd Sub(3)售票窗体(FrmTicketSell)代码Private Sub Cmd_Cancel_Click() Unload MeEnd SubPrivate Sub Cmd_Search_Click() GridRsfresh 根据条件查询所有信息End

24、SubPrivate Sub Cmd_Sell_Click() Dim ComboDate As String, TNPYCode As String, CarID As String Dim left As Integer Dim seatnumber As String Dim strseat As String Dim ticketinformation As String Dim informationbook As String Dim cost As Long ComboDate = Trim(ComboDate.Text) TNPY = Trim(txtTNPYCode) Car

25、ID = Trim(txtCarID) Dim strcnn init_ado strQuery = Select CarID,OutStation,Terminal,OutSetTime,Date,Sno From Seat join Price on Seat.CarID=Price.CarID Where Seat.date= & _ Trim(ComboDate) & & and Price.TNPYCode= & Trim(txtTNPYCode) & 根据输入的信息,从表里得出查询结果rsdata.Open strQuery, cnnrsdata, , , adCmdText If

26、 rsdata.EOF Then MsgBox 车次或拼音码输入有误,请重新输入!, , Error! ComboDate.Text = TNPYCode = txtCarID = ComboDate.SetFocus ElseIf Len(TNPYCode) = 0 Then MsgBox 请输入拼音码 txtTNPYCode.SetFocus ElseIf Len(TNPYCode) 4 Then MsgBox 拼音码过长,无效! txtCarID.SetFocus ElseIf Len(CarID) = 0 Then MsgBox 请输入车次编号! txtCarID.SetFocus E

27、lseIf IsNumeric(Number) = False Then MsgBox 车次编号应为数字! txtCarID.Text = txtCarID.SetFocus Else rsdata.Close strQuery = select count(*) as total from Seat where Seat.sell=false and Seat.date= & _ Trim(ComboDate.Text) & & and Seat.CarID= & Trim(txtCarID.Text) & rsdata.Open strQuery, cnnrsdata, , , adCmd

28、Text 统计本车次的剩余的座位数 rsdata.MoveFirst left = rsdata!total If left = 0 Then MsgBox 本车次已经客满! ComboDate.Text = ComboSNno.Text = txtTNPYCode.Text = txtCarID.Text = ComboDate.SetFocus Else rsdata.Close strQuery = select count(*) as total from Seat where Seat.sell=false and Seat.date= & _ Trim(ComboDate) & & and Seat.CarID= & Trim(txtCarID) & rsdata.Open strQuery, cnnrsdata, , , adCmdText 统计本车次的剩余的座位数 rsdata.MoveFirst rsdata.AddNew rsdata!Date = comdate rsdata!Seat = comSNno rsdata!CarID = CarID rsdata!TNPYCode = TNPYCode rsdata!sno = Trim(seatnumber) rsdata.Update 添加新记录 更新 Seat 表 ,将刚卖

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1