1、航空机票预订及销售系统航空机票预订及销售系统组长:课程设计报告 告罗阳 2013211688组员:王泊谦 2013211683班级:许超婷 2013211686侯旻 2013211690计算机科学与技术13-3班指导老师:沈明玉、邵堃实验地点:1号机房实验时间:2015.7.52015.7.17计算机与信息学院1.系统概述1.1、 软件实现目标及应用环境1.1.1软件实现目标1.1.2应用环境1.2、 软件主要功能模块2.软件总体结构2.1、 软件开发环境2.2、 软件基本结构3.数据库设计3.1、 需求分析3.1.1数据流图3.2、 概念设计3.2.1 E-R 图3.3、 逻辑设计3.3.1
2、关系模式设计3.3.2其他3.4、物理设计一、系统概述1.1软件实现目标及应用环境1.1.1软件实现目标普通用户注册账号登陆航空订票及预订销售系统,接着进入机票预订界面 可查看所有航班信息购票,也可根据出发地点检索购票。在用户界面还具有个 人信息查看与修改、修改密码、退订机票等功能。管理员通过特定的用户名和密码登陆系统,可以制定航班、安排航班、删 除航班、查看航班。1.1.2应用环境Win dows 7/win dows 81.2软件主要功能模块1.2.1用户模块(1) 用户注册模块:用户填写个人基本信息,设置用户名及密码(2) 用户登录模块:输入用户名和密码进入系统(3) 机票预订模块:用户
3、查看航班信息购买机票,或者根据出发地检索相 应航班信息购买机票(4) 用户个人信息修改与查看模块:查看及修改用户个人信息(5) 修改密码模块:更改个人密码(6) 查看与退订模块:查看已预订机票及退订机票1.2.2管理员模块(1)管理员登陆模块:输入用户名密码进入管理员界面(2)制定航班模块:制定航班号、出发地、目的地、飞行时间、价格、票数等航班基本信息(3) 安排航班模块:可设置航班折扣、起飞时间等信息(4) 查看航班模块:查看所有航班及余票情况二、软件总体结构2.1软件开发环境采用sql server2005和eclipse两个开发环境,使用JDBC链接数据库2.2功能普通用户:可以在系统中
4、注册账号密码,可以购买机票、退订机票、查看 机票信息、修改密码、修改个人信息管理员:通过管理员账号和密码登陆系统,具有建立航班、制定航班、查 看航班等权限2.3适用的用户该系统面对的主要用户是购买机票的旅客,其次是管理该系统的工作人 员。2.4软件基本结构三、数据库设计3.1需求分析3.1.1用户管理:a) 用户注册所需信息:用户名、密码、性别、联系方式、邮箱、身份证号、真实姓 名,年龄b) 用户登录所需信息:用户类型、用户名、密码普通用户登陆成功后:c) 查看机票信息并购票显示航班号、出发地、目的地、航班起飞时间、飞行时间、票价、折扣、 总票数。在确认航班号及需购票数填写之后方能成功购票。d
5、) 根据起飞地点查看机票信息并购票用户输入出发地点之后显示航班号、出发地、目的地、航班起飞时间、飞 行时间、票价、折扣、总票数。在确认航班号及需购票数填写之后可成功购 票。e) 个人信息查看与修改显示信息:用户名、密码、真实姓名、身份证号、邮箱、联系方式、性 别、年龄、用户类型。其中,真实姓名、邮箱、联系方式、性别可供修改。f) 用户密码修改所需信息:原密码,新密码,确认密码g) 查看已购票并提供退票选项。显示已购机票信息,包含航班号、出发地、目的地、航班起飞时间、飞行 时间、票价。用户确认航班号并选择退票张数后可成功退票。3.1.2管理员权限:h) 管理员登陆:所需信息:用户名、密码管理员登
6、录成功后:i) 制定航班所需信息:航班号、出发地、目的地、起飞时间、飞行时间、价格、票数j) 安排航班所需信息:航班号、折扣、起飞时间k) 删除航班所需信息:航班号l) 查看航班显示信息:航班号、出发地、目的地、起飞时间、飞行时间、折扣、票 价、余票数3.1.3输入输出要求:用户注册:用户名长度大于等于6,小于等于16密码长度大于等于6,小于等于16真实姓名不能为空身份证号必须为18位,且由数字、x、X组成。性别不为空,且值为男或女年龄范围在585用户登录:用户名长度大于等于6,小于等于16密码长度大于等于6,小于等于16用户密码修改:原密码必须输入正确即为当前用户的密码新密码不能和原密码相同
7、新密码长度大于6,小于等于16确认密码必须和新密码相同用户信息修改:提供修改的信息:真实姓名、邮箱、联系方式、性别 更改后的信息不能和原信息相同,且约束同注册约束 管理员管理航班:管理员设置折扣范围必须在01,且不能为0管理员设置的航班号符合航班号命名规则管理员设置的票数大于等于0,小于等于500管理员设置的票价大于等于0,小于等于5000管理员设置的时间采用 YYYY/MM/DD HH:MM格式3.1.4顶层数据流图ij票信息Z X用八机票预订系统3.1.5 一层数据流图3.1.6用户注册D1 用户基本悟息表3.1.7用户登录3.1.8用户订票航班信息用户3.2概念设计E-R图航班时地)伍飞
8、时沁祈扣3.3逻辑设计331关系模式设计1.用户(users )字段名数据类型描述相关约束user namevarchar(16)用户名primary keylen( user name)=6 and len( user name)v=16passwordvarchar(16)密码not n ulllen( password)=6 and len (password)0) not n ull(fno, user name)为主码3.3.2其他【完整性】实体完整性:每个基本表都设置了主码参照完整性:users表中的 user name 和flight 表中的fno 是 book 表中user n
9、ame 和fno 的外码用户定义完整性:以下约束均在网页中用javascript检查用户注册:用户名长度大于等于6,小于等于16密码长度大于等于6,小于等于16真实姓名不能为空身份证号必须为18位,且由数字、x、X组成。性别不为空,且值为男或女年龄范围在585用户登录:用户名长度大于等于6,小于等于16密码长度大于等于6,小于等于16用户密码修改:新密码不能和原密码相同新密码长度大于0,小于等于16用户信息修改提供修改的信息:密码、真实姓名、邮箱、联系方式、性别更改后的信息不能和原信息相同,且约束同注册约束管理员管理航班:管理员设置折扣范围必须在01,且不能为0管理员设置的航班号符合航班号命名
10、规则管理员设置的票数大于等于0,小于等于500管理员设置的票价大于等于0,小于等于5000管理员设置的时间采用 YYYY/MM/DD HH:MM格式【安全性】设置了两种用户身份:普通用户和管理员。对每种身份的用户,给予的不同数据库操作的权限。【触发器】1、t_update_book用户退票时,book中预订数量(bnum)减少,flight中对应余票数量(frest)增 加,若预订数量为0则删除元祖。【视图】1、 v_flight_inquire视图显示用户查看航班安排所需要的信息。涉及基本表:flight内容:航班号(fno),出发地(fstart),目的地(fend),起飞时间(ftsta
11、rt),机 票价格(fprice*fdisc)和余票数(frest)。2、 v_book_inquire视图显示用户已购买机票的信息,支持退票操作。涉及基本表:flight, book内容:用户名(username ),航班号(fno),出发地(fstart),目的地 (fend),起飞时间(ftstart),机票价格(fprice*fdisc)和预订数量(bnum)。3、v_users_i nfo视图显示用户的个人信息,并支持用户修改真实姓名、邮箱、联系方式、 性别等信息。涉及基本表:users内容:用户名(username),真实姓名(name),身份证号(id),邮箱 (email),联
12、系方式(tel),性别(sex),年龄(age),用户类型(types)【存储过程】1、buy_tickets(username,fno,num)使用买票功能,用户只需要给服务器传递航班号和购买数量,数据调用存 储过程对余票数进行自动更新2、refund_ticket2(username,fno,num)使用退票功能,用户只需要给服务器传递航班号和购买数量,数据调用存 储过程对用户预定票数进行自动更新,每执行一次这个存储过程都会调用触发 器对余票数进行更新。3.4物理设计【索引】1、flight的起飞时间(ftime)上建立索引users 表:users表的主码username自动建立索引。其它属性都不经常作为等值查询 的条件,又考虑到users表经常更新,不考虑建其他索引。flight 表:flight表的主码fno自动建立索引。其他非主属性中,出发地、目的地和起 飞时间经常作为等值查询的条件,但考虑到这个表经常更新,维护太多的索引 的消耗很大,所以选择只在起飞时间(ftstart)上建立索引。book 表:book表的的主码(fno,flight)建立聚集索引。