![民航订票管理系统_第1页](http://file4.renrendoc.com/view/27cc238a57b5f0c2add239e551722af9/27cc238a57b5f0c2add239e551722af91.gif)
![民航订票管理系统_第2页](http://file4.renrendoc.com/view/27cc238a57b5f0c2add239e551722af9/27cc238a57b5f0c2add239e551722af92.gif)
![民航订票管理系统_第3页](http://file4.renrendoc.com/view/27cc238a57b5f0c2add239e551722af9/27cc238a57b5f0c2add239e551722af93.gif)
![民航订票管理系统_第4页](http://file4.renrendoc.com/view/27cc238a57b5f0c2add239e551722af9/27cc238a57b5f0c2add239e551722af94.gif)
![民航订票管理系统_第5页](http://file4.renrendoc.com/view/27cc238a57b5f0c2add239e551722af9/27cc238a57b5f0c2add239e551722af95.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE4实验十三数据库管理系统综合应用民航订票管理系统实验目的:通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步了解和掌握所讲解的内容。实验简述:民航订票系统主要分为机场、航空公司和客户三方的服务。航空公司提供航线和飞机的资料,机场则对本机场起飞和降落的航班和机票进行管理,而客户能得到的服务应该有航班线路和剩余票数的查询,以及网上订票等功能。客户又可以分为两类,一类是普通客户,对于普通客户只有普通的查询功能和订票功能,没有相应的机票优惠,另一种是经常旅客,需要办理注册手续,但增加了里程积分功能和积分优惠政策。机场还要紧急应对措施,在航班出现延误时,要发送相应的信息。实验要求:完成该系统的数据库设计;用SQL实现数据库的设计,并在SQLServer上调试通过。参考答案:需求分析航空公司航空公司的操作流程如图C.1所示。客户客户的操作流程如图C.2所示。机场机场的任务是根据航空公司提供的航线和飞机,安排航班,以及航班的机票。如果出现晚点等情况,要记录并发送信息,对特殊客户记录其消费信息,并相应提供优惠。客户订票客户订票涉及到多个因素:由客户提出订票申请;由机场管理航班机票;对于特殊客户,除给予票价优惠以外,还要累计里程;订票后需判断是否超员。这些因素涉及到客户资料、航班资料以及由航空公司提供的航线(里程)和飞机(座位数)资料中所提供的相关数据。客户订票的操作流程如图C.3所示。概念模型设计数据库需要表述的信息有以下几种:航空公司信息客户信息飞机信息航线信息航班信息订票信息特殊客户积分FOREIGNKEY(CID)REFERENCESCustomerCID)PayrealNOTNULL);航空公司操作注册INSERTINTOAirline(AID,Name,Addr,Cont)VALUES(#AID,#Name,#Addr,#Cont);这里的#AID必须是惟一的,否则不可以插入到数据库中.注销DELETEFROMAirlineWHERE(AID=#AID);修改公司信息UPDATEAirlineSETName=#Name,Addr=#Addr,Cont=#ContWHERE(AID=#AID);增加飞机INSERTINTOPlane(PID,Type,SeatsNum,AID)VALUES(#PID,#Type,#SeatsNum,#AID);删除飞机DELETEFROMPlaneWHERE(PID=#PID);修改飞机UPDATEPlaneSETType=#Type,SeatsNum=#SeatsNumWHERE(PID=#PID);增加航线INSERTINTOLine(LID,SPosition,EPosition,Distance,AID)VALUES(#LID,#SPosition,#EPosition,#Distance,#AID);删除航线DELETEFROMLineWHERE(LID=#LID);修改航线UPDATELineSETSPosition=#SPosition,EPosition=#EPosition,Distance=#DistanceWHERE(PID=#PID);客户注册INSERTINTOCustomer(CID,Name,Cont)VALUES(#CID,#Name,#Cont);客户注册的时候,CID必须是惟一的,否则不可以插入数据库。注销DELETEFROMCustomerWHERE(CID=#CID);修改个人信息UPDATELineSETName=#Name,Cont=#ContWHERE(CID=#CID);订票CREATEPROCBook_Ticket@FIDvarchar(20),@CIDvarchar(6)ASDECLARE@TransNameVARCHAR(20)SELECT@TransName=’Book_Ticket’BEGINTRANSACTION@TransNameDECLARE@bookedint,@seatint,@IsSpecchar(1)DECLARE@distancereal,@discountreal,@distreal,@pricereal查看客户是否为特殊客户,如果不是,票价不打折扣。否则如果客户累计航程超过10万公里,票价打九折;超过20公里,打八折。下面的程序用来计算折扣SELECT@IsSpec=IsSpec,@distance=PointsFROMCustomerWHERECID=@CIDSELECT@discount=1IF@IsSpec=’Y’BEGINIF@distance>200000SELECT@distance=0.8ELSEIF@distance>100000SELECT@distance=0.9END选择出票价SELECT@price=PriceFROMFlightWHEREFID=@FID加入客户订票信息INSERTINTOBookTicket(FID,CID,Pay)VALUES(@FID,@CID,@price*@discount)将客户新订票里程的信息累计到用户信息里面SELECT@dist=DistanceFROMLineWHERELID=(SELECTLIDFROMFlightWHEREFID=@FID)UPDATECustomerSETPoints=Points+@distWHERE(CID=#CID);查看客户订票后,是否超过可容纳的座位数目,如果超过,取消所有操作。SELECT@seats=SeatsNumFROMPlaneWHEREPID=(SELECTPIDFROMFlightWHEREFID=@FID)SELECTbooked=count(*)FROMBookTicketWHEREFID=@FIDIF@booked>@seatsROLLBACKTRANSACTION@TransNameELSECOMMITTRANSACTION@TramsNameGO订票过程一定要做成事务,因为订票的操作应该同时只能有一个人进行。机场航班安排INSERTINTOFlight(FID,PID,LID,Ftime,Price)VALUES(#FID,#PID,#LID,#Ftime,#Price)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论