火车站售票管理系统
课程名称
题 目 课 程 设 计 报 告 数据库原理与应用课程设计 火车站售票管理系统
院 系
专 业
班 级
姓 名
指导教师
2014 年 1 月 3 日
数据库课程设计报告
摘 要
近年来,随着我国国民经济的飞速发展和人民生活水平的提高,铁路旅客运输面临着增加运能、提高卖票服务质量、提高竞争能力的迫切需要。基于网络自主的火车票售票管理系统替代传统的人工售票,实现自动化售票和对票务的自动化管理,极大的方便了乘客购票,也提高了铁路部门的管理效率和运营效率。
本论文围绕铁路运输售票的现状,引入火车站售票管理系统,并对该系统的开发及原理进行详细的介绍。要求:
①具有方便、快速的售票功能,
包括车票的购买和退票功能,情况提供多种查询和统计功能,如车次的查询、时刻表的查询等;
②能准确地了解售票情况,提供多种查询和统计功能,如车次的查询、时刻表的查询等;
③能按情况所需实现对车次的查询、时刻表的查询等;
④系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等; 本次实习的题目是火车站售票管理系统,主要的目的是如何处理车站中票务的流通。
根据系统所需功能,决定以windows7为开发平台,采用选择功能强
大的Microsoft SQL Server2005/2008为开发工具,利用软件工程思想和方法,开发该系统的所需要的功能。本系统由车辆、车次、乘客、车票、售票员等模块组成,对车站中的各种信息进行分类管理,统筹规划。功能较为全面。
关键字:
火车票;售票系统;SQL Server2005;管理系统
数据库课程设计报告
目 录
1 绪论 ........................................ 1
1.1 背景、现状 ....................................... 1
1.2 研究内容及框架 ................................... 1
2 项目整体规划与设计 .......................... 3
2.1 招聘系统的总体需求分析 ........................... 3
2.2 整体结构分析,及功能分析 ......................... 3
2.3 数据库系统的具体设计 ............................. 4
3 数据库设计与分析 ............................ 6
3.1 数据库的整体设计的E-R图 ......................... 6
3.2 数据库的整体概念模型设计 ......................... 6
3.3 数据库的整体物理模型设计 ......................... 7
3.4数据库表的设计 ..................................... 8
3.5数据库的脚本sql语句 .............................. 10
4数据库完整性约束 ............................. 16
4.1 实体完整性约束说明 ............................... 16
4.2 参照完整性约束说明 ............................... 17
4.3 用户自定义完整性约束说明 ......................... 19
数据库课程设计报告
5 总结与展望 ................................. 21
参考文献 ...................................... 22
数据库课程设计报告
1 绪论
1.1 背景、现状
随着经济社会的不断发展。人们的生活方式和习惯的多样化,出行已经成为人们生活的一个重要组成部分。通过最近这几年的观察,每到春节的时候,因为过年,大量的人口流动给我们的交通系统带来了不小挑战,其中火车这种交通工具因输送量大、速度较快、价钱合理受到广大回家市民的青睐,因此车票票务市场也在快速发展。人们希望车票销售手段也能相应地有所调整,并对如何能经济、方便和及时地购买到自己所需要的车票表现出极大的关注。随着社会的不断进步,国内外铁路运输事业的飞速发展,各国铁路运营部门对票务管理的要求也在不断的提高, 现如今乘车已是必不可少的交通手段,各种类型的车辆到处可见,公共交通不仅在城市中随处可见,随着国家“村村通”政策的执行,农村、偏远山区等地均有了公路、汽车。因此,车站管理已为交通运输中的重中之重。
火车成为了许多人选择出行的重要交通工具,而车站售票是预订车票、售票、退票及车次查询、报表以及其他各种服务,车站售票组织庞大,服务项目多,信息量大,传统的手工处理方式已经不能满足管理活动的需要。要想提高劳动生产,降低成本,提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息。从而催生了我关于火车站售票管理信息系统的探讨。
我们对本市附近的汽车站进行了初步的了解,发现其功能主要是集中在对车票的购买、售出和退换上。对车票的管理工作量较大,采用新的操作方式,不仅能满足乘客对车辆的详细的查询功能,还能增加效率,减少乘客滞留弊端。本系统在设计中考虑和充分分析了上诉的诸多问题,设计的程序内容简单出错率小,增强了实用性。
1.2 研究内容及框架
此项目主要研究的内容是用高级语言及SQL SERVER 2008/2005开发的火车站售票管理,包括旅客查询,购买火车票、管理员对火车票的管理等。框架结构如图1.1
数据库课程设计报告
图1.1功能结构图
数据库课程设计报告
2 项目整体规划与设计
2.1 招聘系统的总体需求分析
系统应具有售票、查询、管理和维护等功能,系统管理员可以进行对车次的更改、票价的变动及调度功能,票价的修改可以通过修改运价来进行,车次调度可通过对发车时刻表的修改来进行,维护功能即可对表进行修改。
2.2 整体结构分析,及功能分析
整体结构是设计的综合设计,有各小的结构的汇总,整体结构图如图2.1所示
图2.1整体结构图
数据库课程设计报告
系统是为实现某种功能,其整体功能有个各个能能模块组成下面是对各功能分析: 售票功能模块
(1)服务人员可以进行售票、订票、退票等操作
(2)购票:游客可以购买自己想买的票
(3)订票:游客想预订票时可以订票
(4)退票:游客想放弃此次行程,可以退票
查询功能模块
(1)购票者可以请求服务人员完成车次、时间或地点完成查询操作,并浏览查询信息
(2)车次查询:游客可以查询想乘坐的车次信息
(3)时间查询:游客可以查询出发时间
(4)地点查询:游客可以查询起始地点
管理统计模块
(1)系统管理员可以对运价、车次、终点站以及售票员的信息进行删除、添加、修改。售票员和系统管理员均可浏览车票统计情况。
(2)运价修改:管理员对车票的价格的调整
(3)车次修改:管理员对车次调整
(4)地点修改:游客可以查询起始地点
2.3 数据库系统的具体设计
2.3.1 用户对该系统的功能需求
能根据不同查询条件(如车牌号、车次等)车辆表信息,包括车牌号、车次、开车时间、车型、座位号、站名、里程等。
能根据不同查询条件(如id、终点站等)买票表信息,包括id、终点站、车牌号、车票数量、车票日期等。
能根据不同查询条件(如票号、退款额等)退票表信息,包括票号、退款额、手续费、退票时间等。
数据库课程设计报告
能根据不同查询条件(如票号、车次等)车票表信息,包括票号、车次、站点、票价、座位号等。
能根据不同查询条件(如车型、票价等)计费表信息,包括车型、票价等。 管理车辆基本信息,包括浏览、增加、修改、和删除车辆表信息。 管理买票基本信息,包括浏览、增加、修改、和删除买票表信息。 管理退票基本信息,包括浏览、增加、修改、和删除退票表信息。 管理车票基本信息,包括浏览、增加、修改、和删除车票表信息。 管理计费基本信息,包括浏览、增加、修改、和删除计费表信息。
2.3.2 数据需求
车辆表=车次+开车时间+到达时间+车型+里程
买票表=买票号+起点站+终点站+车票数量+车票日期+乘客编号
退票表=票号+退款额+手续费+退票时间+乘客编号
车票表=票号+车次+起点站+终点站+票价+座位号+乘客编号
乘客表=乘客编号+身份证号+姓名
售票员表=工号+姓名+年龄+性别
数据库课程设计报告
3 数据库设计与分析
3.1 数据库的整体设计的E-R图
数据库的整体设计的E-R图如图3.1所示
图3.1整体E_R图
3.2 数据库的整体概念模型设计
数据库课程设计报告
车辆(车次,开车时间,车型,里程,票价)主键为(车次);
买票(买票号,起始站,终点站,车票数量,车票日期,乘客编号)主键为(买票号),外键为(乘客编号);
退票(票号,退款额,手续费,退票时间,乘客编号)主键为(票号)外键为(乘客编号);
车票(票号,车次,起点站,终点站,票价,座位号,工号,乘客编号)主键为(票号),外键为(乘客编号),外键为(车次)外键为(工号); 乘客(乘客编号,身份证号,姓名)主键是(乘客编号); 售票员(工号,姓名,年龄,性别)主键是(工号)。
3.3 数据库的整体物理模型设计
数据库的整体物理模型设计如图3.3所示
表3-1车辆表
数据库课程设计报告
表3-3退票表
表3-4车票表
表3-5乘客表
3.4数据库表的设计
数据库是按照数据结构组织、存储和管理数据的仓库,数据管理不仅仅是存储和管理数据,而是转化成所需要的各种数据管理方式。结构 的好坏影响系统的效率及实现的效果、以及它的完整性和一致性。
数据库课程设计报告
车辆表如图3.4所示
图3.4车辆表
买票表如图3.5所示
图3.5买票表
退票表如图3.6所示
图3.6退票表
数据库课程设计报告
乘客表如图3.7所示
图3.7乘客表
车票表如图3.7所示
图3.8车票表
售票员表如图
3.9
图3.9售票员表
3.5数据库的脚本sql语句
数据库课程设计报告
1.车辆表sql语句如下所示: CREATE TABLE [dbo].[车辆表](
[车次] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [开车时间] [datetime] NOT NULL, [到达时间] [datetime] NOT NULL,
[车型] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [里程] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_车辆表] PRIMARY KEY CLUSTERED (
[车次] ASC
) ON [PRIMARY] ) ON [PRIMARY] GO
SET ANSI_PADDING OFF GO USE [zc] GO
ALTER TABLE [dbo].[车辆表] WITH CHECK ADD CONSTRAINT [CK_车辆表] CHECK (([到达时间] > [开车时间])) 2.买票表sql语句如下所示: CREATE TABLE [dbo].[买票表]( [买票号] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [起始站] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [终点站] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [车票数量] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [车票日期] [datetime] NOT NULL,
[乘客编号] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
数据库课程设计报告
CONSTRAINT [PK_买票表] PRIMARY KEY CLUSTERED (
[买票号] ASC
) ON [PRIMARY] ) ON [PRIMARY] GO
SET ANSI_PADDING OFF GO USE [zc] GO
ALTER TABLE [dbo].[买票表] WITH CHECK ADD CONSTRAINT [FK_买票表_乘客表] FOREIGN KEY([乘客编号]) REFERENCES [dbo].[乘客表] ([乘客编号]) 3.退票表sql语句如下所示: CREATE TABLE [dbo].[退票表](
[票号] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [退款额] [float] NOT NULL, [手续费] [float] NOT NULL, [退票日期] [datetime] NOT NULL,
[乘客编号] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_退票表] PRIMARY KEY CLUSTERED (
[票号] ASC
) ON [PRIMARY] ) ON [PRIMARY] GO
SET ANSI_PADDING OFF
数据库课程设计报告
GO USE [zc] GO
ALTER TABLE [dbo].[退票表] WITH NOCHECK ADD CONSTRAINT [FK_退票表_乘客表] FOREIGN KEY([乘客编号]) REFERENCES [dbo].[乘客表] ([乘客编号]) GO
ALTER TABLE [dbo].[退票表] CHECK CONSTRAINT [FK_退票表_乘客表] 4.车票表sql语句如下所示: CREATE TABLE [dbo].[车票表](
[票号] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [车次] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [起点站] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [终点站] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [票价] [float] NOT NULL,
[座位号] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [工号] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [乘客编号] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_车票表] PRIMARY KEY CLUSTERED (
[票号] ASC
) ON [PRIMARY] ) ON [PRIMARY] GO
SET ANSI_PADDING OFF GO USE [zc]
数据库课程设计报告
GO
ALTER TABLE [dbo].[车票表] WITH NOCHECK ADD CONSTRAINT [FK_车票表_车辆表] FOREIGN KEY([车次]) REFERENCES [dbo].[车辆表] ([车次]) GO
ALTER TABLE [dbo].[车票表] CHECK CONSTRAINT [FK_车票表_车辆表] GO
ALTER TABLE [dbo].[车票表] WITH NOCHECK ADD CONSTRAINT [FK_车票表_乘客表] FOREIGN KEY([乘客编号]) REFERENCES [dbo].[乘客表] ([乘客编号]) GO
ALTER TABLE [dbo].[车票表] CHECK CONSTRAINT [FK_车票表_乘客表] GO
ALTER TABLE [dbo].[车票表] WITH NOCHECK ADD CONSTRAINT [FK_车票表_售票员表] FOREIGN KEY([工号]) REFERENCES [dbo].[售票员表] ([工号]) GO
ALTER TABLE [dbo].[车票表] CHECK CONSTRAINT [FK_车票表_售票员表] 5.乘客表sql语句如下所示: CREATE TABLE [dbo].[乘客表](
[乘客编号] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [身份证号] [char](18) COLLATE Chinese_PRC_CI_AS NOT NULL, [姓名] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_乘客表] PRIMARY KEY CLUSTERED (
[乘客编号] ASC
) ON [PRIMARY]
数据库课程设计报告
) ON [PRIMARY] GO
SET ANSI_PADDING OFF GO USE [zc] GO
ALTER TABLE [dbo].[乘客表] WITH CHECK ADD CONSTRAINT [CK_乘客表] CHECK (([身份证号] like ' [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9,x]')) 6.售票员表sql语句如下所示: CREATE TABLE [dbo].[售票员表](
[工号] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [姓名] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [年龄] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [性别] [char](2) COLLATE Chinese_PRC_CI_AS NOT NULL,
CONSTRAINT [PK_售票员表] PRIMARY KEY CLUSTERED (
[工号] ASC
) ON [PRIMARY] ) ON [PRIMARY] GO
SET ANSI_PADDING OFF GO USE [zc] GO
ALTER TABLE [dbo].[售票员表] WITH CHECK ADD CONSTRAINT [CK_售票员表] CHECK (([性别] = '男' or [性别] = '女'))
数据库课程设计报告 4数据库完整性约束
4.1 实体完整性约束说明
1.车辆表中“车次”为主键如图所示:
图4.1车辆表
2.买票表中“买票号”为主键如图所示:
图4.2买票表
3.退票表中“票号”为主键如图所示:
图4.3退票表
4.乘客表中“乘客编号”为主键如图所示:
图4.4乘客表
5.车票表中“票号”为主键如图所示:
数据库课程设计报告
图4.6车票表
6.售票员表中“工号”为主键如图所示:
图4.7售票员表
4.2 参照完整性约束说明
1.买票表中的“乘客编号”来自乘客表,如图所示:
图4.8买票表中的外键
2.退票表中的“乘客编号”来自乘客表,如图所示:
数据库课程设计报告
图4.9退票表中的外键
3.车票表中的“车次”来自车票表,如图所示:
图4.10车票表中的外键
4.车票表中的“乘客编号”来自车票表,如图所示:
图4.11车票表中的外键
5.车票表中的“工号”来自车票表,如图所示:
图4.12车票表中的外键
数据库课程设计报告
4.3 用户自定义完整性约束说明
1.售票员表中的check的约束:
图4.13售票员表中的check约束
2.车辆表中的check的约束:
图4.14车辆表中的check约束
3.乘客表中的check的约束:
数据库课程设计报告
图4.15乘客表中的check约束
4.乘客表中的check的约束:
图4.16乘客表中的check约束
数据库课程设计报告
5 总结与展望
在数据库课程设计过程中,经过认真的回顾数据库的相关知识,并很好的巩固了课程设计的基本步骤,掌握了在数据库课程设计过程中所要遵循的基本原则和环节;
由于时间关系,这次课程设计的系统没有做的很完善,但是在这次课程设计中,知道了需求分析的几个方面,物理结构等概念,这是在上课中没有体会到的其含义的。还有外键、表约束的设置,在这次课程设计中都遇到了。
虽然这次课程设计时间较短,但还是有很大收获的。
老师将题目发下,对应学号选题,开始我那个题目意思我无法理解,无处下笔,后来询问了一下老师,老师建议换个题目,最后只有换题目了。这个火车站的售票管理系统还是比较好的,通过网上查资料,知道火车站售票管理系统中有哪些数据,这样便于构建整体框架。第一天就完成了,需求分析。构想了大概框架。然后设计大概框架,建立E-R图,找到各个实体属性,当然还有些没想到的,有些不完善。最后设计数据库,建立表结构、表约束、表数据,写报告老师检查报告。
通过这些天,我知道数据的项目有哪些内容,也在这样一个课程设计中,边学习,边设计中巩固了以往的知识,也学习了新的知识。
由于时间和本人能力关系,这次的课程设计,不免有些不足。有了这次经历,对于以后的项目就有一些了解了。
数据库课程设计报告
参考文献
[1] 陈圣国. 2005.信息系统分析设计. 西安:西安电子科技大学出版社。
[2] 高晓黎,韩晓霞. 2010. SQL SERVER2008案例教程,北京:清华大学出版社。
[3] 胡国胜,易著梁. 数据库技术与应用: SQL SERVER2008. 北京:机械工业出版社。
[4] 刘腾红,孙细明. 2006. 信息系统分析与设计,北京:科学出版社。
[5] 罗耀军. 2011. 数据库应用技术与项目教程(基于 SQL SERVER2008). 北京:电子工业出版社。
[6] 钱冬云,周雅静. 2010. SQL SERVER2008数据库应用技术. 北京:清华大学出版社。
[7] 屠建飞. 2010. SQL SERVER2008数据库管理. 北京:清华大学出版社。
[8] 卫淋. 2011. SQL SERVER2008数据库应用技术开发教程. 2版. 北京:清华大学出版社。
[9] 薛华成. 2007. 管理信息系统. 5版. 北京:清华大学出版社。
[10] 郑阿奇. 2007.SQL SERVER实用教程(SQL SERVER2008版). 3版.北京:电子工业出版社。
[11] MikeHotek. 2011. SQL SERVER 2008 从入门到精通. 潘玉淇译. 北京:清华大学出版社。
[12] RobinDewson. 2009. SQL SERVER 2008 基础教程. 董明, 等译. 北京:人民邮电出版社。
数据库课程设计报告
课程设计评分表