火车订票系统.docx
- 文档编号:7154165
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:23
- 大小:43.36KB
火车订票系统.docx
《火车订票系统.docx》由会员分享,可在线阅读,更多相关《火车订票系统.docx(23页珍藏版)》请在冰豆网上搜索。
火车订票系统
课程设计报告
课程名称数据库课程设计
设计题目火车票订票系统
专业班级软件1241
姓名王新渊
学号1204431127
指导教师张秀坤、边蓓蓓
起止时间2014年3月10日-3月14日
成绩评定
考核
内容
设计
表现
设计
报告
答辩
综合
评定
成绩
计算机技术与工程学院
课程设计考核和成绩评定办法
1.课程设计的考核由指导教师根据设计表现、设计报告、设计成果、答辩等几个方面,给出各项权重,综合评定。
该设计考核教研室主任审核,主管院长审批备案。
2.成绩评定采用五级分制,即优、良、中、及格、不及格。
3.参加本次设计时间不足三分之二或旷课四天以上者,不得参加本次考核,按不及格处理。
4.课程设计结束一周内,指导教师提交成绩和设计总结。
5.设计过程考核和成绩在教师手册中有记载。
课程设计报告内容
课程设计报告内容、格式各专业根据专业不同统一规范,经教研室主任审核、主管院长审批备案。
注:
1.课程设计任务书和指导书在课程设计前发给学生,设计任务书放置在设计报告封面后和正文目录前。
2.为了节省纸张,保护环境,便于保管实习报告,统一采用A4纸,实习报告建议双面打印(正文采用宋体五号字)或手写。
2013-2014第2学期《数据库课程设计》任务书
班级:
软件1241、2;指导教师:
张秀坤、边蓓蓓、赵慧玲、孟宪颖;
地点:
计算机实验室;时间:
第3周。
一、课程设计题目
选择下列题目中的一种:
选择下列题目中的一种:
1.小区物业管理系统2.高校工资管理系统
3.教材管理系统4.酒店管理系统
5.高校教职工管理系统6.图书管理系统
7.火车订票管理系统8.企业人事管理系统
9.商品库存管理系统10.医院药品管理系统
11.学生成绩管理系统12.高校学籍管理系统
13.航空订票管理系统14.学费管理系统
15.城市居民户籍管理系统16.超市管理系统
17.学费管理系统18.车辆管理系统
19.房地产管理系统20.企业物资管理系统
21、其它自选题目
注:
每个学生可根据自己的学识水平,设计能力,在指导教师指导下选择所设计的题目。
二、目的与要求
1、目的
通过课程设计,让学生能够全面了解数据库应用系统的整个开发过程,验证课堂教学中的理论;掌握数据库系统的基本概念、基本原理及应用技术;掌握SQL语言的定义和各种操作能力,进一步掌握SQL语言的数据库编程技能;学会利用课堂上已学过的数据库知识进行数据库设计;使学生对开发信息管理系统有一个总体认识,可使学生得到很好锻炼,为以后学习、工作打下坚实基础。
2、基本要求
(1)要求独立完成自己题目的课程设计,如有抄袭,成绩按不及格处理。
(2)要求学生利用数据库原理课程所学知识和方法独立完成所布置题目。
(3)要求所设计的系统规模适中,用SQL语句实现基本的增、删、改、查询功能。
(4)数据库中至少要包含三个表,且每个表都要满足3NF,指明主码、外码等。
(5)尽量多的使用SQLServer2005中的对象,如:
视图、触发器、约束、默认、规则、索引等。
(6)简单的系统与功能分析,建立数据结构表。
(7)每天下机时,要及时将自己的开发拷贝带走;上机期间,学生要服从指导教师的统一安排,遵守机房制度;严格遵守纪律,不迟到,不早退,无故缺勤者,成绩按不及格处理。
三、设计方法
(1)设计题目确定、申报、素材准备与设计。
(2)系统需求分析与功能设计:
阐明应用系统背景,组织结构情况以及需求分析的过程,并绘制出数据流程图,写出数据字典。
(3)概念结构设计:
根据概念结构设计的基本原则,确定概念模型,并阐明分析步骤和理论依据完成数据库的概念设计,画出E-R图。
(4)逻辑结构设计:
根据需求分析和概念模型,将实体及实体间的联系按一定的转换规则转换为关系模型,写出转换步骤及相应的理论依据,并确定主码、外码。
按数据库设计方法和规范化理论得出符合3NF的逻辑模型。
(5)利用SQLServer2005建立相应的数据库对象。
(6)利用SQL语句实现相应功能。
(7)编写数据库课程设计报告并提交相应资料与成果。
四、任务安排
(一)时间:
1周。
具体安排如下:
1、确定题目,需求分析。
2、概要设计、逻辑设计。
3、建立数据库及其操作。
4、上机考核验收答辩。
5、写课程设计报告并提交。
(二)地点:
计算机综合实验室
五、调试
在机房进行调试,可完成相应功能。
记录调试过程中遇到的问题及解决方法,写在课程设计报告中。
六、答辩与评分标准
通过设计答辩方式,并结合学生的动手能力,独立分析解决问题的能力和创新精神,总结报告和答辩水平以及学习态度综合考评。
成绩按五级分进行评定,成绩分为优、良、中、及格、不及格。
1、平时表现:
30分;
2、课程设计报告:
30分;
3、课程设计答辩:
40分,其中完成基本功能30分,回答问题10分。
一、数据库需求分析
1、需求分析
1.1需求分析的任务
调查火车票订票系统应用领域涉及的内容,对涉及到领域的各个应用的信息要求和操作要求进行详细分析,形成需求分析说明书。
最重要的是调查、收集信息、分析购票人信息和火车预定流程。
处理要求、数据的安全性与完整性要求。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
1.2需求分析的过程
火车站为方便旅客,需开发一个火车票订票系统。
为便于旅客由网上订票,把预定火车票的旅客信息,包括姓名、性别、工作单位、身份证号码、出发时间、出发地目的地,输入火车票订票系统的客户端程序,系统经过查询火车站内的列车车次数据服务器后,为旅客安排列车,印出取票通知。
旅客在火车出发前一天凭取票通知和帐单交款后取票,系统校对无误后即印出火车票给旅客。
如果某方面出现问题,旅客可以持有效证件去火车站退票。
确定系统边界
明确购票人需求
熟悉订票流程
调查应用领域总体情况
概念设计
用户,数据库设计人员
图1需求分析过程
1.3可行性研究分析
该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。
我们在这里主要从技术可行性、经济可行性和操作可行性三方面进行分析。
1.3.1经济可行性
本系统所用到的应用软件、硬件系统都易于获得.因此,开发成本较低。
而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。
所以,从经济的角度来看,该系统可行。
1.3.2技术可行性
开发工具:
eclipse
数据库环境:
SQLServer2000
系统环境:
MicrosoftWindows2000或以上版本。
系统实现依靠相对比较熟悉的java语言和SQLServer2005数据库系统,其基本操作实质还是对数据库进行添加、删除、查找等操作。
1.3.3操作可行性
本系统是直接面对用户的,而用户往往对计算机并不是非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。
界面简洁友好,操作方便。
1.4项目开发计划安排
由于这是一项团队合作的项目,所以,每个人都有自己主要负责的一部分,但整体的构架每位成员都必须了解,熟悉,下面是具体安排表。
姓名
职务
时间
具体工作
姜玉利
组长
全程
信息收集,需求分析,编程
乐刚
组员
中期
编写程序代码
杨福
组员
前期
详细设计
任海涛
组员
后期
系统实现与维护
二、功能设计
1.旅客通过网站登录官网。
2.旅客可以查询与修改车票信息。
3.旅客可以订票和修改订单信息。
三、概念设计
3.1系统流程图
系统主要采取自顶向下,自底向上,逐步扩张的方法。
系统顶层流程图如下图3.1所示。
图3.2——图3.5为各模块详细系统流程图。
需求
火车站网上订票系统
相应信息
反馈意见
系统数据库
订票系统
退票系统
查询系统
图3.1顶层系统流程图
输入所需车次的信息
符合用户需求的车次信息
需求
查询系统
系统数据库
图3.2车次信息查询系统流程图
符合用户需求的订单信息
需求
输入查询条件
系统数据库
查询系统
图3.3订单信息查询系统流程图
输入订票信息
需求
反馈意见
订票系统
系统数据库
图3.4订票系统流程图
3.2数据抽象,E-R图分析
3.2.1数据抽象
由需求分析的结果可知,本系统设计的实体包括:
用户基本信息(用户名,用户密码,用户类型)
车次基本信息(车次号,出发地,目的地,票价,发车日期,发车时间,剩余车票数)
订单基本信息(订单号,身份证号,车次号,发车时间,出发地,目的地,票价,座位类型,数量)
3.2.2E-R
由上述分析得到系统的E—R图:
(1)每位用户可以查询多个车次,每个课程可供多位用户查询。
(多对多关系)
剩余票数
用户姓名
发车时间
车次号
车票类型
用户密码号
查询
车次
用户
用户类型
票价
目的地
出发地
(2)每个用户可以订购多张火车票,一张车票只能给一位用户。
(一对多关系),
每个用户只能有一种订票信息,每种订票信息只能为一位用户服务。
(一对一关系)
目的地
出发地
订单号
用户类型
车次号
订票
用户姓名
身份证号
订票单
用户
发车日期
总价
用户密码
用户姓名
座位类型
3.3系统视图的集成
用户类型
用户密码
用户姓名
出发时间
用户
查询与修改
座位类型
车次信息
订票与修改
票价
剩余车票数
发车日期
总价
订单号
订票单
身份证号码
出发地
发车时间
车次
座位类型
用户姓名
目的地
3.4数据字典
经过可行性分析和初步需求调查,抽象出该系统的如下表:
Name
Code
用户账号
name
用户密码
pwd
用户姓名
cname
身份证号
idno
车次号
trno
出发地
trfrom
目的地
trto
票价
price
发车时间
trtime
座位类型
trtyple
订单号
orno
剩余的票数
sysum
订票数量
piaoshu
四、逻辑设计
4.1模块设计
本项目火车站网上订票系统主要分为三个模块,其中信息查询又可分为车次查询和订单查询两个部分。
其层次图如图所示。
退票
4.1.1查询系统模块
查询信息系统
订单查询
车次查询
用户姓名
座位类型
票价
发车时间
车次号
订单号
出发地
目的地
座
位类型
发车时间
剩余车票数
目的地
出发地
票价
车次号
身份证号
订票数量
4.1.2订票系统模块
订票系统
座位类型
发车时间
车次号
目的地
用户姓名
出发地
用户姓名
身份证号
订票数量
4.2数据库表设计
数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名数据库中用到的表:
表1:
用户信息表userinfo
属性名
数据类型
可否为空
含义
name
char(30)
否
用户账号(主码)
pwd
Char(30)
否
用户密码
leixing
Char(20)
否
用户类型
表2:
车次信息表traininfo
属性名
数据类型
可否为空
含义
trno
Char(20)
否
车次号(主码)
trfrom
char(60)
否
出发地
trto
char(60)
否
目的地
price
Char(20)
否
票价
trtime
Char(20)
否
发车时间
sysum
Char(20)
可
剩余车票数
trtyple
Char(20)
否
座位类型
表3:
订单信息表orderinfo
属性名
数据类型
可否为空
含义
trno
Char(20)
否
车次号
trtime
Char(20)
否
发车日期
price
Char(20)
否
票价
trtyple
Char(20)
否
座位类型
idno
Char(20)
否
身份证号码(主码)
trfrom
Char(20)
否
出发地
trto
Char(20)
否
目的地
Cname
Char(20)
否
用户姓名
Piaoshu
Char(20)
否
订票数量
5、数据库对象
表:
用户信息表userinfo、车次信息表traininfo、订单信息表orderinfo
索引:
车次号
视图:
[dbo].[View_1]
触发器:
tigger
用户:
旅客
六、操作语句
6.1DB设计
6.1.1建立数据库
CREATEDATABASE[ticket]
CONTAINMENT=NONE
ONPRIMARY
(NAME=N'ticket',FILENAME=N'C:
\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\ticket.mdf',SIZE=5120KB,MAXSIZE=UNLIMITED,FILEGROWTH=1024KB)
LOGON
(NAME=N'ticket_log',FILENAME=N'C:
\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\ticket_log.ldf',SIZE=1024KB,MAXSIZE=2048GB,FILEGROWTH=10%)
GO
6.1.2建立用户信息表
USE[ticket]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[用户信息表](
[用户帐号][char](30)NOTNULL,
[用户密码][char](30)NOTNULL,
[用户类型][char](20)NOTNULL
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
6.1.3建立车次信息表
USE[ticket]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[车次信息表](
[车次号][char](20)NOTNULL,
[出发地][char](60)NOTNULL,
[目的地][char](60)NOTNULL,
[票价][char](20)NOTNULL,
[发车时间][char](20)NOTNULL,
[剩余票数][char](20)NULL,
[座位类型][char](20)NOTNULL,
CONSTRAINT[PK_traininfo]PRIMARYKEYCLUSTERED
(
[车次号]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
6.1.4建立订单信息表
USE[ticket]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[订单信息表](
[车次号][char](20)NOTNULL,
[发车日期][char](20)NOTNULL,
[票价][char](20)NOTNULL,
[座位类型][char](20)NOTNULL,
[身份证号码][char](20)NOTNULL,
[出发地][char](20)NOTNULL,
[目的地][char](20)NOTNULL,
[用户姓名][char](20)NOTNULL,
[订票数量][char](20)NOTNULL,
CONSTRAINT[PK_orderinfo]PRIMARYKEYCLUSTERED
(
[身份证号码]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
6.1.5操作信息表
USEticket;
GO
EXECSp_Help;
GO
执行结果
修改表名称
Sp_rename'车次信息表','车次'
删除表名称
DROPTABLE车次
添加表信息
USE[ticket]
GO
INSERTINTO[dbo].[车次信息表]
([车次号]
[出发地]
[目的地]
[票价]
[发车时间]
[剩余票数]
[座位类型])
VALUES
('T58',
'长春',
'北京',
'230元',
'3月15日',
'56',
'硬卧')
GO
修改数据
USEticket
GO
UPDATE车次信息表SET票价=180
GO
创建索引
USEticket
GO
CREATENONCLUSTERED
INDEXIX_车次信息表
ON车次号
GO
查看索引
sp_helpindex'车次信息表'
查询结果
删除索引
DROPINDEX车次信息表.IX_车次信息表
查询表中信息
SELECT*FROM订单信息表
查询结果
部分查询
SELECT车次号,发车日期,出发地FROM订单信息表
查询结果
求目的地是北京的详细信息,并将这些信息另存到数据表“北京”中
SELECT*
INTO北京
FROM车次信息表
WHERE目的地='北京'
查询订单信息表中的信息(注意跟车次信息表的连接)
SELECT订单信息表.用户姓名,订单信息表.发车日期,订单信息表.座位类型,订单信息表.出发地,订单信息表.目的地,订单信息表.订票数量
FROM订单信息表,车次信息表
WHERE订单信息表.车次号=车次信息表.车次号
GO
创建视图
CREATEVIEW[dbo].[View_1]
AS
SELECTdbo.订单信息表.车次号,dbo.订单信息表.发车日期,dbo.订单信息表.票价,dbo.订单信息表.座位类型,
dbo.订单信息表.出发地,dbo.订单信息表.目的地,dbo.订单信息表.用户姓名,dbo.订单信息表.订票数量,
dbo.车次信息表.出发地ASExpr1,dbo.车次信息表.目的地ASExpr2,dbo.车次信息表.票价ASExpr3,
dbo.车次信息表.发车时间,dbo.车次信息表.座位类型ASExpr4
FROMdbo.订单信息表INNERJOIN
dbo.车次信息表ONdbo.订单信息表.车次号=dbo.车次信息表.车次号
GO
创建触发器
CREATETRIGGERtigger
ON订单信息表
AFTERINSERT
AS
BEGIN
IF(SELECTcount(*)
FROM订单信息表JOIN车次信息表
ON订单信息表.车次号=车次信息表.车次号)=0
BEGIN
ROLLBACKTRAN
PRINT'插入无效!
'
END
END
GO
6.2程序流程图
本系统主界面为用户设计了三个功能操作以供选择:
查询,订票,退票。
另外,为方便用户,还将“退出系统”也单另列了出来,用户可以根据需要触发不同事件。
其处理流程如图所示。
6.2.1系统主处理流程
开始
登陆界面
登陆,确定访问权限
主界面
N
选择订票窗口
选择查询窗口
N
选择退票
Y
查询界面
N
退票界面
Y
车次查询
订单信息查询
订票
YY
退票
退票
订票
退出
结束
Y
6.2.2车次信息查询处理流程
返回主页
6.2.3订单信息查询处理流程
退票
6.2.4订票模块处理流程
输入订票信息
修改数据文件
6.2.5退票模块处理流程
输入退票信息
修改数据文件
当试运行数据库合格后,数据库开发设计的工作就基本完成了,接下来就是正式运行中的调试,应为该系统比较简单,数据量小,数据库中几乎不会发生什么大的变化,但是还是需要做好数据的备份,在sqlserver中我们可以利用备份数据库的功能对已经设计好的数据做备份,如果数据库受到破坏或系统故障,我们便可轻松的利用备份文件恢复数据库的数据。
当然也可以利用其他各种方法进行数据维护。
七、总结
7.1系统的功能
本系统主要是应用java和SQL来解决火车票网上订票的问题,达到方便,快捷的目的。
本系统主要设计了查询,订票,退票三个分系统。
7.2系统的特点
(1)系统实现依靠相对比较熟悉的java语言和SQLServer2000数据库系统,其基本操作实质还是对数据库进行添加、删除、查找等操作。
(2)本系统是直接面对用户的,而用户往往对计算机并不是非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
(3)本系统所用到的应用软件、硬件系统都易于获得.因此,开发成本较低。
而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。
7.3软件开发的特点
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。
软件开发是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 火车 订票 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)