汽车售票系统详细分析Word文件下载.docx

上传人:b****7 文档编号:22702804 上传时间:2023-02-05 格式:DOCX 页数:28 大小:142.34KB
下载 相关 举报
汽车售票系统详细分析Word文件下载.docx_第1页
第1页 / 共28页
汽车售票系统详细分析Word文件下载.docx_第2页
第2页 / 共28页
汽车售票系统详细分析Word文件下载.docx_第3页
第3页 / 共28页
汽车售票系统详细分析Word文件下载.docx_第4页
第4页 / 共28页
汽车售票系统详细分析Word文件下载.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

汽车售票系统详细分析Word文件下载.docx

《汽车售票系统详细分析Word文件下载.docx》由会员分享,可在线阅读,更多相关《汽车售票系统详细分析Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。

汽车售票系统详细分析Word文件下载.docx

车次编号

CarType

数字

客车型号

PlateNumber

车牌号

CarHolder

责任人

RunningWay

经营路线

SeatLimit

座位限额

OutSetTime

日期/时间

发车时间

表2.2Seat表详细设计

Date

时间/日期

日期

Terminal

终点站

Selled

是/否

票是否售出

Price

车票价格

表2.3PriceDiscount表详细设计

RecordNumber

自动编号

记录号

TicketTypeID

车票类型

Discount

折扣

车次

表2.4Price表详细设计

TerminalID

终点站编号

OutStation

起始站

TerminalName

TNPYCode

拼音码

TicketPrice

票价

表2.5Type表详细设计

RecordID

车票类型编号

TicketType

 

4.2.5数据库设计

本车站售票系统有两个实体,分别是车票和顾客,利用SQL建表如下:

车票

顾客

4.2.6系统软件结构

1.系统功能设计

汽车站售票管理系统主要设有五个主要功能模块:

分别是车次管理、票价管理、票务管理、用户管理和查询管理。

如图4-1所示。

2.车次管理模块

该模块主要实现车次信息的编辑。

车次管理中的数据源为Access数据库中Car表,在此管理部分中,能够使用界面操作实现车次信息的编辑,并将数据库中的数据按照编辑的要求来及时更新数据表中的相关数据。

3.票价管理模块

该模块主要实现票价信息的录入、修改与删除以及票价折扣信息的录入、修改与删除。

票价详细信息的录入、修改、删除,它的数据源为Access数据库的Price表。

在此管理部分中,通过票价管理(FrmPriceManage)界面来选择记录并决定执行何种操作,是修改、添加或删除。

当命令为修改或者添加时则自动跳转到票价编辑窗体(FrmPriceEdit)实现票价信息的编辑并更新数据库中相应数据记录。

4.票务管理模块

票务管理部分实现前台售票、前台退票功能。

主要完成售票、远程售票、废票、取消废票功能、改签票、退票、取消退票功能、补票、售票查询和票款结算单填写等功能。

5.用户管理模块

该模块主要实现用户添加,用户信息修改与用户的删除。

所有系统用户的管理,包括系统普通用户与系统管理员。

此管理模块数据源为Access数据库的Users表。

在系统主界面中首先进入的是名称为FrmUserMan的用户管理主窗体,通过提取用户名、用户类型来查看用户具体信息,选择添加或删除用户进入名为FrmUserEdit的用户编辑界面进行操作,操作完成便更新数据库数据。

6.查询管理模块

该模块主要实现拥护通过查询界面可以根据条件进行车次时刻、车次票价查询。

4-1.功能模块图

4.2.7其他需求

汽车站售票系统数据库中的数据量十分庞大,而且更新速度十分快。

在数据大小方面要求数据的属性要设置合理,假如是数据的属性值越大,则数据本身所占用的容量也就十分的庞大,不但会造成传输的不方便甚至错误,也更加重系统的负担,有可能削弱系统运行速度,使得系统无法达到预期的目的。

另外,在整个系统当中要确保数据在保存与传递过程中的安全,以免发生严重的错误,造成巨大的损失。

4.2.8说明

售票

正常出售本站所有车次车票,并按要求打印出车票。

远程售票

正常出售远程车站所有车次车票,并按远程车站的要求打印出车票。

废票

在正常售票过程中,可能因操作失误或打印机械故障等原因造成错票而作废车票。

取消废票

当废票时,发现废的票是不应该废的,即为正常票,需要通过取消废票来实现。

远程废票

对所售远程车票作废票处理。

退票

在正常退票时间内办理退票,并根据退票规定收取一定的手续费。

远程退票

对所售远程车票作退票处理。

取消退票

当退票时,发现退的票是不应该退的,即为正常的票,需要通过取消退票来实现。

改签票

由于乘客或车站某种原因需对已出售的车票作更换车次的车票。

改签仅允许改签一次。

远程改签票

对所售远程车票作改签处理。

注销票

删除某些由于调试程序所用的票记录及其影响。

补票

只能在超过售票时限后进行,且在未发车之前,在统计时注意对非微机售票的票的处理(例如:

剪刀票)。

售票查询

通过一定的授权和设定售票员可以查询在设定时间范围内或多少张票以前的出售、作废、改签和退票的情况,并对有权限的人员可有累计票款服务。

票款结算单

售票员每天售完车票后填写每日结算单,以便财务人员查询。

重打车票

在正常售票过程中,可能因打印机械故障等原因造成错票而重新打印车票。

售票类型

车票中所有联都应有的信息为车次、起止站点、票价、发车日期时间,而正联所特有的信息为售票员工号、检票口、是否改签票、车票上应有的信息:

车票固有票号、计算机打印的票号、票号条形码(仅用于自动检票的车站)。

(2)车票类型

1)正常班次车票:

发售的当天或预售正常轮班车次的车票。

2)远程售票:

发售远程车站车次的车票,其打印格式同远程车站。

3)流水班次车票:

发售的流水班次车票。

4)退票和改签票:

退票分为

A、正常退票。

办理标准规定退票时间内的退票。

B、强行退票。

在超过时限后退票,即强行退票。

补票:

补票只能在超过售票时限后进行,且必须在未发车之前。

订票:

设定定票有效期限,在有有效时限保留座位,有效时外释放座位等。

票种的定义

①全价票

②半价票允许设定可用标志,自由定义名称。

③免票只允许设定可用标志。

④优惠票1-3允许设定可用标志,自由定义名称。

⑤折扣票对原票价的基础上进行一定的打折,有严格的权限控制。

5程序模块设计

5.1功能模块详细设计

5.1.1车次管理模块代码实现

PrivateSubCmd_OK_Click()

'

检查用户录入数据的有效性

IfLen(Trim(txtCarID))=0Then

MsgBox"

请输入车次编号"

txtCarID.SetFocus

ExitSub

EndIf

IfLen(Trim(txtOutTime))=0Then

请输入发车时间"

txtOutTime.SetFocus

'

把用户录入的数据赋值到数据库对象变量中

WithMyType

.CarID=MakeStr(txtCarID)'

.OutSetTime=MakeStr(TimeEdit)'

.RunninWay=MakeStr(WayEdit)'

.CarType=MakeStr(TypeEdit)'

车辆类型

.PlateNumber=MakeStr(CNnEdit)'

.CarHolder=MakeStr(HolderEdit)'

.SeatLimit=MakeStr(LSeatEdit)'

额定座位

根据变量Modify决定是插入新数据,还是修改已有的数据

IfModify=FalseThen

.Insert'

插入新数据

Else'

修改

.Update(nId)'

修改已有的数据

EndIf

EndWith

UnloadMe'

关闭窗口

5.1.2票价管理模块代码实现

票价管理部分代码如下(信息添加过程):

PrivateSubCmd_Add_Click()

初始化FrmDiscountEdit信息

FrmPriceEdit.txtTerminalName="

"

FrmPriceEdit.txtTNPYCode="

FrmPriceEdit.txtCarID="

FrmPriceEdit.txtTicketPrice="

FrmPriceEdit.Modify=False

FrmPriceEdit.VarTermanalID=OriTerminalID

FrmPriceEdit.Show

RefreshData

EndSub

5.1.3用户管路模块代码实现(编辑窗体代码):

IfTrim(txtUserName)="

Then

请输入用户名"

txtUserName.SetFocus

IfLen(txtPass)<

5Then

密码长度不能小于5"

txtPass.SetFocus

txtPass.SelStart=0

txtPass.SelLength=Len(txtPass2)

IftxtPass<

>

txtPass2Then

密码和确认密码不相同,请重新确认"

txtPass2.SetFocus

txtPass2.SelStart=0

txtPass2.SelLength=Len(txtPass2)

判断是否存在同名用户

WithMyUser

IfModify=FalseOrOriUser<

Trim(txtUserName)Then

If.In_DB(Trim(txtUserName))=TrueThen

用户名已存在,请重新输入"

txtUserName.SelStart=0

txtUserName.SelLength=Len(txtUserName)

模块中的程序代码如下:

PublicadoConAsNewADODB.Conncetion

PublicadorsAsNewADODB.Recordset

连接数据库

PublicSubmain()

SetadoCon=NewADODB.Connection

adoCon.Open="

Provider=Microsoft.Jet.OLEDB.4.0;

DataSource="

&

App.Path&

"

\汽车站售票管理系统.mdb"

;

PersistSecurityInfo=False"

FrmLogin.Show

FrmLogin.txtUser.SetFocus

5.2界面设计

系统主界面设计如下,主界面顶端显示不同管理模块,点击则进入相应界面。

下端显示系统当前所处日期和时间。

5.3附录:

系统程序源代码

(1)登陆窗体(FrmLogin)代码

PublicPasswordKeyAsString

PublicNameKeyAsString

PublicTry_timesAsInteger

取消键退出登陆界面

PrivateSubCmd_Cancel_Click()

UnloadMe

数据库有效性检查

IfTrim(txtUser)="

txtUser.SetFocus

IfTrim(txtPwd)="

请输入密码"

txtPwd.SetFocus

PrivateFunctionMakeStr()AsString

NameKey=Str(txtUser)

PasswordKey=Str(txtPwd)

判断用户是否存在

IfMyUser.In_DB(NameKey)=FlaseThen

用户名不存在"

Try_times=Try_times+1

IfTry_times>

=3Then

您已经三次尝试进入本系统,均不成功,系统将关闭"

DBapi_Disconnect

End

Else

ExitFunction

判断密码是否正确

MyUser.GetINfo(NameKey)

IfMyUser.Pwd<

PasswordKeyThen

密码错误"

登陆成功,将当前用户的信息保存在CurUser中

CurUser.UserName=MyUser.UserName

CurUser.User_type=MyUser.User_type

CurUserEmpID=MyUser.EmpID

关闭自己并显示主窗体

UnloadMe

FrmMain.Show

EndFunction

(2)主窗体(FrmMain)代码

设置数据库连接字符串

Conn="

\汽车站售票管理系统.mdb"

PresistSecurityInfo=False"

系统登陆界面

FrmLogin.Show

PrivateSubPJCX_Click()

PrivateSubPJGL_Click()

FrmPriceManage.Show

PrivateSubSPGL_Click()

FrmTicketSell.Show

PrivateSubTPGL_Click()

FrmBack.Show

PrivateSubXGMM_Click()

WithFrmUserEdit

.OriUser=CurUser.UserName

.txtUserName=CurUser.UserName

IfCurUser.User_type=1Then

.ComboType.AddItem"

系统管理员"

普通用户"

.ComboType.ListIndex=0

.ComboType.Enabled=False

.Modify=True

.Show1

EndWith

PrivateSubYHGL_Click()

FrmUserMan.Show

没有权限"

PrivateSubZKGL_Click()

FrmDiscount.Show

(3)售票窗体(FrmTicketSell)代码

PrivateSubCmd_Search_Click()

GridRsfresh'

根据条件查询所有信息

PrivateSubCmd_Sell_Click()

DimComboDateAsString,TNPYCodeAsString,CarIDAsString

DimleftAsInteger

DimseatnumberAsString

DimstrseatAsString

DimticketinformationAsString

DiminformationbookAsString

DimcostAsLong

ComboDate=Trim(ComboDate.Text)

TNPY=Trim(txtTNPYCode)

CarID=Trim(txtCarID)

Dimstrcnn

init_ado

strQuery="

SelectCarID,OutStation,Terminal,OutSetTime,Date,SnoFromSeatjoinPriceonSeat.CarID=Price.CarIDWhereSeat.date='

_

Trim(ComboDate)&

andPrice.TNPYCode='

Trim(txtTNPYCode)&

'

根据输入的信息,从表里得出查询结果

rsdata.OpenstrQuery,cnnrsdata,,,adCmdText

Ifrsdata.EOFThen

车次或拼音码输入有误,请重新输入!

,"

Error!

ComboDate.Text="

TNPYCode="

txtCarID="

ComboDate.SetFocus

ElseIfLen(TNPYCode)=0Then

请输入拼音码"

txtTNPYCode.SetFocus

ElseIfLen(TNPYCode)>

4Then

拼音码过长,无效!

ElseIfLen(CarID)=0Then

请输入车次编号!

ElseIfIsNumeric(Number)=FalseThen

车次编号应为数字!

txtCarID.Text="

rsdata.Close

selectcount(*)astotalfromSeatwhereSeat.sell=falseandSeat.date='

Trim(ComboDate.Text)&

andSeat.CarID='

Trim(txtCarID.Text)&

rsdata.OpenstrQuery,cnnrsdata,,,adCmdText'

统计本车次的剩余的座位数

rsdata.MoveFirst

left=rsdata!

total

Ifleft=0Then

本车次已经客满!

ComboSNno.Text="

txtTNPYCode.Text="

Trim(txtCarID)&

rsdata.AddNew

rsdata!

Date=comdate

Seat=comSNno

CarID=CarID

TNPYCode=TNPYCode

sno=Trim(seatnumber)

rsdata.Update'

添加新记录

更新Seat表,将刚卖出的座

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

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

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