还剩22页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
河南理工大学万方科技学院课程设计报告2010—2011学年第一学期课程名称数据库系统原理设计题目车站售票管理系统学生姓名王邦政学号0828040051专业班级通信—3班指导教师刘小燕2010年09月25日目录
1、需求求报告分析…………………………………………………………………………
11、1概述…………………………………………………………………………
11、2系统功能分析………………………………………………………………
11、3数据流图……………………………………………………………………
21、4数据字典……………………………………………………………………
32、概念及逻辑结构设计…………………………………………………………………
72、1ER图………………………………………………………………………
72、2关系模式……………………………………………………………………
82、3数据结构……………………………………………………………………
93、数据库设计………………………………………………………………………………
104、系统软件结构设计…………………………………………………………………
114、1系统功能设计………………………………………………………………
114、2其它需求……………………………………………………………………
124、3说明…………………………………………………………………………
125、程序模块设计…………………………………………………………………………
155、1功能模块详细设计…………………………………………………………
155、2界面设计……………………………………………………………………
165、3附录系统程序源代码……………………………………………………16____………………………………………………………………………………………251系统需求分析报告
1.1概述汽车售票管理系统主要用于车站日常的票务处理车售票管理系统在正常运行中需要对使用该系统的主要是汽车站售票人员、汽车站售票工作的管理人员与系统___为达到操作过程中的直观、方便、实用、安全等要求,我们组在这个系统中采用模块化程序设计的方法,便于系统功能的组合和修改,以及扩充和维护1.2系统功能分析根据需求分析,本系统要实现以下的基本功能1.登录功能分为汽车站售票人员和系统___两种权限登陆用户通过输入不同用户名和__进行身份验证,系统通过用户名和__判断不同用户的权限,从而确定该用户可以执行的操作2.车票信息查询功能由汽车站的普通售票人员通过不同的检索入口查询车票信息,并进行排序3.修改功能汽车站售票人员、汽车站售票工作的管理人员能够修改自身的用户名和__,系统___则能实现系统用户与普通用户的添加,修改普通用户与系统___的__,以此确保该系统能够安全操作,避免不必要的损失4.汇总功能对当天车票的信息进行汇总1.3数据流图1.4数据字典
1.数据项票号、票价、车次、日期、车型、开车时间、票种、座位号、起始站、终点站、___号、银行__、数量、退票时间、退票手续费、订票时间、订票手续费2.数据结构表1.1车票的数据结构DS04-01车票DS04-02车票标志DS04-03车次信息DS04-04座位信息DS04-05票价信息I1车票编号I3起始站I8座位号I9全票价I2车票类型I4车次编号I10折扣I5终点站I6发车时间I7乘车日期3.数据流数据流编号D04-01数据流名称车票简述车票有关信息数据流来源用户执行售票操作结果数据流去向购票旅客数据流组成车票编号+车票类型+车次信息+座位信息+票价信息4.数据存储售票记录票号,起始站,终点站,票价,车次,日期,开车时间,车型,票种,座位号,售出时间退票记录票号,起始站,终点站,票价,车次,日期,开车时间,车型,票种,座位号,退票时间订票记录票号,起始站,终点站,票价,车次,日期,开车时间,车型,票种,座位号,订票时间,顾客___号缺票记录票号,起始站,终点站,票价,车次,日期,开车时间,车型,票种车票记录票号,起始站,终点站,票价,车次,日期,开车时间,车型,票种,座位号,售出时间,票数5.处理过程车票汇总工作人员将一天所售出的票进行统计,包括票数,票类,形成确定的车票记录查询将顾客需要的车票信息输入系统,并查询其是否可供应查询顾客信息为订票所设,将顾客的准确信息记录,为其预定所车票处理买票进行买票交易,把顾客需要的票(可供应)售出,并在系统中作相应记录,确定车票记录处理订票进行订票交易,工作人员为顾客预定其所需车票,并在系统中作相应记录,确定订票记录处理退票进行退票交易,工作人员为顾客__退票手续,并在系统中作相应记录,确定退票记录2概念及逻辑结构设计
2.1E-R图本系统根据以上的设计规划出的实体有车票实体、车站实体、顾客实体各个实体具体的描述E-R图如下图2-1车票ER图图2-2顾客ER图图2-3实体之间ER图
2.2关系模型车票与顾客之间的__售票1N车票(票号,车次日期,车型,票价,开车时间,票种,座位号,起始站,终点站)顾客(___号,银行__票号)退票1N车票(票号,车次日期,车型,票价,开车时间,票种,座位号,起始站,终点站)顾客(___号,银行__票号,退票时间,退票手续费)订票1:N车票(票号,车次日期,车型,票价,开车时间,票种,座位号,起始站,终点站)顾客(___号,银行__票号,日期,交易时间,交易金额,数量,起始站,终点站)
2.3数据库结构表
2.1Car表详细设计字段名数据类型是否主键是否必填字段说明CarID文本是是车次编号CarType数字否否客车型号PlateNumber文本否是车牌号CarHolder文本否否责任人RunningWay文本否否经营路线SeatLimit数字否是座位限额OutSetTime日期/时间否是发车时间表
2.2Seat表详细设计字段名数据类型是否主键是否必填字段说明CarID文本否是车次编号Date时间/日期否是日期Terminal文本否是终点站Selled是/否否否票是否售出Pri__数字否是车票__表
2.3Pri__Discount表详细设计字段名数据类型是否主键是否必填字段说明RecordNumber自动编号是是记录号TicketTypeID数字否是车票类型Discount数字否是折扣CarID文本否是车次表
2.4Pri__表详细设计字段名数据类型是否主键是否必填字段说明TerminalID文本是是终点站编号OutStation文本否否起始站TerminalName文本否是终点站TNPYCode文本否是拼音码CarID文本否是车次编号TicketPri__数字否是票价表
2.5Type表详细设计字段名数据类型是否主键是否必填字段说明RecordID自动编号是是记录号TicketTypeID数字否是车票类型编号TicketType文本否是车票类型3数据库设计本车站售票系统有两个实体,分别是车票和顾客,利用SQL建表如下车票顾客4系统软件结构
4.
1.系统功能设计汽车站售票管理系统主要设有五个主要功能模块分别是车次管理、票价管理、票务管理、用户管理和查询管理如图4-1所示1.车次管理模块该模块主要实现车次信息的编辑车次管理中的数据源为Ac__ss数据库中Car表,在此管理部分中,能够使用界面操作实现车次信息的编辑,并将数据库中的数据按照编辑的要求来及时更新数据表中的相关数据2.票价管理模块该模块主要实现票价信息的录入、修改与删除以及票价折扣信息的录入、修改与删除票价详细信息的录入、修改、删除,它的数据源为Ac__ss数据库的Pri__表在此管理部分中,通过票价管理(FrmPri____nage)界面来选择记录并决定执行何种操作,是修改、添加或删除当命令为修改或者添加时则自动跳转到票价编辑窗体(FrmPri__Edit)实现票价信息的编辑并更新数据库中相应数据记录3.票务管理模块票务管理部分实现前台售票、前台退票功能主要完成售票、远程售票、废票、取消废票功能、改签票、退票、取消退票功能、补票、售票查询和票款结算单填写等功能4.用户管理模块该模块主要实现用户添加,用户信息修改与用户的删除所有系统用户的管理,包括系统普通用户与系统___此管理模块数据源为Ac__ss数据库的Users表在系统主界面中首先进入的是名称为FrmUser__n的用户管理主窗体,通过提取用户名、用户类型来查看用户具体信息,选择添加或删除用户进入名为FrmUserEdit的用户编辑界面进行操作,操作完成便更新数据库数据5.查询管理模块该模块主要实现拥护通过查询界面可以根据条件进行车次时刻、车次票价查询4-1.功能模块图4.2其他需求汽车站售票系统数据库中的数据量十分庞大,而且更新速度十分快在数据大小方面要求数据的属性要设置合理,假如是数据的属性值越大,则数据本身所占用的容量也就十分的庞大,不但会造成传输的不方便甚至错误,也更加重系统的负担,有可能削弱系统运行速度,使得系统无法达到预期的目的另外,在整个系统当中要确保数据在保存与传递过程中的安全,以免发生严重的错误,造成巨大的损失4.3说明售票正常出售本站所有车次车票,并按要求打印出车票远程售票正常出售远程车站所有车次车票,并按远程车站的要求打印出车票废票在正常售票过程中,可能因操作失误或打印机械故障等原因造成错票而作废车票取消废票当废票时,发现废的票是不应该废的,即为正常票,需要通过取消废票来实现远程废票对所售远程车票作废票处理退票在正常退票时间内__退票,并根据退票规定收取一定的手续费远程退票对所售远程车票作退票处理取消退票当退票时,发现退的票是不应该退的,即为正常的票,需要通过取消退票来实现改签票由于乘客或车站某种原因需对已出售的车票作更换车次的车票改签仅允许改签一次远程改签票对所售远程车票作改签处理注销票删除某些由于调试程序所用的票记录及其影响补票只能在超过售票时限后进行,且在未发车之前,在统计时注意对非微机售票的票的处理(例如剪刀票)售票查询通过一定的授权和设定售票员可以查询在设定时间范围内或多少张票以前的出售、作废、改签和退票的情况,并对有权限的人员可有累计票款服务票款结算单售票员每天售完车票后填写每日结算单,以便财务人员查询重打车票在正常售票过程中,可能因打印机械故障等原因造成错票而重新打印车票售票类型车票中所有联都应有的信息为车次、起止站点、票价、发车日期时间,而正联所特有的信息为售票员工号、检票口、是否改签票、车票上应有的信息车票固有票号、计算机打印的票号、票号条形码(仅用于自动检票的车站)
(2)车票类型1正常班次车票__的当天或预售正常轮班车次的车票2远程售票__远程车站车次的车票,其打印格式同远程车站3流水班次车票__的流水班次车票4退票和改签票退票分为A、正常退票__标准规定退票时间内的退票B、强行退票在超过时限后退票,即强行退票补票补票只能在超过售票时限后进行,且必须在未发车之前订票设定定票有效期限,在有有效时限保留座位,有效时外释放座位等票种的定义
①全价票
②半价票允许设定可用标志,自由定义名称
③免票只允许设定可用标志
④__票1-3允许设定可用标志,自由定义名称
⑤折扣票对原票价的基础上进行一定的打折,有严格的权限控制5程序模块设计
5.1功能模块详细设计
5.
1.1车次管理模块代码实现PrivateSubCmd_OK_Click检查用户录入数据的有效性IfLenTrim___CarID=0ThenMsgBox请输入车次编号___CarID.SetFocusExitSubEndIfIfLenTrim___OutTime=0ThenMsgBox请输入发车时间___OutTime.SetFocusExitSubEndIf把用户录入的数据赋值到数据库对象变量中WithMyType.CarID=__keStr___CarID车次编号.OutSetTime=__keStrTimeEdit发车时间.RunninWay=__keStrWayEdit经营路线.CarType=__keStrTypeEdit车辆类型.PlateNumber=__keStrCNnEdit车牌号.CarHolder=__keStrHolderEdit责任人.SeatLimit=__keStrLSeatEdit额定座位根据变量Modify决定是插入新数据,还是修改已有的数据IfModify=FalseThen.Insert插入新数据Else修改.UpdatenId修改已有的数据EndIfEndWithUnloadMe关闭窗口
5.
1.2票价管理模块代码实现票价管理部分代码如下(信息添加过程)PrivateSubCmd_Add_Click初始化FrmDiscountEdit信息FrmPri__Edit.___TerminalName=FrmPri__Edit.___TNPYCode=FrmPri__Edit.___CarID=FrmPri__Edit.___TicketPri__=FrmPri__Edit.Modify=FalseFrmPri__Edit.VarTerm____ID=OriTerminalIDFrmPri__Edit.ShowRefreshDataEndSub
5.
1.3用户管路模块代码实现(编辑窗体代码)PrivateSubCmd_OK_ClickIfTrim___UserName=ThenMsgBox请输入用户名___UserName.SetFocusExitSubEndIfIfLen___Pass5ThenMsgBox__长度不能小于5___Pass.SetFocus___Pass.SelStart=0___Pass.SelLength=Len___Pass2ExitSubEndIfIf___Pass___Pass2ThenMsgBox__和确认__不相同,请重新确认___Pass
2.SetFocus___Pass
2.SelStart=0___Pass
2.SelLength=Len___Pass2ExitSubEndIf判断是否存在同名用户WithMyUserIfModify=FalseOrOriUserTrim___UserNameThenIf.In_DBTrim___UserName=TrueThenMsgBox用户名已存在,请重新输入___UserName.SetFocus___UserName.SelStart=0___UserName.SelLength=Len___UserNameExitSubEndIf模块中的程序代码如下PublicadoConAsNewADODB.Conn__tionPublicadorsAsNewADODB.Recordset连接数据库PublicSub__inSetadoCon=NewADODB.ConnectionadoCon.Open=Provider=Microsoft.Jet.OLEDB.
4.0;DataSour__=App.Path\汽车站售票管理系统.mdb;PersistSecurityInfo=FalseFrmLogin.ShowFrmLogin.___User.SetFocusEndSub5.3附录系统程序源代码1登陆窗体(FrmLogin)代码PublicPasswordKeyAsStringPublicNameKeyAsStringPublicTry_timesAsInteger取消键退出登陆界面PrivateSubCmd_Can__l_ClickUnloadMeEndSubPrivateSubCmd_OK_Click数据库有效性检查IfTrim___User=ThenMsgBox请输入用户名___User.SetFocusExitSubEndIfIfTrim___Pwd=ThenMsgBox请输入_____Pwd.SetFocusExitSubEndIfEndSubPrivateFunction__keStrAsStringNameKey=Str___UserPasswordKey=Str___Pwd判断用户是否存在IfMyUser.In_DBNameKey=FlaseThenMsgBox用户名不存在Try_times=Try_times+1IfTry_times=3ThenMsgBox您已经三次尝试进入本系统,均不成功,系统将关闭DBapi_DisconnectEndElseExitFunctionEndIfEndIf判断__是否正确MyUser.GetINfoNameKeyIfMyUser.PwdPasswordKeyThenMsgBox__错误Try_times=Try_times+1IfTry_times=3ThenMsgBox您已经三次尝试进入本系统,均不成功,系统将关闭DBapi_DisconnectEndElseExitFunctionEndIfEndIf登陆成功,将当前用户的信息保存在CurUser中CurUser.UserName=MyUser.UserNameCurUser.User_type=MyUser.User_typeCurUserEmpID=MyUser.EmpID关闭自己并显示主窗体UnloadMeFrm__in.ShowEndFunction
(2)主窗体Frm__in代码设置数据库连接字符串Conn=Provider=Microsoft.Jet.OLEDB.
4.0;DataSour__=App.Path\汽车站售票管理系统.mdb;PresistSecurityInfo=False系统登陆界面FrmLogin.ShowEndSubPrivateSubPJCX_ClickEndSubPrivateSubPJGL_ClickFrmPri____nage.ShowEndSubPrivateSubSPGL_ClickFrmTicketSell.ShowEndSubPrivateSubTPGL_ClickFrmBack.ShowEndSubPrivateSubXGMM_ClickWithFrmUserEdit.OriUser=CurUser.UserName.___UserName=CurUser.UserNameIfCurUser.User_type=1Then.ComboType.AddItem系统___Else.ComboType.AddItem普通用户EndIf.ComboType.ListIndex=
0.ComboType.Enabled=False.Modify=True.Show1EndWithEndSubPrivateSubYHGL_ClickIfCurUser.User_type=1ThenFrmUser__n.ShowElseMsgBox没有权限EndIfEndSubPrivateSubZKGL_ClickFrmDiscount.ShowEndSub
(3)售票窗体(FrmTicketSell)代码PrivateSubCmd_Can__l_ClickUnloadMeEndSubPrivateSubCmd_Search_ClickGridRsfresh根据条件查询所有信息EndSubPrivateSubCmd_Sell_ClickDimComboDateAsStringTNPYCodeAsStringCarIDAsStringDimleftAsIntegerDimseatnumberAsStringDimstrseatAsStringDimticketinfor__tionAsStringDiminfor__tionbookAsStringDimcostAsLongComboDate=TrimComboDate.TextTNPY=Trim___TNPYCodeCarID=Trim___CarIDDimstrcnninit_adostrQuery=SelectCarIDOutStationTerminalOutSetTimeDateSnoFromSeatjoinPri__onSeat.CarID=Pri__.CarIDWhereSeat.date=_TrimComboDateandPri__.TNPYCode=Trim___TNPYCode根据输入的信息,从表里得出查询结果rsdata.OpenstrQuerycnnrsdataadCmdTextIfrsdata.EOFThenMsgBox车次或拼音码输入有误,请重新输入!Error!ComboDate.Text=TNPYCode=___CarID=ComboDate.SetFocusElseIfLenTNPYCode=0ThenMsgBox请输入拼音码___TNPYCode.SetFocusElseIfLenTNPYCode4ThenMsgBox拼音码过长,无效!___CarID.SetFocusElseIfLenCarID=0ThenMsgBox请输入车次编号!___CarID.SetFocusElseIfIsNumericNumber=FalseThenMsgBox车次编号应为数字!___CarID.Text=___CarID.SetFocusElsersdata.ClosestrQuery=selectcount*astotalfromSeatwhereSeat.sell=falseandSeat.date=_TrimComboDate.TextandSeat.CarID=Trim___CarID.Textrsdata.OpenstrQuerycnnrsdataadCmdText统计本车次的剩余的座位数rsdata.MoveFirstleft=rsdata!totalIfleft=0ThenMsgBox本车次已经客满!ComboDate.Text=ComboSNno.Text=___TNPYCode.Text=___CarID.Text=ComboDate.SetFocusElsersdata.ClosestrQuery=selectcount*astotalfromSeatwhereSeat.sell=falseandSeat.date=_TrimComboDateandSeat.CarID=Trim___CarIDrsdata.OpenstrQuerycnnrsdataadCmdText统计本车次的剩余的座位数rsdata.MoveFirstrsdata.AddNewrsdata!Date=comdatersdata!Seat=co___norsdata!CarID=CarIDrsdata!TNPYCode=TNPYCodersdata!sno=Trimseatnumberrsdata.Update添加新记录更新Seat表,将刚卖出的座位号设为falsestrQuery=select*fromSeatwhereSeat.sno=Trimseatnumber_andSeat.date=TrimComboDate_andSeatCarID=Trim___CarIDrsdata.OpenstrQuerycnnrsdataadCmdTextIfrsdata!sell=FalseThenrsdata!sell=Truersdata.UpdateEndIfComboDate=___TNPYCode=___CarID=ComboDate.SetFocuscost=ValAdodc
3.Recordset.Fields3___Charge=Val___Money-ValAdodc
3.Recordset.Fields3EndSub
(4)退票窗体(FrmBack)代码PrivateSubCmdback_ClickDimstrdateAsStringDimstrlineAsStringDimstrseatnoAsStringDimstrTnlAsStringDimresponseAsStringDimticketinfor__tionAsStringstrdate=TrimCombodate.TextstrCarID=Trim___CarID.Textstrseatno=TrimComboSeatno.TextstrTnl=TrimComboTerminal.TextDimstrcnninit_adostrQuery=Select*FromSellTicketWhereSellTicket.date=_TrimCombodate.TextandSellTicket.Sno=TrimComboSNno.Text_andSellTicket.carID=TrimComboCarID.Text检查车票日期、车次和座位是否有效rsdata.OpenstrQuerycnnrsdataadCmdTextIfrsdata.EOFThenMsgBox你所要退的票为无效票或是你的输入有问题!Elsersdata.ClosestrQuery=Select*FromSellTicketWhereSellTicket.date=TrimCombodate.Text_andSellTicket.sno=TrimComboSNno.Text_andSellTicket.CarID=TrimComboCarID.Textrsdata.OpenstrQuerycnnrsdataadCmdTextrsdata.MoveFirstCombodate.Text=rsdata!DateComboSNSno.Text=rsdata!snoComboCarID.Text=rsdata!CarID车票有效,确认日期、车次和座位号,确认是否退票ticketinfor__tion=日期:strdate车次:strCarID座位号:strsnoresponse=MsgBoxticketinfor__tionvbOKCan__l+vbInfor__tion是否真要退票Ifresponse=1Then更改SellTicket表rsdata.ClosestrQuery=select*fromSellTicketrsdata.OpenstrQuerycnnrsdataadCmdTextrsdata.MoveFirstDimiAsIntegerFori=1Torsdata.RecordCountIfrsdata!Date=strdateAndrsdata!sno=strsnoAndrsdata!sno=strseatThenrsdata.DeleteEndIfrsdata.MoveNextNextirsdata.Close将刚退的票设为可卖strQuery=select*fromlinewhereSeat.date=strdate_andSeat.CarID=strCarIDandSeat.sno=strsnorsdata.OpenstrQuerycnnrsdataadCmdTextIfrsdata!book=TrueThenrsdata!book=Falsersdata.UpdateEndIfCombodate.Text=ComboSno.Text=Combodate.SetFocusMsgBox退票已成功!Elsersdata.CloseCombodate.Text=ComboSno.Text=Combodate.SetFocusEndIfEndIfEndSub
(5)折扣管理窗体(FrmDiscount)代码PrivateSubCmd_Add_Click初始化FrmDiscountEdit信息FrmDiscountEdit.___TerminalName=FrmDiscountEdit.___TNPYCode=FrmDiscountEdit.___CarID=FrmDiscountEdit.___TicketPri__=FrmDiscountEdit.Modify=FalseFrmDiscountEdit.VarRecordNumber=OriRecordNumberFrmDiscountEdit.Show1RefreshDataEndSubPrivateSubCmd_Can__l_ClickUnloadMeEndSubPrivateSubCmd_Del_ClickDimTmpIDAsLongIfAdodc
1.Recordset.BOF=TrueThenMsgBox请选择记录ExitSubEndIfTmpID=Adodc
1.Recordset.Fields0IfMsgBox是否删除当前行vbYesNo请确认=vbYesThenCallMyFam.DeleteByIDTmpIDEndIfRefreshDataEndSubPrivateSubCmd_Modi_Click初始化FrmPri__Edit信息FrmDiscountEdit.OriID=Adodc
1.Recordset.Fields0FrmDiscountEdit.___CarID=Adodc
1.Recordset.Fields2FrmDiscountEdit.___TicketTypeID=Adodc
1.Recordset.Fields3FrmDiscountEdit.___TicketType=Adodc
1.Recordset.Fields4FrmDiscountEdit.___Discount=Adodc
1.Recordset.Fields5FrmDiscountEdit.VarRecordNumber=OriRecordNumberFrmDiscountEdit.Modify=TrueFrmDiscountEdit.Show1RefreshDataEndSub
(6)票价信息管理窗体(FrmPri____nage)代码PrivateSubCmd_Add_Click初始化FrmDiscountEdit信息FrmPri__Edit.___TerminalName=FrmPri__Edit.___TNPYCode=FrmPri__Edit.___CarID=FrmPri__Edit.___TicketPri__=FrmPri__Edit.Modify=FalseFrmPri__Edit.VarTerm____ID=OriTerminalIDFrmPri__Edit.ShowRefreshDataEndSubPrivateSubCmd_Can__l_ClickUnloadMeEndSubPrivateSubCmd_Del_ClickDimTmpIDAsLongIfAdodc
1.Recordset.BOF=TrueThenMsgBox请选择记录ExitSubEndIfTmpID=Adodc
1.Recordset.Fields0IfMsgBox是否删除当前行vbYesNo请确认=vbYesThenCallMyFam.DeleteByIDTmpIDEndIfRefreshDataEndSubPrivateSubCmd_Modi_Click初始化FrmPri__Edit信息FrmPri__Edit.___CarID=Adodc
1.Recordset.Fields0FrmPri__Edit.___TerminalName=Adodc
1.Recordset.Fields1FrmPri__Edit.___TNPYCode=Adodc
1.Recordset.Fields2FrmPri__Edit.___TicketPri__=Adodc
1.Recordset.Fields3FrmPri__Edit.Modify=TrueFrmPri__.ShowRefreshDataEndSubPrivateSubCmd_Search_ClickGridREfresh根据条件查询票价信息EndSubPrivateSubForm_LoadGridREfreshEndSub总结本系统的整个设计__是对客票系统网络化的一次的尝试,最后完成的这个系统也只是B/S结构客票系统的一个模型,它的使用对象是市级,比如成都火车站总站做为服务器,成都市内其它的售票窗口做为客户端,如果要__到全国使用,还面临很多问题,比如全国整个铁路系统包括很多分局,各自权限不一样,他们又下属很多结点,但是本系统的设计和实现证明了全国铁路客票系统的网络化是可行的____
[1]高春艳李俊民.VisualBasic信息系统__案例精选[M].北京:机械工业出版社2005
[2]林卓然.VisualBasic程序设计教程[M].北京电子工业出版社,2004
[3]范剑波.数据库技术及应用[M].浙江浙江大学出版社,2007
[4]严辉刘卫国.数据库技术与应用实践教程——SQLSERVER[M].北京清华大学出版社,2007图1-1顶层图图1-20层图图1-3售票1层图顾客售票人员车站售票管理系统购票信息售票信息顶层图购票信息查询可供票处理买票车票车票记录车票汇总缺票记录0层图售票记录购票信息1层图查询可供票处理买票车票售票记录车票记录订票信息查询顾客信息核对后的顾客信息查询可供票处理订票车票订票记录车票记录图1-4订票1层图退票信息处理退票退票记录图1-5退票1层图换票退票时间顾客售票退票票号退票手续费车票新票号原票号换票时间换票手续费订票日期交易时间数量起始站终点站___号交易金额1N1N1N1N。