火车站车票销售管理系统Word文档格式.docx
《火车站车票销售管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《火车站车票销售管理系统Word文档格式.docx(40页珍藏版)》请在冰点文库上搜索。
第二章系统分析与设计
2.1系统需求分析
系统需要完成以下功能:
1.系统登陆管理:
工作人员登陆,修改密码。
2.车次信息查询:
查询指定的信息的车次的其他相关信息。
3.车票销售:
对指定的车次的票数进行更新,完成售票功能。
2.1.2性能要求
1.数据精确度
查询时应保证查全率,所有相应域包含查询关键字的记录都应能查到。
2.时间特性
一般操作的响应时间应在1~2秒内,对软磁盘和打印机的操作也应在可接受的时间内完成。
2.2数据库概念结构设计(E-R图)
2.3数据流程图
2.4数据库逻辑结构设计
票数表:
票数表(日期,车次,可售票数)
票价表:
票价表(车次,到站名,票价)
发车时间表:
发车时间表(车次,发车时间)
系统用户名和密码表:
系统用户名和密码表(用户名,密码,登录状态)
2.5数据库物理结构设计
2.6系统总体结构设计
第三章系统开发及实现
我们小组的系统是采用MicrosoftOfficeAccess2003来先建立数据库,再进行用户权限的设计和实施。
而且是用MicrosoftOfficeAccess2003在本数据库中来创建界面,所以不存在界面连接数据库的功能。
3.1建立表:
3.2设计查询
3.3窗体设计
登陆界面:
窗体属性:
取消按钮代码:
PrivateSubCommand4_quxiao_Click()
DoCmd.Close
DoCmd.Quit
EndSub
确定按钮代码:
PrivateSubCommand5_ok_Click()
DimrAsQueryDef
DimtAsInteger
t=1
IfIsNull(Combo0_userID)=TrueThen
MsgBox"
请选择用户名!
"
Else
IfText6_mima=DLookup("
密码"
"
系统用户名和密码表"
用户名="
+Combo0_userID+"
"
)Then
Setr=CurrentDb.QueryDefs("
登录状态更新查询"
)
r.sql="
UPDATE系统用户名和密码表SET登录状态="
&
t&
WHERE用户名="
r.Execute
DoCmd.Close
DoCmd.OpenForm"
登录成功窗体"
Text6_mima="
Text6_mima.SetFocus
密码错误!
!
EndIf
主界面窗体:
查询按钮的代码:
PrivateSubCommand1_chaxun_Click()
查询车票窗体"
打开售票按钮的代码:
PrivateSubCommand2_dakaimiapiao_Click()
OnErrorGoToErr_Command2_dakaimiapiao_Click
DimstDocNameAsString
DimstLinkCriteriaAsString
stDocName=ChrW(20080)&
ChrW(31080)&
ChrW(31383)&
ChrW(20307)
DoCmd.OpenFormstDocName,,,stLinkCriteria
Exit_Command2_dakaimiapiao_Click:
ExitSub
打开买票窗体:
Err_Command2_dakaimiapiao_Click:
MsgBoxErr.Description
ResumeExit_Command2_dakaimiapiao_Click
退出登录:
PrivateSubCommand3_tuichudenglu_Click()
DimrAsQueryDef
Dimt0,t1AsString
t0=0
t1=1
t0&
WHERE登录状态="
t1&
登录窗体"
修改密码:
PrivateSubCommand5_xiugaimima_Click()
OnErrorGoToErr_Command5_xiugaimima_Click
stDocName=ChrW(20462)&
ChrW(25913)&
ChrW(23494)&
ChrW(30721)&
修改密码窗口:
PrivateSubCommand0_quxiao_Click()
PrivateSubCommand1_Click()
Dims,tAsString
t="
1"
s=DLookup("
登录状态="
IfIsNull(s)<
>
FalseThen
请先退出后重新登录,再修改密码!
IfText2_yuanmima<
sThen
原密码错误!
Text2_yuanmima="
Text4_xinmima1="
Text6_xinmima2="
Text2_yuanmima.SetFocus
Else
IfIsNull(Text2_yuanmima)=TrueThen
请输入密码!
IfIsNull(Text4_xinmima1)=TrueThen
请输入新密码!
Text4_xinmima1.SetFocus
IfIsNull(Text6_xinmima2)=TrueThen
请再输入一遍新密码!
Text6_xinmima2.SetFocus
IfText4_xinmima1<
Text6_xinmima2Then
新密码2次输入不一致!
请重新输入!
UPDATE系统用户名和密码表SET密码="
+Text4_xinmima1+"
密码修改成功!
EndIf
查询窗体:
代开主窗口按钮代码:
PrivateSubquery_fanhui_Click()
OnErrorGoToErr_query_fanhui_Click
Exit_query_fanhui_Click:
Err_query_fanhui_Click:
ResumeExit_query_fanhui_Click
查询:
PrivateSubCommand12_Click()
t0="
0"
t1="
PrivateSubquery_ok_Click()
DimR1AsQueryDef
DimsqlAsString
Dims(3)AsString
Dimi,jAsInteger
sql="
select*from总查询where"
SetR1=CurrentDb.QueryDefs("
车票查询"
IfIsNull(Combo0_riqi)=FalseThen
s(0)="
总查询.日期="
+Combo0_riqi+"
IfIsNull(Combo2_checi)=FalseThen
s
(1)="
总查询.车次="
+Combo2_checi+"
IfIsNull(Combo4_daozhanming)=FalseThen
s
(2)="
总查询.到站名="
+Combo4_daozhanming+"
Fori=0To2
Ifs(i)<
Then
Forj=i+1To2
Ifs(j)<
s(j)="
and"
+s(j)
Nextj
ExitFor
Nexti
Ifs(0)="
Ands
(1)="
Ands
(2)="
MsgBox("
请输入至少一个查询条件!
sql=sql+s(i)
Nexti
R1.sql=sql
显示查询结果窗体"
Form_显示查询结果窗体.Form.Recordset.Close
SetForm_显示查询结果窗体.Form.Recordset=R1.OpenRecordset
返回主界面按钮代码:
PrivateSubCommand10_fanhuizhuchuangkou_Click()
打开买票:
PrivateSubCommand11_dakaimaipiaochuangti_Click()
OnErrorGoToErr_Command11_dakaimaipiaochuangti_Click
Exit_Command11_dakaimaipiaochuangti_Clic:
Err_Command11_dakaimaipiaochuangti_Click:
ResumeExit_Command11_dakaimaipiaochuangti_Clic
显示查询结果:
打开买票窗体按钮代码:
PrivateSubCommand14_jinrumaipiaochuangkou_Click()
买票窗体"
继续查询代码
PrivateSubCommand17_jixuchaxun_Click()
OnErrorGoToErr_Command17_jixuchaxun_Click
stDocName=ChrW(26597)&
ChrW(-29726)&
ChrW(-28826)&
Exit_Command17_jixuchaxun_Click:
Err_Command17_jixuchaxun_Click:
ResumeExit_Command17_jixuchaxun_Click
退出登录:
PrivateSubCommand18_Click()
返回主界面代码:
PrivateSubCommand19_Click()
售票窗口:
PrivateSubCommand11_fanhuichaxun_Click()
OnErrorGoToErr_Command11_fanhuichaxun_Click
stDocName=ChrW(26597)&
Exit_Command11_fanhuichaxun_Click:
Err_Command11_fanhuichaxun_Click:
ResumeExit_Command11_fanhuichaxun_Click
退出登录按钮代码:
PrivateSubCommand16_Click()
PrivateSubCommand6_Click()
Dims,m,pAsString
Dimt0,t1,t2,zongpiaojia,piaojiaAsInteger
IfIsNull(Combo2_checi)=TrueOrCombo2_checi="
OrIsNull(Combo0_riqi)=TrueOrCombo0_riqi="
OrIsNull(Combo4_daozhanming)=TrueOrCombo4_daozhanming="
请输入足够的车票信息!
)
t0=DLookup("
可售票数"
总查询"
车次="
and日期="
and到站名="
IfIsNull(t0)Then
信息错误!
没有该次火车!
Else
Ift0=0Then
购买失败!
的"
次车票已售完!
IfText12_maipiaoshu>
999OrText12_maipiaoshu<
1Then
错误!
一次购票数必须在1至999张之间!
Text12_maipiaoshu.SetFocus
t1=Text12_maipiaoshu
Ift1>
t0Then
m=CStr(t0)
票数不足!
此次列车目前还剩"
+m+"
张票"
piaojia=DLookup("
票价"
票价表"
zongpiaojia=piaojia*t1
p=CStr(zongpiaojia)
IfMsgBox("
总票价为"
+p+"
元,请付款后点击是,否则请点击否。
vbYesNo)=vbNoThen
Combo0_riqi="
Combo2_checi="
Combo4_daozhanming="
Text12_maipiaoshu=1
t2=t0-t1
购买票数更新查询"
UPDATE票数表SET可售票数="
t2&
WHERE车次="
购买成功!
EndIf
PrivateSubCommand15_fanhuizhuchuangti_Click()
DoCmd.OpenForm"
第四章总结
我们小组的火车站车票销售管理系统的设计和开发,历时近一个月。