车票销售管理系统课程设计报告.docx

上传人:b****7 文档编号:23594077 上传时间:2023-05-18 格式:DOCX 页数:19 大小:149.43KB
下载 相关 举报
车票销售管理系统课程设计报告.docx_第1页
第1页 / 共19页
车票销售管理系统课程设计报告.docx_第2页
第2页 / 共19页
车票销售管理系统课程设计报告.docx_第3页
第3页 / 共19页
车票销售管理系统课程设计报告.docx_第4页
第4页 / 共19页
车票销售管理系统课程设计报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

车票销售管理系统课程设计报告.docx

《车票销售管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《车票销售管理系统课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。

车票销售管理系统课程设计报告.docx

车票销售管理系统课程设计报告

目录

1.系统需求分析4

1.1系统调查4

1.2用户需求4

2.系统逻辑方案5

2.1数据流图(简称为DFD)5

2.2数据字典(简称为DD)6

2.2.1数据项6

3.系统总体结构设计6

3.1软件系统总体结构设计6

3.2数据存储的总体设计7

3.3系统功能模块设计7

4.数据库详细设计9

4.1数据库设计9

4.1.1E-R图:

9

4.1.2关系模型:

11

4.1.3数据库结构12

4.2数据库的完整性和安全性13

4.2.1数据库的完整性13

4.2.2数据库的安全性13

5.数据库操作(SQLServer2000语句完成)14

5.1创建车票销售管理系统14

5.2创建车票销售系统索引表14

5.3建立存储过程向表中插入、修改、删除数据。

15

5.4建立存储过程实现查询17

5.5建立视图21

6.实验心得21

7.参考文献22

1.系统需求分析

1.1系统调查

对汽车站售票进行详细调查是了解系统需求和进行系统分析和设计的重要基础工作。

汽车售票管理系统主要用于车站日常的票务处理。

车售票管理系统在正常运行中需要对使用该系统的主要是汽车站售票人员、汽车站售票工作的管理人员与系统管理员。

为达到操作过程中的直观、方便、实用、安全等要求,我们组在这个系统中采用模块化程序设计的方法,便于系统功能的组合和修改,以及扩充和维护。

1.2用户需求

根据需求分析,本系统要实现以下的基本功能。

1.登录功能:

分为汽车站售票人员和系统管理员两种权限登陆。

用户通过输入不同用户名和密码进行身份验证,系统通过用户名和密码判断不同用户的权限,从而确定该用户可以执行的操作。

2.车票信息查询功能:

由汽车站的普通售票人员通过不同的检索入口,查询车票信息,并进行排序。

3.修改功能:

汽车站售票人员、汽车站售票工作的管理人员能够修改自身的用户名和密码,系统管理员则能实现系统用户与普通用户的添加,修改普通用户与系统管理员的密码,以此确保该系统能够安全操作,避免不必要的损失。

4.汇总功能:

对当天车票的信息进行汇总。

 

2.系统逻辑方案

2.1数据流图(简称为DFD)

 

2.2数据字典(简称为DD)

2.2.1数据项

表2.1车次编号

数据项

系统名:

车票销售管理系统编号:

I001名称:

车次编号别名:

数据项值:

类型:

字符型长度:

10个字节取值范围:

简述:

每辆客车都具有唯一的编号,它是某种票的唯一标识符,每种票都有唯一的编号,如“00001”通常表示大吧。

修改记录:

编写

日期

审核

表2.2票名称

数据项

系统名:

车票销售管理系统编号:

I002名称:

票名称别名:

数据项值:

类型:

字符型长度:

10个字节取值范围:

简述:

每辆客车都具有唯一票名称。

修改记录:

编写

日期

审核

3.系统总体结构设计

3.1软件系统总体结构设计

软件系统总体结构设计的主要任务就是将整个系统合理的划分成各个功能模块,正确处理模块之间与模块内部的联系及它们之间的调用关系和数据联系,定义各模块的内部结构等,本系统的软件总体结构按分解-协调的原则,信息隐蔽抽象的原则,自顶向下的原则,一致性原则,面向用户的原则进行设计

3.2数据存储的总体设计

按用途分类可把本系统文件分成以下几种:

(1)主文件:

系统中的主文件是最重要的共享文件,主要存放具有固定值属性的数据。

它需要长期保存,并不断更新。

如车次编号。

