数据库课程设计车站售票系统文档格式.docx
- 文档编号:18952531
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:22
- 大小:377.63KB
数据库课程设计车站售票系统文档格式.docx
《数据库课程设计车站售票系统文档格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计车站售票系统文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
1销售车票
2预订车票
3退票
(2)、查询功能
1车次查询
2时刻表查询
3预定情况查询
(3)、调度功能
1运价修改
2车辆修改
3终点站修改
4车次修改
(4)、维护功能
1车票表修改
2密码修改
3退出
(5)、统计功能
1售票统计
2报表打印
1.2数据需求分析
使用结构化分析方法,确定系统的数据主要是运价、车次、终点站名、发车时间和车票,对数据的操作主要有运价修改、车次修改、终点站修改、发车时间修改、售票及打印,可以确定系统的处理逻辑和流程,得到如下所示的系统数据流图。
1.3数据字典
经过分析可以得到以下数据流条目:
车次表=车辆编号+车型+座位数
终点站名表=站名+里程
运价表=车型+运价
发车时刻表=车次+车辆编号+站名+发车时间+检票口
已售车票表=票号+乘车日期+车次+站名+发车时间+票价+全半价+工号+退票否
预订车票表=预订号+乘车日期+车次+站名+发车时间+车型+票价+客户名称+订票数量
退票表=票号+退票时间+票价+应退款
售票员编号=工号+姓名
2系统总体设计
2.1系统总体结构设计
2.2系统数据模型设计
2.2.1E-R图
主键:
外键:
2.2.2关系模式
车辆(车辆编号,车型,座位数)
目标站名(站名,里程)
发车时刻表(车次,站名,车辆编号,发车时间,检票口)途径(车次,站名)
车票(票号,乘车日期,车次,站名,票价,全半价,座位号,工号,退票否)
预订(预订号,车次,站名,乘车日期,顾客名称,票数)
退票(票号,退票时间,票价,应退款)
售票员(工号,姓名)
运价(车型,价格)
2.2.3数据表
预定表
运价表
车辆表
车票表
管理员表
目标站名表
售票员表
发车时刻表
退票表
3.系统实施
结合PowerBuilder进行数据库应用开发的特点,设计过程可按如下步骤进行:
一、连接tickt数据库:
//Profiletickt
SQLCA.DBMS="
MSSMicrosoftSQLServer"
SQLCA.Database="
tickt"
SQLCA.LogPass="
sa"
SQLCA.ServerName="
37E48911880B444"
SQLCA.LogId="
SQLCA.AutoCommit=False
SQLCA.DBParm="
"
connect;
open(w_welcome)
二、制作登陆界面:
系统分为管理员登陆和售票员登陆,并且他们的权限是不同的,在后面的系统功能介绍中会做详细的介绍。
登陆代码:
stringusername,pas
username=trim(sle_name.text)
pas=trim(sle_pas.text)
ifisnull(username)ortrim(username)="
then
messagebox("
提示"
"
请输入用户名"
)
sle_name.setfocus()
return
endif
ifisnull(pas)ortrim(pas)="
请输密码"
sle_pas.setfocus()
stringtemp
ifrb_2.checked=truethen
select密码into:
tempfrom售票员表
where工号=:
username;
elseifrb_1.checked=truethen
select密码into:
tempfrom管理员表
else
请输入用户类型"
ifsqlca.sqlcode=0then
iftrim(temp)=pasthen
open(w_main)
ifrb_2.checked=truethen
mainmenu.m_调度.m_运价修改.enabled=false
mainmenu.m_调度.m_车辆修改.enabled=false
mainmenu.m_调度.m_终点站修改.enabled=false
mainmenu.m_调度.m_车次修改.enabled=false
mainmenu.m_维护.m_车票表修改.enabled=false
mainmenu.m_维护.m_预订车票表修改.enabled=false
mainmenu.m_维护.m_退票表修改.enabled=false
mainmenu.m_维护.m_密码修改.enabled=false
endif
close(w_login)
else
错误"
输入有误"
messagebox("
用户名或密码错误"
sle_name.setfocus()
return
二、系统主界面:
下面介绍部分功能:
1.车票销售功能
输入目的地点击查询后
查询语句:
longrows
inta,b
stringtarget,checi
iftrim(sle_1.text)="
请输入目的地"
sle_1.setfocus()
target=trim(sle_1.text)
iflen(target)>
0then
dw_chepiao.setfilter("
车票表_站名='
+target+"
'
dw_chepiao.filter()
rows=dw_chepiao.retrieve()
ifrows=0then
messagebox("
无车票"
return
checi=dw_chepiao.object.车票表_车次[1]
a=dw_chepiao.object.发车时刻表_已订座位数[1]
b=dw_chepiao.object.车辆表_座位总数[1]
return
销售语句:
stringcheci
ifb>
athen
a=a+1
Update发车时刻表set发车时刻表.已订座位数=:
a
where发车时刻表.车次=:
checi;
ifsqlca.sqlcode<
>
车票销售失败"
rollback;
commit;
销售成功"
座位数以满"
查询到信息后点击销售按钮,销售成功后再次查询已订座位数变化了
其中售票窗口的控件的建立如下图所示:
2.下面演示预定功能和预定查询功能
选择好车次后输入预定的信息
预定语句:
stringcheci,cname,piaoshu,zhanming
zhanming=sle_4.text
cname=sle_1.text
checi=sle_3.text
piaoshu=sle_2.text
select车次
into:
checi
from预定表
where车次=:
iflen(checi)=0then
messageBox("
没有这个车次!
insertinto预定表(车次,站名,顾客名称,票数)values(:
checi,:
zhanming,:
cname,:
piaoshu);
commit;
messageBox("
谢谢使用!
预定成功"
预定成功后查询预定情况会在预定表中生成一条相映的记录:
3.演示退票功能:
将退票人的信息输入后再查询预定情况:
此时定票数改变,
4.演示统计功能:
统计功能代码:
stringtarget
请输入车次"
dw_1.setfilter("
发车时刻表_车次='
dw_1.filter()
rows=dw_1.retrieve()
无此车次"
//checi=dw_1.object.车票表_车次[1]
//a=dw_chepiao.object.发车时刻表_已订座位数[1]
//b=dw_chepiao.object.车辆表_座位总数[1]
5.演示密码修改功能:
密码修改代码为:
stringpassword1,password2,oldpassword
password1=trim(sle_pas1.text)
password2=trim(sle_pas2.text)
oldpassword=trim(sle_oldpas.text)
ifisnull(password1)orlen(password1)=0then
请输入新密码"
ifisnull(password2)orlen(password2)=0then
请输入确认密码"
ifisnull(oldpassword)orlen(oldpassword)=0then
请输入旧密码"
ifpassword1<
password2then
两次密码不一致"
sle_pas1.text="
sle_pas2.text="
sle_pas1.setfocus()
ifuserkind="
售票员"
update售票员表
set密码=:
password1
管理员"
update管理员表
ifsqlca.sqlcode<
rollback;
旧密码错误"
密码修改成功"
close(w_mimaxiugai)
6.演示各种查询功能:
车次表和时刻表查询功能:
7.演示修改功能:
终点站修改
车次修改
其他修改例如:
运价、车辆、车票表修改同上
4系统评价
4.1系统特色
首先通过登录界面进行登录,登录的身份分为管理员和售票员,售票员的用户名为自己的工号。
售票员登录后能使用的菜单有:
售票、查询、统计。
1、售票菜单下有:
销售车票、预订车票、退票等功能.
2、查询菜单下有:
车次查询、时刻表查询、预定情况查询。
3、统计菜单有:
统计功能。
售票统计可以按车次进行统计,列出每一个次车所卖出的票数。
管理员登录后能使用的菜单有:
售票、查询、调度、维护、统计。
2、调度菜单下有:
运价修改、车辆修改、终点站修改、车次修改。
运价修改可以修改运输的单价。
车辆修改可以进行对车辆进行添加、修改、删除。
终点站修改可以进行对终点站的添加、修改、删除。
车次修改可以进行添加、修改、删除车次实现调度。
3、维护菜单下有:
车票表修改,密码修改,退出。
车票表修改、预订车票表修改具有更新功能。
密码修改可以让登录者修改密码。
4.2系统不足及改进
系统还有许多不人性化和智能化的地方,许多方面需要改进,比如预定票功能,预定者预定完只后要在预定修改里才能体现出来,验证已订到票比较罗嗦了一点,不能和预定同步进行,还有就是统计售票总数方面做的不是很理想,还有许多不完善的地方,还有一个不符合实际情况的地方就是在建立数据库的时候只想到了一个车次只能到一个地方,也就是直达车次,这点还不符合实际情况,需要改进和完善的。
系统的打印报表功能由于实际情况的限制没法实现,在以后的设计中应该添加这一个功能。
5课程设计心得
这次2个多星期的数据库课程设计期间穿插了许多考试,因此没能把全部的精力放在课程设计上面,但是仍然学到很多很多以前没有接触过的东西,除了提高了自己开发数据库系统的能力,培养了多方面思考问题的能力,是我这次课程设计最大的收获。
在设计的过程中遇到过各种各样的问题,因为这个学期初次接触powerbuilder,而且在平常的上机实验过程中没有涉及到学习过这个软件,一开始确实是感觉到不知所措,无从下手,但是借助参考图书馆的资料和以前别人开发的例子,还是慢慢的对它熟悉起来,最终完成了车站售票管理系统。
通过这次课程设计加深了我对数据库基础理论和基本知识的理解,使我很好的掌握了数据库应用系统设计开发的基本方法,并且提高了我综合运用所学知识和增强实际动手能力。
通过这个设计,我了解到一个大型的计算机管理系统必须有一个正确的设计指导思想,通过合理的选择数据结构,操作系统以及开发环境,构成一个完善的系统,才能充分发挥计算机信息管理优势。
现代化的汽车站售票是集预定车票、售票
、退票、车次查询、报表及其他各种服务,车站售票组织庞大,服务项目多,信息量大,要想提高劳动生产,降低成本,提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理。
因为数据库的设计需要人性化,考虑各个方面的问题,这就需要设计者本身有这方面的能力。
同时也反映出自己的许多不足,掌握知识不是很牢固,很难把书本上的知识运用到实际,这是自己的一个缺点和不足,同时我还发现自己考虑问题不够全面,有的问题是实际操作中会遇到的,但是自己却很难把这一问题体现在设计中并很好的解决它。
这是以后学习中需要引以为戒的地方。
这个系统的功能虽然有所欠缺,但是心理还是比较高兴的,因为这是到目前为止自己开发的第一个实用系统,在以后的学习中一定回经常复习数据库的知识,一步步的提高自己的开发数据库系统的能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 车站 售票 系统