1、是车次编号CarType数字否客车型号PlateNumber车牌号CarHolder责任人RunningWay经营路线SeatLimit座位限额OutSetTime日期/时间发车时间表2.2 Seat表详细设计Date时间/日期日期Terminal终点站Selled是/否票是否售出Price车票价格表2.3 PriceDiscount表详细设计RecordNumber自动编号记录号TicketTypeID车票类型Discount折扣车次表2.4 Price表详细设计TerminalID终点站编号OutStation起始站TerminalNameTNPYCode拼音码TicketPrice票价表
2、2.5 Type表详细设计RecordID车票类型编号TicketType4.2.5 数据库设计本车站售票系统有两个实体,分别是车票和顾客,利用SQL建表如下:车票顾客4.2.6系统软件结构1.系统功能设计汽车站售票管理系统主要设有五个主要功能模块:分别是车次管理、票价管理、票务管理、用户管理和查询管理。如图4-1所示。2.车次管理模块该模块主要实现车次信息的编辑。车次管理中的数据源为Access数据库中Car表,在此管理部分中,能够使用界面操作实现车次信息的编辑,并将数据库中的数据按照编辑的要求来及时更新数据表中的相关数据。3票价管理模块该模块主要实现票价信息的录入、修改与删除以及票价折扣信
3、息的录入、修改与删除。 票价详细信息的录入、修改、删除,它的数据源为Access数据库的Price表。在此管理部分中,通过票价管理(FrmPriceManage)界面来选择记录并决定执行何种操作,是修改、添加或删除。当命令为修改或者添加时则自动跳转到票价编辑窗体(FrmPriceEdit)实现票价信息的编辑并更新数据库中相应数据记录。4票务管理模块票务管理部分实现前台售票、前台退票功能。主要完成售票、远程售票、废票、取消废票功能、改签票、退票、取消退票功能、补票、售票查询和票款结算单填写等功能。5用户管理模块该模块主要实现用户添加,用户信息修改与用户的删除。所有系统用户的管理,包括系统普通用户
4、与系统管理员。此管理模块数据源为Access数据库的Users表。在系统主界面中首先进入的是名称为FrmUserMan的用户管理主窗体,通过提取用户名、用户类型来查看用户具体信息,选择添加或删除用户进入名为FrmUserEdit的用户编辑界面进行操作,操作完成便更新数据库数据。6查询管理模块 该模块主要实现拥护通过查询界面可以根据条件进行车次时刻、车次票价查询。 4-1功能模块图4.2.7其他需求汽车站售票系统数据库中的数据量十分庞大,而且更新速度十分快。在数据大小方面要求数据的属性要设置合理,假如是数据的属性值越大,则数据本身所占用的容量也就十分的庞大,不但会造成传输的不方便甚至错误,也更加
5、重系统的负担,有可能削弱系统运行速度,使得系统无法达到预期的目的。另外,在整个系统当中要确保数据在保存与传递过程中的安全,以免发生严重的错误,造成巨大的损失。4.2.8说明售票 正常出售本站所有车次车票,并按要求打印出车票。远程售票 正常出售远程车站所有车次车票,并按远程车站的要求打印出车票。废票 在正常售票过程中, 可能因操作失误或打印机械故障等原因造成错票而作废车票。取消废票 当废票时,发现废的票是不应该废的,即为正常票,需要通过取消废票来实现。远程废票 对所售远程车票作废票处理。退票 在正常退票时间内办理退票,并根据退票规定收取一定的手续费。远程退票 对所售远程车票作退票处理。取消退票
6、当退票时,发现退的票是不应该退的,即为正常的票,需要通过取消退票来实现。改签票 由于乘客或车站某种原因需对已出售的车票作更换车次的车票。改签仅允许改签一次。远程改签票 对所售远程车票作改签处理。注销票 删除某些由于调试程序所用的票记录及其影响。补票 只能在超过售票时限后进行,且在未发车之前,在统计时注意对非微机售票的票的处理(例如:剪刀票)。售票查询 通过一定的授权和设定售票员可以查询在设定时间范围内或多少张票以前的出售、作废、改签和退票的情况,并对有权限的人员可有累计票款服务。票款结算单 售票员每天售完车票后填写每日结算单,以便财务人员查询。重打车票 在正常售票过程中, 可能因打印机械故障等
7、原因造成错票而重新打印车票。售票类型 车票中所有联都应有的信息为车次、起止站点、票价、发车日期时间,而正联所特有的信息为售票员工号、检票口、是否改签票、车票上应有的信息:车票固有票号、计算机打印的票号、票号条形码(仅用于自动检票的车站)。(2)车票类型 1)正常班次车票:发售的当天或预售正常轮班车次的车票。2)远程售票:发售远程车站车次的车票,其打印格式同远程车站。3)流水班次车票:发售的流水班次车票。4)退票和改签票:退票分为 A、正常退票。办理标准规定退票时间内的退票。B、强行退票。在超过时限后退票,即强行退票。补票:补票只能在超过售票时限后进行,且必须在未发车之前。订票:设定定票有效期限
8、,在有有效时限保留座位,有效时外释放座位等。票种的定义 全价票 半价票 允许设定可用标志,自由定义名称。免票 只允许设定可用标志。优惠票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 Th
9、en请输入发车时间 txtOutTime.SetFocus 把用户录入的数据赋值到数据库对象变量中 With MyType .CarID = MakeStr(txtCarID) .OutSetTime = MakeStr(TimeEdit) .RunninWay = MakeStr(WayEdit) .CarType = MakeStr(TypeEdit) 车辆类型 .PlateNumber = MakeStr(CNnEdit) .CarHolder = MakeStr(HolderEdit) .SeatLimit = MakeStr(LSeatEdit) 额定座位根据变量Modify决定是插
10、入新数据,还是修改已有的数据 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.txtTicketPr
11、ice = FrmPriceEdit.Modify = False FrmPriceEdit.VarTermanalID = OriTerminalID FrmPriceEdit.Show RefreshDataEnd Sub5.1.3用户管路模块代码实现(编辑窗体代码): If Trim(txtUserName) = Then请输入用户名 txtUserName.SetFocus If Len(txtPass) 5 Then密码长度不能小于5 txtPass.SetFocus txtPass.SelStart = 0 txtPass.SelLength = Len(txtPass2) If
12、txtPass txtPass2 Then密码和确认密码不相同,请重新确认txtPass2.SetFocus txtPass2.SelStart = 0 txtPass2.SelLength = Len(txtPass2)判断是否存在同名用户 With MyUser If Modify = False Or OriUser = 3 Then您已经三次尝试进入本系统,均不成功,系统将关闭 DBapi_Disconnect End Else Exit Function判断密码是否正确 MyUser.GetINfo (NameKey) If MyUser.Pwd 4 Then拼音码过长,无效! El
13、seIf Len(CarID) = 0 Then请输入车次编号! ElseIf IsNumeric(Number) = False Then车次编号应为数字! txtCarID.Text = rsdata.Closeselect 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, , , adCmdText 统计本车次的剩余的座位数 rsdata.MoveFirst left = rsdata!total If left = 0 Then本车次已经客满! ComboSNno.Text = txtTNPYCode.Text = Trim(txtCarID) & rsdata.AddNew rsdata!Date = comdateSeat = comSNnoCarID = CarIDTNPYCode = TNPYCodesno = Trim(seatnumber) rsdata.Update 添加新记录更新 Seat 表 ,将刚卖出的座
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1