数据库火车票销售系统.docx

上传人:b****8 文档编号:11344548 上传时间:2023-02-28 格式:DOCX 页数:39 大小:298.46KB
下载 相关 举报
数据库火车票销售系统.docx_第1页
第1页 / 共39页
数据库火车票销售系统.docx_第2页
第2页 / 共39页
数据库火车票销售系统.docx_第3页
第3页 / 共39页
数据库火车票销售系统.docx_第4页
第4页 / 共39页
数据库火车票销售系统.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

数据库火车票销售系统.docx

《数据库火车票销售系统.docx》由会员分享,可在线阅读,更多相关《数据库火车票销售系统.docx(39页珍藏版)》请在冰豆网上搜索。

数据库火车票销售系统.docx

数据库火车票销售系统

 

长沙学院

 

课程设计说明书

题目

火车票预定管理系统

系(部)

数学与计算机科学系

专业(班级)

姓名

学号

指导教师

起止日期

2016.05.16—05.27

课程设计任务书

课程名称:

数据库系统原理课程设计

题目:

火车票预订管理系统

1、某铁路局火车票预订管理系统需要如下信息:

车次信息:

车次编号、出发地、目的地、出发时间、到站时间、火车类型、里程数,座位数等。

车票信息:

座位号、价格、当前预售状态、座位类型等。

客户:

姓名、联系电话、身份证号码等。

业务员:

姓名、工号。

其业务规则描述如下:

一个客户可以预订(退订)多张火车票,但一张火车票只能被一个客户预订(退订);一个业务员能销售多张车票,但一张车票只被一个业务员销售。

一辆列车包含多张车票,但一张车票只属于一辆列车。

2、系统功能的基本要求:

按照一定条件查询、统计符合条件的火车、车票、客户信息等。

例如火车车次查询、时刻表查询、剩余座位数、同一路线可选火车信息、客户购买历史等,能够在车票售出时更新可用火车票数,模拟完成火车票订票、退订业务。

各阶段具体要求:

1、需求分析阶段

●定义数据项的含义和取值

●定义目标系统的数据流

2、概念结构设计阶段

●画出实体模型E-R图

3、逻辑结构设计阶段

●将实体模型转化为关系模型

●给出每个关系的主关键字和函数依赖集

●分析你所设计的关系数据库模式是否属于3NF

4、物理设计阶段

●确定所有字段的名称、类型、宽度、小数位数及完整性约束

●确定数据库及表的名称及其组成

●确定索引文件和索引关键字

5、数据库安全及维护设计阶段

●设计一个适合的数据库安全策略(用户身份认证、访问权限、视图)

●为了实现复杂的数据完整性约束,设计适当的触发器

●设计一个适合的数据库备份策略

6、实施阶段

●要求所有操作必须在查询分析器中用SQL语句或系统存储过程完成。

●对于学有余力的同学,可以使用嵌入式SQL语句结合高级语言开发完成。

设计工作量:

(1)软件设计:

完成问题陈述中所提到的所有需求功能。

(2)论文:

要求撰写不少于3000个文字的电子文档,详细说明各阶段具体要求。

工作计划:

安排两周时间进行课程设计,软件开发步骤如下,第一周完成1~4,第二周完成5~8,论文同步进行;

1)选定题目

2)需求分析

3)概念结构设计

4)逻辑结构设计

5)物理设计

6)数据库安全及维护设计

7)数据库上机实现

8)答辩

计划时间

指导老师

班级

13~14周

潘怡、卓琳

13软件1班

13~14周

潘怡、卓琳

13软件2班

13~14周

刘欣、黄彩霞

13软件3班

13~14周

刘欣、黄彩霞

13软件4班

13~14周

杨刚、刘钢钦

13软件5班

13~14周

杨刚、刘钢钦

13软件6班

注意事项

⏹提交电子文档

Ø长沙学院课程设计任务书(每学生1份)

Ø长沙学院课程设计论文(每学生1份)

Ø长沙学院课程设计鉴定表(每学生1份)

指导教师签名:

      日期:

    

教研室主任签名:

       日期:

        

系主任签名:

         日期:

        

 

