关键词:机票预定,机票查询,c#,VisualStudio2010,SQLServer2008
第一章需求分析
1.1功能需求
1.1.1系统功能模块
1.1.2预订模块
1.2数据流图
1.3功能模块图
第二章概念结构设计
2.1局部E-R图
2.2整体E-R图
第三章逻辑结构设计
3.1关系模式
3.2数据关系图
第四章物理结构设计
4.1存储记录结构设计
第五章数据库的实施
5.1建立数据库
5.2数据表的建立
5.3存入数据
5.4存储过程
5.5创建触发器
第六章系统实现
6.1系统核心代码及运行截屏
第七章总结
7.1总结及心得体会
附:程序使用说明
(2)机票查询管理
选择不同的出发地和目的地,点击查询,可查出不同的可预订航班。
(3)机票预定管理
(4)订单管理
订单预订成功后,若行程取消或改变,可根据订单编号删除原有订单,重新进行预订。
(5)机票信息管理
(6)用户信息管理
本机票查询及预定系统的主要功能是机票查询和预订:
(1)查询所需航班。
(2)修改出发地、目的地、预订数量和出发日期。
(3)增加和删除预定信息及订单。
(4)管理员对机票信息和用户信息进行增删改的操作。
图1-1数据流图
图1-2管理员数据流图
图1-3功能模块图
图2-1用户E-R图
图2-2城市E-R图
图2-3航空公司E-R图
图2-4订单E-R图
图2-5航班信息E-R图
图2-6整体E-R图
该系统的关系模式主要有以下几种:
用户表:usertable(account,password)
管理员表:managertable(account1,password1)
乘客表:passneger(name,idcard)
城市信息表:Cityinfo(id,cityname)
航空公司表:Airwaysinfo(id,airways)
航班信息表:Flightinfo(flightno,airwaysid,leavecity,destination,leavetime,landtime,price)
订单表:Orderinfo(orderinfo,flightno,leavedate,number)
图3-1数据关系图
在物理结构中,数据的基本存取单位是存储记录。有逻辑结构就可以设计存储记录结构,一个存储记录可以与多个逻辑记录相对应。存储记录就包括记录的组成,数据项的类型和长度等。
(1)用户表包括account和password
列名
字段类型
约束条件
account
Char(50)
主码
password
(2)Cityinfo包括id和cityname
Id
int
cityname
nvarchar(50)
非空
(3)Airwaysinfo包括id和airways
airways
(4)Flightinfo包括flightno,airwaysid,leavecity,destination,leavetime,landtime,price,total
flightno
Nvarchar(50)
airwaysid
leavecity
destination
leavetime
landtime
price
money
total
(5)Orderinfo包括orderinfo,flightno,leavedate,number
orderinfo
leavedate
number
(6)Managertable包括account1和password1
account1
char(50)
password1
(6)passenger包括name和idcard
name
idcard
1.城市表的存储过程
1createprocedurepro_cityinfo2@idint,@citynamenvarchar(50)3as4insertintocityinfo(id,cityname)5values(@id,@cityname)2.航空公司表的存储过程
1createprocedurepro_airwaysinfo2@idint,@airwaysnvarchar(50)3as4insertintoairwaysinfo(id,airways)5values(@id,@airways)3.航班信息表的存储过程
1createprocedurepro_flightinfo2@flightnonvarchar(50),@airwaysidint,@leavecityint,@destinationint,3@leavetimenvarchar(50),@landtimenvarchar(50),@pricemoney4as5insertintoflightinfo(flightno,airwaysid,leavecity,6destination,leavetime,landtime,price)7values(@flightno,@airwaysid,@leavecity,8@destination,@leavetime,@landtime,@price)4.订单表的存储过程
1createprocedurepro_orderinfo2@orderinfoint,@flightnonvarchar(50),@leavedatenvarchar(50),@numberint3as4insertintoorderinfo(orderinfo,flightno,leavedate,number)5values(@orderinfo,@flightno,@leavedate,@number)5.用户表的存储过程
1createprocedurepro_user2@accountchar(30),@passwordchar(30)3as4insertintousertable(account,password)5values(@account,@password)6.管理员表的存储过程
1createprocedurepro_managertable2@account1char(30),@password1char(30)3as4insertintousertable(account1,password1)5values(@account1,@password1)7.乘客表的存储过程
1createprocedurepro_passneger2@namechar(50),@idcardchar(50)3as4insertintousertable(name,idcard)5values(@name,@idcard)
当在航班信息表中插入一条新的信息时,如果插入信息的城市名和航空公司未出现过,那么在航班公司表中插入新的航空公司名,在城市表中插入新的城市名。
1.创建触发器使cityinfo表里增加新的城市
(1)
1createtriggertr_fli12onflightinfoforafterinsert3as4insertintocityinfo5whereid=(selectleavecityfrominserted)(2)
1createtriggertr_fli22onflightinfoforafterinsert3as4insertintocityinfo5whereid=(selectdestinationfrominserted)2.创建触发器使航空公司表里增加新的航空公司id
1createtriggertr_fli32onflightinfoforafterinsert3as4insertintoairwaysinfo5whereid=(selectairwaysidfrominserted)3.创建触发器当orderinfo插入新数据时,flightinfo中的total即剩余机票数量应发生相应的更改。
1createtriggerup1onorderinfo2afterinsert3as4updateflightinfosettotal=total-5(selectnumberfromorderinfo6wherenumber=(selectnumberfrominserted))7whereflightno=(8selectflightnofrominserted)4.创建触发器当游客删除订单时,flightinfo中的total发生相应的更改。
1createtriggerup1onorderinfo2afterinsert3as4updateflightinfosettotal=total-5(selectnumberfromorderinfo6wherenumber=(selectnumberfrominserted))7whereflightno=(8selectflightnofrominserted)预订成功界面:
预订后剩余票数变化:
删除订单后剩余票数变化:
(2)注册界面代码及运行结果
图6-2注册界面
(3)修改密码界面代码及运行结果
图6-3修改密码界面
(4)机票查询及预订界面代码及运行结果
图6-4查询与预订机票界面
(5)新增乘客界面代码及运行结果
图6-5新增乘客界面
(6)删除订单界面代码及运行结果
图6-6删除订单界面
(7)管理员用户主界面代码及运行结果
图6-7管理员用户主界面
(8)航班信息管理代码及界面
图6-8航班信息管理
(9)用户信息管理代码及界面
图6-9用户信息管理
(10)数据库连接代码
1namespaceBookTicket2{3staticclassProgram4{5///
本系统的数据库名称为MyTicket,账号为yuanyuan,密码为123456。
本系统主要用于机票查询和预定,所以提供以下四个子功能: