当前位置:文档之家› 数据库课程设计(长途客车管理系统)

数据库课程设计(长途客车管理系统)

数据库原理课程设计题目网上订票系统院系_____________专业_____________学生姓名学号指导教师二0 一六年十二月十八日目录1、需求分析: (2)1.1课题背景: (2)1.2 目的和意义: (3)1.3 可行性分析: (3)1.4 需求分析的成果: (3)1.4.1:功能结构图: (3)1.4.2:流程图: (4)1.4.3:数据流图: (5)1.4.4:数据字典: (6)2.软件总体设计: (8)3. 软件详细设计: (9)3.1车票查询模块: (9)3.1.1:查询车票信息: (9)3.1.2:查询客户信息: (9)3.1.3:查询客户订票信息: (9)3.1.4:查询客户退票信息: (9)3.1.5:查询票存系统记录信息: (9)3.2车票信息管理模块: (9)3.2.1添加车票信息: (9)3.2.2删除车票信息: (10)3.2.3修改车票信息: (10)4.数据库设计: (10)4.1:概念模型设计: (10)4.1.1 实体属性图: (10)4.1.2:E-R图 (12)4.1.3:联系: (12)4.1.4:完整性约束: (13)4.2:逻辑结构设计: (13)4.2.1:E-R图向关系模式的转换为: (13)4.2.2:数据表设计: (13)4.3:物理结构设计: (15)4.3.1存储方式: (15)4.3.2检索方式: (16)5.系统编码与设计: (16)6. 总结: (18)1、需求分析:1.1课题背景:随着Internet的迅速发展和用户数量的急剧增加,互联网对于企业和事业单位的运营和发展日益重要,并且网上交易也逐渐被人们认可,并成为未来交易的发展方向。

随着现在旅游业发展的日益壮大一个便于人们操作的网上售票系统应当被开发。

网上售票系统是道路旅游服务信息系统的一个重要组成成分,为旅客提供优质便捷的服务。

为了提高道路客运的售票效率,丰富道路客运的营销手段,车站售票总站及其下属代收点可以通过公用的互联网资源,实现网上的售票。

1.2 目的和意义:随着旅游业的逐渐成熟发达,铁路客运量大幅度的提高,各大省市的客车都显著的增加,这些都对客车票务管理系统提出了更高的要求,所以要不断的完善更新客车票务管理系统,提高列车售票系统的工作效率。

通过人工的方式难以实现以最快的速度选择自己想乘坐的哪一趟客车。

因此产生了一种可行性的方案是基于客户端服务器的体系结构,服务器为数据库系统,存储所有必要的信息。

客户端通过连接到服务的应用程序从而快速、准确地完成相应的工作,通过网上订票,可以达到高效、便捷的购票。

网上售票系统的实施,将会在一定程度上影响道路的客运关系,增强市场竞争能力,减少劳动强度,方便广大旅客购票,有一定的社会和经济效益。

1.3 可行性分析:根据客运售票的实际情况,对其所开展的业务简单介绍如下:(1):查询。

为对车次信息的查询和对已订车票的用户的车票信息进行查询。

其中车票信息包括:车票编号、车次、出发站、目的站、座位类型、座位号、车票价格、发车时间、到达时间、类型、购买的用户姓名。

并且车票的信息职工查看,不予以用户修改。

(2):售票。

客户通过查询系统,进入到查询页面,根据用户的需求找到相应的车次,用户输入客户信息确定后售票。

其中客户信息包括:身份证号、姓名、用户名、联系电话、银行卡类型、银行卡、籍贯、类型。

(3):退票。

客户通过查询系统进入查询页面,输入自己的身份证号找到自己的购票信息,通过退票模块可进行退票。

其中退票信息包括:退票编号、车票编号、退票时间、退票数量、退票手续费。

(4):帐户管理。

分为售票人员帐户和客户。

两个不同的主体分别在两个不同的界面上操作,并且他们的权限也不相同。

售票人员可以对车票的信息进行操作,而用户只能查看自己的订票信息和车次信息,并进行购买或者进行退票。

1.4 需求分析的成果:1.4.1:功能结构图:1.4.2:流程图:(1):订票业务流程图:(2):退票业务流程图:1.4.3:数据流图:分为顶层和下一层数据流图。

顶层数据流图:下一层数据流图--订票:下一层数据流图--退票:1.4.4:数据字典:数据字典包括数据流、数据元素、数据存储、处理。

数据元素:数据流:同意客户退票申请的单据块统K17+28+K32+K33+K34退票单服务器开出的退票单服务器客户K3+K4+K5+K6+K7+K8+K9+K10+K11+K12+K13+K18+K19+K20+K21+K24+K25+K28+K32+K33+K34+K36处理:处理逻辑编号处理逻辑名称简述输入处理输出P1.1 售票服务器向客户售票订票单开出售票单并登记售票单P1.2 退票服务器向客户提供退票单退票单开出退票单并修改记录退票单P2.1 退票处理服务器审理客户的退票单退票申请单处理看是否同意用户的退票单异常退票单:拒绝退票退票单:允许退票,并修改记录P2.2 退票异常服务器不允许用户退票异常退票单拒绝用户退票申请异常退票单数据存储:S1:票存系统存储。