长沙学院课程设计鉴定表

姓名

学号

专业

软件工程

班级

设计题目

火车票预订管理系统

指导教师

指导教师意见:

 

评定等级:

教师签名:

日期:

答辩小组意见:

 

评定等级:

     答辩小组长签名:

     日期:

    

教研室意见:

 

教研室主任签名:

日期:

 

系(部)意见:

 

系主任签名:

        日期:

     

说明

课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;

一、引言

1.1编写目的

随着时代的发展,计算机软件和系统的成熟,火车票的正当管理成为一个影响铁路部门正常运营的因素之一,而建立火车票订票管理系统是一个很好的解决办法。

作为计算机应用的一部分,使用计算机对火车票信息进行管理,具有手工管理所无法比拟的优点,例如检索迅速、查找方便、可靠性高、存储量大、保密性好等,这些优点能够极大的提高火车票信息管理的效率,也正体现了火车票的科学化正规化管理

现在随着社会的发展,数据量急剧增长,现在人们就借助计算机和数据库技术科学的保存大量的数据,以便能更好的利用这些数据资源。

本论文就是通过SQL的整体设计把数据库与应用程序相连接,做成一个火车票的订票管理系统,使得火车票管理员能够有效的管理车次信息、旅客信息、退票信息等。

同时用户可以通过查询到相关的火车票信息,选择是否适合自己,也可以在网上直接订票、退票,省时省力。

 

1.2参考资料

资料名称

作者

文件编号、版本

《数据库系统概论》

王珊、萨师煊

2006年5月第4版

《现代软件工程》

孙涌

2003年8月第1-246版

《精通SQLserver2000数据库管理与开发》

于松涛

2003年10月

二、需求规约

2.1业务描述

该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。

我们在这里主要从技术可行性、经济可行性和操作可行性三方面进行分析。

2.1.1经济可行性

本系统其他应用软件、硬件系统也易于获得.因此,开发成本较低。

而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。

所以,从经济的角度来看,该系统可行。

2.1.2技术可行性

开发工具:

VS2005

数据库环境:

SQLServer2008

系统环境:

MicrosoftWindows2000或以上版本。

系统实现依靠相对熟悉的c语言和SQLServer2008数据库系统,其基本操作实质还是对数据库进行添加、删除、查找等操作。

2.1.3操作可行性

系统采用菜单式,实现用户与数据库的交互,界面简洁友好,操作方便。

2.1.4业务流程图

经过可行性分析和初步需求调查,抽象出该系统业务流程图,结合该实例具体情况,给出旅客信息、订票信息和取票通知的具体需求。

图2.1旅客购票流程图

⑴调查用户需求

①售票处需求

●功能:

旅客持个人证件去火车站购买火车票。

希望能通过旅客姓名查到该旅客的列车车次并记录旅客基本信息。

●统计功能:

◆按火车票统计买票人数

◆按姓名统计火车票数

②旅客购票需求

●交费功能:

◆交费

◆退费

③取票需求

●通知功能:

◆通知旅客取票

●统计功能:

◆统计通过验证的人数

◆统计可以取票的人

◆统计未通过验证的人数

●查询功能:

◆购票旅客查询

购票旅客姓名

购票旅客身份证号

购票旅客订单号

④列车车次信息需求

●查询功能:

◆车次

◆始发站

◆终点站

◆始发时间

2.1.5系统框架

在调查完了用户需求之后,就要开始分析用户需求。

在此,我们们采用自顶向下的结构化分析方法(SA方法)。

首先,定义全局概念结构的框架,如图2.2所示。

图2.2火车票预定系统总框架图

各子系统需要进一步细化。

旅客信息系统为例进一步细化,如图2.3所示。

图2.3旅客信息系统细化

以其中的查询旅客信息功能为例进一步细化,如图2.4所示。

图2.4查询旅客信息功能

 

图2.5列车车次信息系统细化

图2.6取票通知系统细化

图2.7旅客信息系统能查询到的内容

图2.8火车票信息系统能查询到的内容

 

图2.9退票信息系统细化

将所有子系统全部细化。

将所有用户需求分析完毕之后,就要开始构造数据字典了。

经分析之后,本系统要用到五个基本表:

退票信息表,旅客信息表,列车车次信息表,取票通知信息系统,列车座位信息表。

数据结构定义如表2.1所示。

表2.1数据结构定义

数据结构名

含义说明

组成

退票信息

定义了退票旅客的有关信息

旅客姓名,身份证号,订单号,电话号

旅客

定义了旅客有关信息

旅客姓名,身份证号,性别,

工作单位,电话号

列车车次信息表

定义了车次

的有关信息

车次号,始发地,目的地,始发时间

取票通知单

定义了取票通知相关有关信息

旅客姓名,取票时间,列车车次,座位号,火车票类型

列车座位信息表

定义了列车座位有关信息

列车号,座位号,座位信息,火车票类型

2.2需求分析

需求分析是软件设计的一个重要的环节。

本阶段对订票系统的应用情况作全面调查,以确定系统目标,并对系统所需要的基础数据以及数据处理要求进行分析,从而确定用户的需求。

用户对系统的需求我们从以下几方面进行分析。

2.2.1功能需求

本网上订票系统应该具备如下功能:

1.查询

分为对车次信息的查询和客户对已订车票信息的查询。

要求:

1)对车次的查询,可以按照发车车次进行查询;2)车次信息包括:

车号、出发地、目的地、发车日期、开出时刻、票价。

3)座位类型设定。

2.订票

通过查询系统,客户根据自己的需求找到满意的车次,再输入个人信息后直接通过网上订票确定已预订选中的车票。

要求:

订票记录应包括:

会员名、车号、发车日期、订购日期、订购票数、总价。

3.退票

可退票,通过查询系统,客户可以自己的名字找到自己的订票信息,通过退票模块退去已购车票。

2.2.2数据需求

信息需求,即在系统中需要处理哪些数据。

根据对火车站网上订票系统的分析,本系统的信息需求如表2-1所示。

表2-1信息输入输出

信息输入

信息处理

信息输出

用户输入所需车次

检索系统数据库

符合用户需求的车次及相关

信息

用户输入个人信息及所需订

购的车票信息

更新系统中的订票信息,

将新信息存入系统数据库

操作反馈(如订票成功)

用户输入自己的名字、身份

证号;或交易的订单号

检索系统数据库

符合用户需求的订票信息

用户输入自己的名字

检索系统数据库以得到订票

记录,删除用户请求的订票

记录,更新系统数据库

操作反馈(如退票成功等)

2.2.3性能需求

为了保证系统能够长期、安全、稳定、可靠、高效的运行,本系统应该满足以下的性能需求。

1.准确性和及时性

系统处理的准确性和及时性是系统的必要性能。

系统应能及时而且准确的根据用户权限及所输入的信息做出响应。

由于本系统的查询功能对于整个系统的功能和性能完成举足轻重。

作为系统的很多数据来源,而车票的数量和时间又影响用户的决策活动,其准确性和及时性很大程度上决定了系统的成败。

在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。

2.易用性

本系统是直接面对用户的,而用户往往对计算机并不是非常熟悉。

这就要求系统能够提供良好的用户接口,易用的人机交互界面。

要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。

3.安全性

网上订票系统中涉及到的数据是客运公司相当重要的信息,系统要保证用户的权限,对于车次等信息用户只享有查询服务,不得更改;系统还要提供方便的手段供系统维护人员进行数据备份、日常安全管理、以及系统意外崩溃时数据的恢复等工作。

同时系统还要保证对数据库进行及时更新,保证数据一致性。

三、数据库环境说明

数据库实例

数据库系统

数据库部署环境

数据库设计工具

数据库存放位置

说明

火车票订票管理

SQLServer2008

Window7

SQLServer

存放位置,绝对路径/相对路径D:

/Program

完整的车票管理流程

四、数据库的命名规则

4.1数据库对象命名规则

数据库对象

命名规则

备注

Tbl_功能描述字符串

例如:

Checi车次信息表

视图

View_功能描述字符串

例如:

Checi车次信息视图

存储过程

Procedure_功能描述字符串