(2)处理文件:

处理文件包含下一次更新文件所需要的全部记录,本系统中的处理文件如票价。

 

3.3系统功能模块设计

该模块主要实现拥护通过查询界面可以根据条件进行车次时刻、车次票价查询。

 

4.数据库详细设计

4.1数据库设计

数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。

作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性。

对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来实现用户在各方面提出的功能要求。

4.1.1E-R图:

在系统的数据库设计中,先要对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系,然后才能得出系统的关系模式。

可以采用E-R图的方法来进行数据结构分析,E-R设计方法是一种通过E-R图来描述现实世界信息结构的DB设计方法。

E-R图由实体、属性、联系三部分组成。

各分E-R图说明如下:

图2-1车票ER图

图2-2顾客ER图

图2-3实体之间ER图

4.1.2关系模型:

车票与顾客之间的联系

售票1:

N

车票(票号,车次,日期,车型,票价,开车时间,票种,座位号,起始站,终点站)

顾客(身份证号,银行卡号)

退票1:

N

车票(票号,车次,日期,车型,票价,开车时间,票种,座位号,起始站,终点站)

顾客(身份证号,银行卡号)

订票1:

N

车票(票号,车次,日期,车型,票价,开车时间,票种,座位号,起始站,终点站)

顾客(身份证号,银行卡号,票号,日期,交易时间,交易金额,数量,起始站,终点站)

4.1.3数据库结构

表4.1Car表详细设计

字段名

数据类型

是否主键

是否必填

字段说明

carid

char

车次编号

cartype

int

客车型号

platenumber

char

车牌号

carholder

char

责任人

runningway

char

经营路线

seatlimit

int

座位限额

outsettime

datetime

发车时间

表4.2Seat表详细设计

字段名

数据类型

是否主键

是否必填

字段说明

carid

char

车次编号

date

datetime

日期

terminalname

char

终点站

selled

char

票是否售出

price

int

车票价格

表2.3PriceDiscount表详细设计

字段名

数据类型

是否主键

是否必填

字段说明

price

int

车票价格

tickettypeid

int

车票类型编号

discount

int

折扣

表2.4Price表详细设计

字段名

数据类型

是否主键

是否必填

字段说明

terminalid

char

终点站编号

outstation

char

起始站

terminalname

char

终点站

tnpycode

char

拼音码

price

int

车票价格

表2.5Type表详细设计

字段名

数据类型

是否主键

是否必填

字段说明

recordid

int

记录号

tickettypeid

int

车票类型号

tickettype

char

车票类型

 

4.2数据库的完整性和安全性

4.2.1数据库的完整性

数据库的完整性是指数据的正确性和相容性。

数据库管理系统(DBMS)用一定的机制来检查数据库中的数据是否满足规定的条件——完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中。

本系统中定义了表与表之间的联系有助于实现完整性规则,一般在程序中实现具体的完整性控制。

实体完整性:

要求主键属性的值不为空。

4.2.2数据库的安全性

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。

在数据库系统中,大量的数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,系统的安全保护措施就显得更为重要,它保护数据库防止恶意的破坏和非法的存取。

本系统包括数据库的安全和服务器的安全。

采用管理员表示和鉴定的方法实现数据库的安全,此安全管理措施并不在前台开发工具中实现,而是在后台数据库中实现。

在登录数据库时,系统让管理员户表示自己的身份,不同的管理员权限不同,系统进行核实,鉴别此管理员是否为合法用户,若是,系统进一步核实用户,通常要求用户输入口令,系统和对用户口令以鉴别用户身份。

服务器的安全也是通过用户在登录服务器时输入合法的用户名和密码来实现的。

这是一种简单可行的方法,实现起来比较方便。

没有采用更加复杂的系统安全管理措施是因为本管理系统一般是应用在校园网中,采用安全管理措施主要是为了防止没有修改权限的用户无意间修改了数据,因此采用用户标识和鉴定的安全管理措施就能够保障数据库的安全性。

5.数据库操作(SQLServer2005语句完成)

5.1创建车票销售管理系统

createdatabasesellticketsystem

usesellticketsystem

5.2创建车票销售系统索引表

创建车辆信息表

createtablecar

(caridchar(10)constraintc_PRIPRIMARYKEY,cartypeint,platenumberchar(10),carholechar(6),outsettimedatetime)