用户订票与退票的来给系统的票存记录增加或删除信息。

S2:记录信息存储。

记录用户订票与退票的详细记录信息。

2.软件总体设计:本系统一共分为三个模块,每个模块的逻辑设计都是紧密相连的。

并且模块的设计是根据上几个阶段的分析所得,符合系统的设计要求。

于是根据上述的分析,可考虑将系统的模块分为车票查询、车票信息管理,模块设计如图所示:3.软件详细设计:对模块总体设计中的模块拆分,指明具体采用了哪种算法,运用什么样的数据结构。

根据总体设计的模块设计图可以设计如下的算法:3.1车票查询模块:3.1.1:查询车票信息:用户通过输入出发站、目的站、出发日期来从数据库中进行检索。

利用JA V A语言,在其中定义三个String类型的变量str[0],str[1],str[2],分别存储这三个信息,通过执行Statement 生成的对象stmt,令sql_1="select * from 车票_1 where 出发站like "+str[0]+" and 目的站like "+str[1]+" and 发车时间>"+str[2];执行stmt.executeQuery(sql_1),将返回ResultSet结果集,然后再将结果打印即可。

其中提供给用户的不仅存在查询结果,还拥有提供给用户购买车票的相关提示,当用户购买车票后,则更新票存系统的记录。

3.1.2:查询客户信息:用户通过用户身份证号码或者通过用户名查询当前用户的基本信息。

通过身份证号码查询,可以定义一个变量str存储身份证号码信息,然后令sql_1="select * from 客户_1 where 身份证号like "+str; 执行stmt.executeQuery(sql_1),将返回ResultSet结果集,然后再将结果打印即可。

通过用户名查看信息与其类似,仅需将sql_1中的“身份证号”改为“用户名”即可。

3.1.3:查询客户订票信息:用户通过用户身份证号码或者通过用户名查询当前用户的基本信息。

通过身份证号码查询,可以定义一个变量str存储身份证号码信息,然后令sql_1="select * from 订票_1 where 身份证号like "+str; 执行stmt.executeQuery(sql_1),将返回ResultSet结果集,然后再将结果打印即可。

通过用户名查看信息与其类似,仅需将sql_1中的“身份证号”改为“用户名”即可。

在查询界面上,用户可以直接退票,但是在票购买的三天内不予以退票,过了三天后则可以退票。

退票成功的话,则将票存系统中有关该车票的记录删除。

3.1.4:查询客户退票信息:用户通过用户身份证号码或者通过用户名查询当前用户的基本信息。

只能通过用户名查询,可以定义一个变量str存储用户名信息,然后令sql_1="select * from 退票_1 where 用户名like "+str; 执行stmt.executeQuery(sql_1),将返回ResultSet结果集,然后再将结果打印即可。

3.1.5:查询票存系统记录信息:用户通过输入车票编号或票存系统编号查询当前具体的记录信息。

通过票存系统编号查询,可以定义一个变量str存储票存系统编号信息,然后令sql_1="select * from 票存系统_1 where 票存系统编号like "+str; 执行stmt.executeQuery(sql_1),将返回ResultSet结果集,然后再将结果打印即可。

3.2车票信息管理模块:3.2.1添加车票信息:售票员通过输入新的车次信息到数据库中,利用JA V A语言解决,可进行如下考虑。

首先定义一个String类的对象数组str[14],其中将要输入的数据全部保留,然后定义一个String类对象sql_1,令sql_1="insert into车票values("+sql[0]+sql[1]+sql[2]+sql[3]+sql[4]+sql[5]+sql[6]+sql[7]+" "+sql[8]+sql[9]+" "+sql[10]+sql[11]+sql[12]+sql[13]+")";再定义一个Statement对象stmt用来装载即将执行的数据库语句,然后执行stmt.executeUpdate(sql_1)语句即可将插入操作同步到数据库中。

3.2.2删除车票信息:售票人员通过输入车票的编号来进行删除当前的车票。

令sql_1="delete from 车票where 车票编号like "+str;再定义一个Statement对象stmt用来装载即将执行的数据库语句,然后执行stmt.executeUpdate(sql_1)语句即可将删除操作同步到数据库中。

3.2.3修改车票信息:售票人员通过输入车票的编号来指明进行修改当前的车票。

定义一个String对象str记录售票人员输入车票的编号,在定义一个str1,指明用户相对具体的哪一个字段进行修改,再定义一个str2存放修改子段的新值。

令sql_1="update 车票set "+str1+"="+str2+" where 车票编号="+str;再定义一个Statement对象stmt用来装载即将执行的数据库语句,然后执行stmt.executeUpdate(sql_1)语句即可将删除操作同步到数据库中。

相关主题