例如:

[dbo].[kh]存储过程

触发器

Insert_功能描述字符串

例如:

Insert_Or_Update_Sal_1更改库数据库

4.2数据项编码规则

数据项

命名规则

数据类型

长度范围

备注

C_ci

(G/K/T/D)+号码

varchar

10位

车次号

T_seat

1-800

int

10位

座位号

C_goTime

年—月—日+时:

分:

varchar

10位

出发时间

C_fanhuiadd

地名

varchar

10位

目的地

K_name

名字

varchar

10位

客户姓名

Y_name

名字

varchar

10位

业务员姓名

K_id

数字

varchar

16位

身份证号码

Y_tel

数字

varchar

11位

电话号码

T_price

数字

float

10位

车票价格

T_type

一等座/二等座

varchar

10位

座位类型

五、逻辑设计

(1)关系模式:

车次信息(车次编号、出发地、目的地、出发时间、到站时间、火车类型、里程数,座位数)

车票信息(座位号、价格、当前预售状态、座位类型)

客户(姓名、联系电话、身份证号码)

业务员(姓名、工号)

(2)

关系图:

主键

主键

1

主键

n1

n

n

1

主键

图5.1系统总体结构E-R图

图5.2逻辑关系图

 

六、物理设计

6.1表汇总

表名

功能说明

车次表

存储车次的相关信息及其数据类型以及相关的约束

车票信息表

存储车票的相关信息及其数据类型以及相关的约束

客户表

存储客户的相关信息及其数据类型以及相关的约束

业务员表

存储业务员的相关信息及其数据类型以及相关的约束

6.2表的基本信息

车次信息表

表名

车次信息表

数据库用户

主键

车次号

其他排序字段

索引字段

车次号

序号

字段名称

数据类型(精度范围)

允许为空Y/N

唯一Y/N

区别度

默认值

约束条件/说明

1

t_no

VARCHAR(10)

N

Y

车次号/主键

2

t_departure

VARCHAR(10)

N

N

出发地

3

t_destination

VARCHAR(10)

N

N

目的地

4

t_goTime

DATETIME

N

N

出发时间

5

t_returnTime

DATETIME

N

N

到站时间

6

t_trainType

VARCHAR(10)

Y

N

火车类型

7

mileageNumber

INT

N

N

里程数

8

seatNumber

INT

N

N

座位数

sql脚本

CREATETABLEtrain_number

t_noVARCHAR(10)PRIMARYKEY,--车次编号(主键)

t_departureVARCHAR(10)NOTNULL,--出发地

t_destinationVARCHAR(10)NOTNULL,--目的地

t_goTimeDATETIMENOTNULL,--出发时间

t_returnTimeDATETIMENOTNULL,--到站时间

t_trainTypeVARCHAR(10)CHECK(t_trainTypeIN('高铁','普快','特快','动车')),--火车类型

t_mileageNumberINTNOTNULL,--里程数

t_seatNumberINTNOTNULL--座位数

备注

 

车票信息表

表名

车票信息表

数据库用户

主键

车次编号

其他排序字段

索引字段

车次编号

序号

字段名称

数据类型(精度范围)

允许为空Y/N

唯一Y/N

区别度

默认值

约束条件/说明

1

t_no

VARCHAR(10)

N

Y

车次编号/主键

2

ti_seatNo

VARCHAR(10)

N

N

座位号

3

ti_seatPrice

FLOAT

(2)

N

N

车票价格

4

ti_saleStatus

VARCHAR(10)

N

N

销售状态

5

ti_seatType

VARCHAR(10)

N

N

座位类型

sql脚本

CREATETABLEtrain_ticket

t_noVARCHAR(10),--车次编号

ti_seatNoVARCHAR(10),--座位号

ti_seatPriceFLOAT

(2)NOTNULL,--车票价格

ti_saleStatusVARCHAR(10)CHECK(ti_saleStatusIN('待售','已售')),--销售状态

ti_seatTypeVARCHAR(10)CHECK(ti_seatTypeIN('一等座','二等座','三等座')),--座位类型

PRIMARYKEY(ti_seatNo,t_no),--主键约束