创建座位信息表

createtableseat

(caridchar(10)FOREIGNKEYREFERENCEScar(carid),datedatetime,terminalchar(6)FOREIGNKEYREFERENCESprice(terminal),priceint)

创建打折信息表

createtablepricediscount

(recordnumberintconstraintpd_PRIPRIMARYKEY,tickettypeidint,discountint,caridchar(10)FOREIGNKEYREFERENCEScar(carid))

创建价格表

createtableprice

(terminalidchar(10)constraintp_PRIPRIMARYKEY,outstationchar(10),terminalchar(6),caridchar(10)FOREIGNKEYREFERENCEScar(carid),ticketpriceint)

 

创建汇总表

createtabletype

(recordidintconstraintt_PRIPRIMARYKEY,tickettypeidintFOREIGNKEYREFERENCESpricediscount(tickettypeid),tickettypechar(10))

5.3建立存储过程向表中插入、修改、删除数据。

/*插入数据的存储过程*/

createproccar_proc

@caridchar(10),@cartypeint,@platenumberchar(10),@carholechar(6),@outsettimedatetime

as

insertintocar(carid,cartype,platenumber,carhole,outsettime)values(@carid,@cartype,@platenumber,@carhole,@outsettime)

execcar_proc'0001','10','zj1000','yi','2010-7-8'

execcar_proc'0002','20','zj2000','er','2010-7-8'

execcar_proc'0003','30','zj3000','san','2010-7-8'

createprocseat_proc

@caridchar(10),@datedatetime,@terminalchar(6),@priceint

as

insertintoseat(carid,date,terminal,price)values(@carid,@date,@terminal,@price)

execseat_proc'0001','2010-7-8','北京','10'

execseat_proc'0002','2010-7-8','上海','20'

execseat_proc'0003','2010-7-8','嘉兴','30'

createprocpricediscount_proc

@recordnumberint,@tickettypeidint,@discountint,@caridchar(10)

as

insertintopricediscount(recordnumber,tickettypeid,discount,carid)values(@recordnumber,@tickettypeid,@discount,@carid)

execpricediscount_proc'1','1','80%','1'

execpricediscount_proc'2','2','80%','2'

execpricediscount_proc'3','3','80%','3'

createprocprice_proc

@terminalidchar(10),@outstationchar(10),@terminalchar(6),@caridchar(10),@ticketpriceint

as

insertintoprice(terminalid,outstation,terminal,carid,ticketprice)values(@terminalid,@outstation,@terminal,@carid,@ticketprice)

execprice_proc'1','杭州','北京','0001','100'

execprice_proc'2','杭州','上海','0002','100'

execprice_proc'3','杭州','嘉兴','0003','100'

createproctype_proc

@recordidint,@tickettypeidint,@tickettypechar(10)

as

insertintotype(recordid,tickettypeid,tickettype)values(@recordid,@tickettypeid,@tickettype)

exectype_proc'1','1','大巴'

exectype_proc'2','1','中巴'

exectype_proc'3','1','小巴'

 

/*删除数据的存储过程*/

createproccar_delete_proc

@caridchar(10)

as

deletefromcar

wherecarid=@carid

execcar_delete_proc'0002'

 

/*修改数据的存储过程*/

createproccar_update_proc

@caridchar(10)constraint,@cartypeint,@platenumberchar(10),@carholechar(6),@outsettimedatetime

as

updatecarid

setcarid=@carid,cartype=@cartype,platenumber=@platenumber,carhole=@carhole,outsettime=@outsettime

wherecarid=@carid1

execcar_update_proc'0001','10','za1000','yi','2010-7-8','0002'

5.4建立存储过程实现查询

/*建立存储过程实现单表查询*/

/*建立名为“单表查询1”的存储过程,用来查询某辆客车的信息*/

createproc单表查询1

@caridchar(10)

as

select*

fromcar

wherecarid=@carid

/*建立名为“单表查询2”的存储过程,用来查询客车SEAT的信息*/

createproc单表查询2

@caridchar(10)

AS

select*

fromseat

wherecarid=@carid

/*建立名为“单表查询3”的存储过程,用来查询车票打折的信息*/

createproc单表查询3

@recordnumberint

as

select*

frompricediscount

whererecordnumber=@recordnumber

/*建立名为“单表查询4”的存储过程,用来查询车票价格的信息*/

createproc单表查询4

@terminalidchar(10)

as

select*

fromprice

whereterminalid=@terminalid

/*建立名为“单表查询5”的存储过程,用来查询某个TYPE的信息*/

createproc单表查询5

@recordidint

as

select*

fromtype

whererecordid=@recordid

 

/*建立存储过程实现连接查询*/

/*建立名为“连接查询1”的存储过程,用来查询某辆客车编号对应的车票价格信息*/

createproc连接查询1

@priceint

as

selectprice

fromcar,seat

wherecar.carid=seat.caridand

price=@price

/*建立名为“连接查询2”的存储过程,用来查询某辆车起始站的发车时间*/

createproc连接查询2

@outsettimedatetime

as

selectoutsettime,outstation

fromcar,price

wherecar.carid=price.caridand

outstation=@outstation

/*建立名为“连接查询3”的存储过程,用来查询某辆车起始站的车票类型*/

createproc连接查询3

@outstationchar(10),@tickettypechar(10)

as

selecttickettype

frompricediscount,price,type

whereprice.carid=pricediscount.caridand

pricediscount.tickettypeid=type.tickettypeidand

outstation=@outstationand

tickettype=@tickettype

/*建立名为“嵌套查询1”的存储过错,用来查询某个发车人的记录号*/

createproc嵌套查询1

@carholechar(6)

as

selectrecordnumber

frompricediscount

wherecaridIn(selectcarid

fromcar

wherecarhole=@carhole)

/*建立名为“嵌套查询2”的存储过错,用来查询某辆客车起始站的发车时间*/

createproc嵌套查询2

@outstationchar(10)

as

selectoutsettime

fromprice

wherecaridIn(selectcarid

fromcar

whereoutstation=@outstation)

 

5.5建立视图

/*视图建立*/

/*1,由客车表“car”建立一个视图,该视图由客车表的所有列构成*/

createview客车表(车次编号,客车型号,车牌号,责任人,发车时间)

as

select*fromcar

/*2,由票价表“price”建立一个视图,该视图由票价信息表的所有列构成*/

createview票价信息(终点站编号,起始站,车次编号,总票价)

as

select*fromprice

/*3,由记录汇总信息表“type”建立一个视图,该视图由汇总信息表的所有列构成*/

createview记录汇总信息(记录号,车票类型编号,车票类型)

as

select*fromtype

 

6.实验心得

总结:

本次课程设计调查从长途客运公司,根据其具体情况,设计售票管理系统。

加深了对数据库课程知识的理解。

由于时间仓促,系统还不够完善,还面临很多问题,但是通过对本次数据库的课程设计以及对数据库语言又有了更深一步的学习,对今后参与和开发数据库积累了不少经验,达到了学与用的结合。

于此同时,我也深深得学到了团队合作的重要性,多交流,对于这种分工完成的项目,组员之间的交流是极其必要的。

如果组员之间不能很好的沟通,不仅会做很多无用功,而且也会做很多重复的工作。

组员之间很好的互通有无,表明自己正在做什么,下一步要做什么,才能使设计很好的开展开来。

而我们组这次就做到了这点,我们每天都会在qq上或者见面相互交流,并及时修改进度安排表;除此之外,我们还相互帮助解决问题,或者共同解决问题。

在几天几夜的努力下,我们找到了一些参考书,又在这写书的帮助下了解了系统设计的各种方法,在编译过程中常常出现的问题,和解决的方法。

接下来就是编程件方面的焊接工作了。

没想到这项看起来不需要多少技术的工作却是非常的劳心劳力。

很多次是早上起来买瓶水放些吃的在宿舍里,一泡就是一天。

我看到有很多人跟我们一样,三三两两一同讨论学习。

当我想放弃的时候,我也这么对自己说,即使你做出来的是次品甚至不合格品,但是你一定要拿出来一件成品。

7.参考文献

[1]高春艳,李俊民.VisualBasic信息系统开发案例精选[M].北京:

机械工业出版社,2005

[2]林卓然.VisualBasic程序设计教程[M].北京:

电子工业出版社,2004

[3]范剑波.数据库技术及应用[M].浙江:

浙江大学出版社,2007

[4]严辉,刘卫国.数据库技术与应用实践教程——SQLSERVER[M].北京:

清华大学出版社,2007

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

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

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

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