数据库 民航销售管理系统.doc_第1页
数据库 民航销售管理系统.doc_第2页
数据库 民航销售管理系统.doc_第3页
数据库 民航销售管理系统.doc_第4页
数据库 民航销售管理系统.doc_第5页
免费预览已结束,剩余31页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统原理课程设计课题名称: 民航销售管理系统 姓 名: 班 级: 学 号: 指导老师: 2013年 9 月 9 日民航销售管理系统目录1. 需求分析1.1概述021.2系统功能分析022. 概念结构设计2.1概念结构设计023. 逻辑结构设计3.1逻辑结构设计044. 物理结构设计4.1结构分析054.2基本表结构054.3创建数据库和基本表074.4数据加载105. 执行基本SQl语句操作5.1查询操作175.2更新操作175.3删除操作185.4创建视图195.5定义存储过程215.6定义触发器246. 数据库功能模块设计6.1登录276.2售票员操作296.3管理员后台管理307. 总结7.1总结351一、需求分析1.1概述随着航天事业的发展,飞机交通变得越来越发达,机场的数量也逐年在增加。同时,近几年国人生活水平也不断提高,外出旅游成为很多人减压放松的消遣方式。乘坐飞机旅游成为很多人的选择。随着乘客的增多,民航机票销售工作压力逐渐增大,给很多乘客带来不便。设计一款民航销售管理系统会很好的方便广大乘客购票,以及机场管理销售工作。机票管理航班管理客户管理登录管理员售票员航线管理飞机管理公司管理订票查询1.2系统功能分析用户管理1.登录功能:此功能是为了方便航空公司方便管理数据库而设计的,使用者是航空公司管理人员、售票人员和客户。管理员主要用来管理航空公司、飞机、航班、航线、客户、机票等信息,权限很大。售票员权限只能进行售票工作,权限有限。用户通过输入不同用户名和密码进行身份验证,系统通过用户名和密码判断不同用户的权限,从而确定该用户可以执行的操作。2.后台管理:管理员通过此功能进行增加、查询、删除航班以及与航班相关的数据。增加删除客户信息。3.机票管理:售票员通过此功能进行机票信息查询,帮助客户订票以及退票。以及查询客户信息。2、 概念结构设计通过分析此系统功能可以设计出以下民航销售管理系统E-R图:机票TtypeFnoCnoTprTnoSitno订票客户1NIDcardNameTelAddress1包含Fno包含RtnoRnumFtimeNumPLno飞机查询N航班NMN1PLnoCnoPLtypePLnumm提供N航线SplaceMileageRtnoEplace提供航空公司CnoCnamegeCaddressgeCtel11N售票员权限用户名密码1Cuno三、逻辑结构设计经分ER图可分为7个实体。分别为用户、机票、航班、飞机、航线、客户、航空公司。1 用户拥有属性用户名,密码,权限。所有属性均非空。2 机票拥有属性Tno(票号),Tpr(票价),Ttype(机票类型),Fno(航班号),Sitno(座号),Cuno(客户编号)。其中票号为主键。当机票被订购后客户编号为非空,全阶段除客户编号外,其他属性均非空。3 航班拥有属性Fno(航班号),Ftime(时间),Plno(飞机编号),Rtno(航线编号),Num(票数),Rnum(余票)。其中航班号为主键,全部属性非空。4 飞机拥有属性PLno(飞机编号),Cno(公司编号),PLtype(飞机型号),PLnum(座位数)。其中飞机编号为主键,全部属性非空。5 航线拥有属性Rtno(航线编号),Splace(出发地),Eplace(目的地),Mileage(航程)。其中航线编号为主键,全部属性非空。6 客户拥有属性客户编号(Cuno),Name(姓名),IDcard(身份证号),Tel(联系方式),Address(居住地)。其中客户编号是主键,全部属性非空。7 航空公司拥有属性Cno(公司编号),Cname(公司名称),Caddress(公司所在地),Ctel(客服电话)。其中公司编号是主键,全部属性非空。客户通过售票员或网上操作可以订购、退订、改签机票,客户可以通过票号查询飞机,航空公司,航班、航线信息,全部属性非空。各实体间的联系在关系模型中可以表示如下:用户信息(用户名,密码,权限)客户信息(Cuno,Name,IDcard,Tel,Address)机票信息(Tno,Tpr,Ttype,Fno,Sitno,Cuno)航班信息(Fno,Ftime,Plno,Rtno,Num,Rnum)航线信息(Rtno,Splace,Eplace,Mileage)飞机信息(PLno,Cno,PLtype,PLnum)航空公司(Cno,Cname,Caddress,Ctel)四、物理结构设计4.1结构分析本系统采用微软开发的sql sever 2005作为开发环境,数据库设计完成后用visual C+语言嵌套利用所完成的数据库进行数据库的基本操作,通过可视化操作,方便用户的使用。4.2基本表结构1. 用户信息表列名数据类型允许空说明用户名nchar(12)否用户名密码nchar(12)否密码权限char(10)否权限2. 客户信息表列名数据类型允许空说明Cunonchar(10)否客户编号Namenchar(12)否姓名IDcardnchar(18)否身份证号Telnchar(11)否联系方式Addressnchar(50)否地址3. 机票信息列名数据类型允许空说明Tnochar(12)否票号Tprfloat否票价Ttypenchar(10)否机票类型Fnonchar(10)否航班号Sitnoint否座号Cunonchar(12)是客户编号4. 4航班信息列名数据类型允许空说明Fnonchar(10)否航班号Ftimedatetime否时间PLnonchar(15)否飞机编号Rtnonchar(15)否航线编号Numint否票数Rnumint否余票5. 航线信息表列名数据类型允许空说明Rtnonchar(15)否航线编号Splacenchar(50)否出发地Eplacenchar(50)否目的地Mileagefloat否里程6. 飞机信息表列名数据类型允许空说明PLnonchar(15)否飞机编号Cnonchar(10)否公司编号PLtypenchar(10)否飞机型号PLnumint否座位数7. 航空公司表列名数据类型允许空说明Cnonchar(10)否公司编号Cnamenchar(10)否公司名称Caddressnchar(50)否公司所在地Ctelnchar(11)否客服电话4.3创建数据库和基本表1.创建数据库create database 民航销售管理系统on primary(name=民航销售管理系统,filename=D:民航销售管理系统.mdf,size=10mb,filegrowth=10%)log on(name=民航销售管理系统,filename=D:t民航销售管理系统.ldf,size=1mb,maxsize=5mb,filegrowth=1mb)2.创建用户信息表create table 用户信息表(用户名 nchar(12) not null primary key,密码 nchar(12) not null,权限 char(10) not null,)3.创建客户信息表create table 用户信息表(Cuno nchar(10) not null primary key,Name nchar(12) not null,IDcard nchar(18) not null,Tel nchar(11) not null,Address nchar(50) not null,)4.创建机票信息表create table 机票信息(Tno char(12) not null primary key,Tpr float not null,Ttype nchar(10) not null,Fno nchar(10) not null,Sitno int not null,Cuno nchar(12) ,) 5.创建航班信息表Create table 航班信息(Fnonchar(10) not null primary key,Ftime datetime not null,PLno nchar(15) not null,Rtno nchar(15) not null,Num int not null,Rnum int not null,)6.创建航线信息表Create table 航班信息(Rtno nchar(15) not null primary key,Splace nchar(50) not null,Eplace nchar(50) not null, Mileage float not null,)7.创建飞机信息表Create table 飞机信息(PLno nchar(15) not null primary key,Cno nchar(15) not null,PLtype nchar(10) not null,PLnum int not null,)8.创建航空公司表Create table 航空公司(Cno nchar(10) not null primary key,Cname nchar(10) not null,Caddress nchar(50) not null,Ctel nchar(11) not null,)4.4数据加载1. 导入用户信息表数据:Insert into 用户信息values(龚振,3738358261,管理员);Insert into 用户信息values(刘明阳,312412scd,售票员);2导入客户信息表数据:insert into 客户信息values(张纪北京,897538976023);insert into 客户信息values(刘一上海,239638756409);insert into 客户信息values(张体南京,324235788392);insert into 客户信息values(王二商丘,892358349257);insert into 客户信息values(张牤郑州,894520452475);insert into 客户信息values(周店重庆,894923-34209);insert into 客户信息values(何武汉,545293450978);insert into 客户信息values(乾学焦作,523572385459);insert into 客户信息values(席世南阳,502934523485);insert into 客户信息values(王丽云南,252349582594);insert into 客户信息values(王三亚,9023584392583);insert into 客户信息values(刘彦连云港,903249509392);insert into 客户信息values(刘白色,865040937854);insert into 客户信息values(张江克拉玛依,832450943454);insert into 客户信息values(龚特海淀,78439203945);insert into 客户信息values(杜梦九寨沟,57348295034);insert into 客户信息values(梦一大同,432598385467);insert into 客户信息values(赵伟,10822199403123195攀枝花,783924748920);insert into 客户信息values(胡一北京,459802673824);insert into 客户信息values(黄蓉1348977387,香港,897645675645);insert into 客户信息values(郭静1593789802,高雄,095623451234);insert into 客户信息values(宁夏1376786278,开封,875678090902);insert into 客户信息values(权筝1537827346,大庆,423523465557);insert into 客户信息values(何西1836328904,拉萨,783129517795);insert into 客户信息values(齐军1837384929,石家庄,986423467821);insert into 客户信息values(吴桑黄石,987654682354);3.导入机票信息表数据:Insert into 机票信息values( 1000001,350,35423532,经济舱,0001,875678090902);Insert into 机票信息values( 1000002,350,35423532,经济舱,0002,423523465557);Insert into 机票信息values( 1000003,550,35423532,头等舱,0003,903249509392);Insert into 机票信息values( 1000004,350,35423534,经济舱,0004,783924748920);Insert into 机票信息values( 1000005,350,35423534,经济舱,0005,897645675645);Insert into 机票信息values( 1000006,350,35423532,经济舱,0006,986423467821);Insert into 机票信息values( 1000007,550,35423532,头等舱,0003,987654682354);Insert into 机票信息values( 1000008,550,35423532,头等舱,0003,897538976023);Insert into 机票信息values( 1000009,350,35423533,经济舱,0004,894520452475);Insert into 机票信息values( 1000010,350,35423532,经济舱,0005,894923-34209);Insert into 机票信息values( 1000011,350,35423533,经济舱,0006,545293450978);Insert into 机票信息values( 1000012,550,35423532,头等舱,0003,832450943454);4. 导入航班信息表数据:Insert into 航班信息values(35423532,2013-8-5 20:34:00,0370,00000001,40,31);Insert into 航班信息values(35423533,2013-8-6 20:00:00,0371,00000002,50,48);Insert into 航班信息values(35423534,2013-8-7 14:00:00,0372,00000003,50,48);5. 导入航线信息表数据insert into 航线信息 values(0370,郑州,上海,650.7)insert into 航线信息 values(0371,北京,云南,850.7)insert into 航线信息 values(0372,武汉,上海,640.7)6. 导入飞机信息表数据insert into 飞机信息 values(00000001,0001,T123,450)insert into 飞机信息 values(00000002,0003,T121,430)insert into 飞机信息 values(00000003,0001,T122,650)insert into 飞机信息 values(00000004,0001,T123,450)insert into 飞机信息 values(00000005,0003,T129,440)insert into 飞机信息 values(00000006,0002,C522,350)insert into 飞机信息 values(00000007,0003,G470,600)insert into 飞机信息 values(00000008,0003,Y161,730)insert into 飞机信息 values(00000009,0004,K747,650)7. 导入航空公司表数据insert into 航空公司values(0001,中国南方航空公司,凤凰阁,0923487)insert into 航空公司values(0002,中国国际航空公司,北京,3473487)insert into 航空公司values(0003,中国东方航空公司,华东,7830153)insert into 航空公司values(0004,深圳航空有限责任公司,深圳,6545897)五、执行基本SQl语句操作5.1查询操作查询姓名为赵伟的客户要到的目的地Select 航线信息.Eplace from 航线信息where Rtno in(select Rtno from 航班信息where Fno in(select Fno from 机票信息where Cuno in (select Cuno from 客户信息where Name=赵伟)5.2更新操作修改航班编号35423534的时间为2013年8月26日 23:00修改前执行SQL脚本修改后5.3删除操作删除客户身份证号客户信息删除前信息执行SQl脚本执行后结果5.4创建视图创建东方航空公司所有飞机信息的视图create view 东方航空as(select *from 飞机信息where Cno in (Select cno from 航空公司where cname=中国东方航空公司)执行SQL语句生成视图通过视图进行查询操作5.5定义存储过程 1.用储存过程实现订票,要求,先判断此航班是否存在,若存在在机票信息表内插入数据进行订票,并输出“订票成功”,若不存在,输出“此航班不存在”!创建存储过程 :订票create proc 订票(tno char(12), Tpr float,Fno nchar(10),Ttype nchar(10),Sitno int,Cuno nchar(12)asif exists(select * from 航班信息where Fno=Fno) begin insert into 机票信息values(tno,tpr,fno,ttype,sitno,Cuno) print 订票成功 endelse print 此航班不存在执行成功后,调用存储过程进行订票机票信息表此时数据2.创建存储过程,实现修改同一航班编号的机票,两种类型票价,同时改变,例:修改航班编号为“35423532”的同等舱机票为450,经济舱机票为300创建存储过程截图调用存储过程截图机票信息表结果截图3.创建存储过程,计算指定航班机票总收入创建过程代码如下结果截图5.6定义触发器1.创建一个触发器,实现:如果删除一个客户信息,判断其是否订票,如有订票,删除机票信息Create Trigger 删除客户On 客户信息for deleteAsdelete 机票信息from 机票信息,deleted dWhere 机票信息.cuno=d.cuno执行删除语句Delete from 客户信息 where name=宁夏机票信息表和客户信息表中与客户宁夏有关的数据全部被删除2.创建一个触发器,实现订票时,在机票信息表中插入数据,显示出此于此机票有关的部分航班,航线信息代码截图结果截图3.创建触发器,实现插入机票信息时,同一航班编号的航班信息表中余票减一插入前航班信息截图触发器代码插入代码insert into 机票信息values(1000014,450,35423532,头等舱,12,57348295034)插入后航班信息截图六、数据库功能模块设计此数据库需要和外部程序结合使用,为了更后的进行此数据库的设计,采用Visual C+做为主界面程序,数据库作为后台应用数据。6.1登录为了体现系统的安全性,系统的入口采用登陆界面,通过验证用户的权限是管理员还是售票员,选择进入不同的功能界面。登录前要线连接数据库服务器,主要代码如下m_pConnection.CreateInstance(ADODB.Connection);_bstr_t strConnect=driver=SQL Server;Server=127.0.0.1,1433;DATABASE=民航销售管理系统;UID=sa;PWD=3738358261;m_pConnection-Open(Data Source = 民航销售管理系统,sa,3738358261,adModeUnknown);登陆界面登录界面后台代码void CMyDlg:OnLogin() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(m_Name.IsEmpty() | m_PassWord.IsEmpty()MessageBox(用户名或密码不能为空);/return FALSE;elseADOConn m_AdoConn;m_AdoConn.OnInitADOConn();CString sql;sql.Format(select * from 用户信息 where 用户名 = %s and 密码 = %s,m_Name,m_PassWord);m_AdoConn.m_pRecordset = m_AdoConn.m_pConnection-Execute(_bstr_t)sql,NULL,adCmdText);if(!m_AdoConn.m_pRecordset-adoEOF)CString ph, s1;ph=(char*)(_bstr_t)m_AdoConn.m_pRecordset-GetCollect(权限);s1.Format(售票员);if(!strcmp(ph,s1)=0)m_AdoConn.m_pRecordset-Close();m_AdoConn.m_pConnection-Close();CmainDlg dlg;CDialog:OnOK();dlg.DoModal();elseCGuanliDlg dlg;CDialog:OnOK();dlg.DoModal();elseMessageBox(用户名或密码不正确);m_Name = ;m_PassWord = ;UpdateData(FALSE);m_AdoConn.m_pRecordset-Close();m_AdoConn.m_pConnection-Close();6.2售票员操作订票窗口查询窗口,分为三种查询方式分别为,航班号查询,按票号查询,按身份证号查询,单击查询,查询结果将显示在下面的列表控件中6.3管理员后台管理1. 用户管理窗口管理员可以删除,添加,修改用户信息void CGuanliDlg:OnOk2() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(m_Name.IsEmpty()|m_Right.IsEmpty()|m_Password.IsEmpty()MessageBox(用户信息不能为空);return;CString sql;sql.Format(update 用户信息 set 用户名=%s,密码=%s,权限=%s where 用户名=%s,m_Name,m_Password,m_Right,m_Name);ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();m_AdoConn.ExecuteSQL(_bstr_t)sql);m_AdoConn.ExitConnect();MessageBox(修改成功!);2. 机票管理窗口部分源代码void CJiPiaoDlg:OnOk2() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(m_Tno.IsEmpty()MessageBox(票号不能为空);return;CString sql1,sql2;sql1.Format(select * from 机票信息 where Tno=%s,m_Tno);s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论