FOREIGNKEY(t_no)REFERENCEStrain_number(t_no)--外键约束

备注

客户信息表

表名

客户信息表

数据库用户

主键

身份证号码

其他排序字段

索引字段

身份证号码

序号

字段名称

数据类型(精度范围)

允许为空Y/N

唯一Y/N

区别度

默认值

约束条件/说明

1

u_ID

VARCHAR(20)

N

Y

身份证号码/主键

2

u_name

VARCHAR(10)

N

N

姓名

3

u_telephone

VARCHAR(10)

N

N

电话号码

sql脚本

CREATETABLEUsers

u_IDVARCHAR(20)PRIMARYKEY,--身份证号码

u_nameVARCHAR(10)NOTNULL,--姓名

u_telphoneVARCHAR(10)NOTNULL,--电话号码

t_noVARCHAR(10)NOTNULL,--车次号

ti_seatNoVARCHAR(10)NOTNULL,--座位号

FOREIGNKEY(ti_seatNo,t_no)REFERENCEStrain_ticket(ti_seatNo,t_no)--外键约束

--FOREIGNKEY()REFERENCEStrain_ticket()--外键约束

备注

业务员信息表

表名

业务员信息表

数据库用户

主键

编号

其他排序字段

索引字段

编号

序号

字段名称

数据类型(精度范围)

允许为空Y/N

唯一Y/N

区别度

默认值

约束条件/说明

1

s_no

VARCHAR(20)

N

Y

编号/主键

2

s_name

VARCHAR(20)

N

N

业务员姓名

sql脚本

CREATETABLEsaleMan

s_noVARCHAR(20)PRIMARYKEY,--主键约束

s_nameVARCHAR(20)NOTNULL,--业务员姓名

ti_seatNoVARCHAR(10)NOTNULL,--座位号

t_noVARCHAR(10)NOTNULL,--座位号

FOREIGNKEY(ti_seatNo,t_no)REFERENCEStrain_ticket(ti_seatNo,t_no)--外键约束

备注

6.3视图的设计

图6.3.1车票信息视图

图6.3.1售票信息视图

6.4存储过程、函数及触发器的设计

触发器1:

修正票价和票价对应的座位类型[insert_or_upadte_sal_2]

USE[火车票]

GO

/******Object:

Trigger[dbo].[insert_or_upadte_sal_2]ScriptDate:

05/28/201606:

22:

30******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

ALTERtrigger[dbo].[insert_or_upadte_sal_2]

on[dbo].[Che_ticket]

forinsert

as

begin

DECLARE@ti_seatNoVARCHAR(10),@ti_seatPriceFLOAT

(2),@ti_seatTypeVARCHAR(10),@t_novarchar(10)

SELECT@ti_seatNo=T_seat,@ti_seatPrice=T_price,@ti_seatType=T_type,@t_no=C_ciFROMinserted

IF(@ti_seatNoLIKE'A%')

UPDATEChe_ticketSETT_price=200

IF(@ti_seatNoLIKE'A%')

UPDATEChe_ticketSETT_price='一等座'

IF(@ti_seatNoLIKE'B%')

UPDATEChe_ticketSETT_price=100

IF(@ti_seatNoLIKE'B%')

UPDATEChe_ticketSETT_price='二等座'

IF(@ti_seatNoLIKE'A%'AND@t_noLIKE'G-%')

UPDATEChe_ticketSETT_price=900WHERE@ti_seatNo=T_seatAND@t_no=C_ci

IF(@ti_seatNoLIKE'B%'AND@t_noLIKE'G-%')

UPDATEChe_ticketSETT_price=600WHERE@ti_seatNo=T_seatAND@t_no=C_ci

IF(@ti_seatNoLIKE'C%'AND@t_noLIKE'G-%')

UPDATEChe_ticketSETT_price=300WHERE@ti_seatNo=T_seatAND@t_no=C_ci

IF(@ti_seatNoLIKE'A%'AND@t_noLIKE'K-%')--K是普快

UPDATEChe_

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

当前位置:首页 > 人文社科 > 教育学心理学

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

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