版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 引言1.1课题背景随着社会发展的不断进步,民航事业的壮大,人们消费水平的提高,乘坐民航的消费者也越来越多,旅游也逐渐成为普通老百姓的生活组成部分,飞机票预定查询系统在各机票预定网点中的作用也越显重要。目前,我国一些旅行社和酒店的机票预定还停留在人工处理阶段,这已经严重制约了工作效率,在计算机技术高速发展的今天,有必要引入高效的计算机系统,来协助处理机票预定工作。因此,开发一套具有完整的存储,查询,核对,打印机票功能的实时机票预定系统势在必行。机票预定系统是为机场工作人员和客户提供订票退票等与机票相关内容和管理的系统,它具有开放体系结构的、易扩充的、易维护的、具有良好人机界面的优点.它除克服
2、了存储乘客信息少,查询效率低下等问题外,更重要的是其安全性,可靠性,实现航空公司的机票销售的自动化。它为企业的决策层提供准确、精细、迅速的机票销售信息,为乘客出行提供方便,便于机场工作人员对机票信息进行管理,提高了机场工作人员对机票管理的工作效率。1.2课程设计目的应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。实践和巩固在课堂教学中学习的关于数据库的有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为
3、了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。1.3课程设计任务本课程设计任务是通过开发一个数据库机票预订系统,学习数据库系统的设计与开发, sql 相关的软件为开发工具。通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践。在指导老师的帮助下,已经基本上成功地实现了设计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理。2系统结构分析2.1需求分析随着社会发展的不断进步,民航事业的壮大,人们消费水平的提高,乘坐民航的消费者也越来越多,
4、机票的预定也越显重要,航空公司为方便旅客出行,需开发一个机票预定系统。预定机票的旅客信息,包括姓名、性别、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。如果某方面出现问题,旅客可以持有效证件去飞机场退票。经过综合分析,确定了机票预订系统主要包括以下功能:(1) 航班信息管理功能主要实现航班的一些基本信息,航班编号、票价、起飞地、目的地、起飞时间的添加、修改、删除和查询。 (2) 机票信息管理功能主要实现机票的一些基本信息,航班
5、编号、座位号、座位信息、机票类型的添加、修改、删除和查询。(3) 旅客信息管理功能此模块的主要实现旅客一些基本信息,姓名、性别、联系方式、证件号码、的查询功能。(4) 取票信息管理功能此模块用于取票信息的管理,包括对航班基本信息,航班编号等,旅客基本信息,旅客姓名、座位号、取票时间的查询。(5) 退票信息管理功能此模块用于退票信息的管理,包括对订单号、旅客姓名、联系方式、证件号码的查询。2.2功能模块图(1) 根据上述的功能,可以设计出系统的总体功能模块,如图2.1所示。机票预订系统航班信息管理模块机票信息管理模块退票信息管理模块取票信息管理模块旅客信息管理模块图2.1 机票预订系统功能模块示
6、意图(2) 取票信息管理模块的细化功能模块如图2.2所示。取票信息管理旅客基本信息查询机票基本信息查询图2.2 取票信息管理模块(3) 退票信息管理模块的细化功能模块如图2.3所示。取票信息管理旅客基本信息查询订单信息查询图2.3 退票信息管理模块3系统数据库设计31 概念结构设计根据需求分析抽象出信息结构,可得该系统的e-r图。(1) 旅客e-r图,如图3.1所示。旅客姓名性别证件号码码联系方式图3.1旅客e-r图(2) 航班信息e-r图,如图3.2所示。航班信息起飞时间航班编号目的地票价起飞地图3.2航班信息e-r图(3) 机票信息e-r图,如图3.3所示。机票信息航班编号座位号座位信息码
7、机票类型图3.3机票信息e-r图(4) 取票通知e-r图,如图3.4所示。取票通知航班编号旅客姓名座位号取票时间证件号码图3.4取票通知e-r图(5) 退票信息e-r图,如图3.5所示。退票信息旅客姓名订单号证件号码码联系方式图3.5退票信息e-r图根据分e-r图和需求分析,可得到总e-r图,如图3.6所示。nnn11mn退票信息航班信息旅客购买包含退票取票通知机票信息购买1姓名性别证件号码码联系方式起飞时间航班编号目的地起飞地票价航班编号座位号机票类型座位信息码航班编号旅客姓名座位号取票时间订单号旅客姓名证件号码码联系方式证件号码图3.6系统总体结构e-r图32 逻辑结构设计(1) e-r图
8、向关系模型的转换将图3.6总体概念结构e-r图转化成关系模型。 退票信息(订单号,旅客姓名,联系方式,证件号码)旅客(旅客姓名,证件号码,联系方式,性别) 航班信息表(航班号,票价,起飞地,目的地,起飞时间) 取票通知单(旅客姓名,取票时间,证件号码,航班号,座位号)机票信息表(座位号,航班号,座位信息,机票类型)(2)数据模型的优化将转化的关系模式进行优化,最终达到第三范式。 确定数据依赖退票信息(订单号,旅客姓名,联系方式,证件号码)根据这个关系写出数据依赖订单号旅客姓名,订单号联系方式,订单号证件号码旅客(旅客姓名,证件号码,联系方式,性别)旅客姓名证件号码,旅客姓名联系方式,旅客姓名性
9、别 航班信息表(航班号,票价,起飞地,目的地,起飞时间)航班号起飞地,航班号票价,航班号目的地,航班号起飞时间取票通知单(旅客姓名,取票时间,航班号,座位号)旅客姓名取票时间,旅客姓名航班号,旅客姓名座位号,机票信息表(座位号,航班号,座位信息,机票类型)(座位号,航班号)舱位类型,(座位号,航班号,座位信息)机票类型对各关系模式间数据依赖进行极小化处理,消除冗余订单号旅客姓名,订单号联系方式,订单号证件号码旅客姓名性别,旅客姓名取票时间,旅客姓名航班号,旅客姓名座位号,旅客姓名机票类型航班号起飞地,航班号目的地,航班号起飞时间(座位号,航班号)座位信息看这些模式是否符合要求,确定是否要对某些
10、模式进行合并或者分解 最终分解成第三范式: (订单号,联系方式,证件号码)(订单号,旅客姓名)(旅客姓名,取票时间,性别,机票类型)(旅客姓名,航班号)(旅客姓名,座位号)(航班号,座位号,票价)(航班号,起飞地,目的地,起飞时间)(3)数据库的结构根据总体结构图设计机票预定系统基本表结构,其相应标的定义如下:表3-1旅客信息系统的结构字段名数据类型长度约束描述passager namevarchar50主键旅客姓名iddecimal不为空证件号码telephone numberdecimal不为空联系方式sexvarchar50不为空性别表3-2 退票信息系统的结构字段名数据类型长度约束描述
11、order form decimal主键订单号passager namevarchar50不为空旅客姓名telephone numberdecimal不为空联系方式idvarchar50不为空证件号码表3-3 航班信息系统的结构字段名数据类型长度约束描述flight numberdecimal主键航班号take off placevarchar50不为空起飞地destinationvarchar50不为空目的地flight timetime不为空起飞时间priceint不为空票价flight typedecimal不为空航班型号表3-4取票通知单系统的结构字段名数据类型长度约束描述passag
12、er name varchar50主键旅客姓名get ticket timetime不为空取票时间flight numberdecimal不为空航班号seat numberdecimal不为空座位号flight ticket typevarchar50不为空机票类型表3-5 航班座位信息表字段名数据类型长度约束描述seat numberdecimal主键座位号flight numberdecimal不为空航班号seat messagevarchar50不为空座位信息flight ticket typevarchar50不为空机票类型3.3数据库表的建立根据数据库的基本表结构分别建立六个基本表,
13、这里给出具体的sql语句如下。(1)创建旅客信息表passagercreate table passager( passager name varchar(50) primary key, id decimal not null, telephone number decimal not null, sex varchar(50) not null);(2)创建退票信息表cancellations_messagecreate table cancellations_message( order form decimal primary key, passager name varchar(50
14、) not null,telephone number decimal not null, id varchar(50) not null);(3)创建航班信息表flight_messagecreate table flight_message( flight number decimal primary key, take off place varchar(50) not null, destination varchar(50) not null, flight time time not null, flight type decimal not null, price int not
15、 null);(4)创建取票通知表ticket_messagecreate table get ticket_message( passager name varchar(50) primary key, get ticket time time not null, flight number decimal not null, seat number decimal not null, flight ticket type varchar(50) not null);(5)创建座位信息表flight_seat_messagecreate table flight_seat_message(
16、seat number decimal primary key, flight number decimal not null, seat message varchar(50) not null, flight ticket type varchar(50) not null);4数据库编程4.1数据库的连接创建函数executesql ()public function executesql(by val sql_as string,msgstring as string)_as adodb.recordset/此函数功能为执行sql语句,返回记录集对象dim cnn as adodb.c
17、onnectiondim rst as adodb.recordsetdim stokens() as stringon error go to executesql_error /错误处理stokens()=split(sql)set cnn =new adodb.connectioncnn.open conn /打开与数据库的连接if instr(insert,delete,update,_ /插入记录 ucase$(stoken(0) then cnn.execute sql msgstring=stokens(0) & _ 查询成功else set rst =new adodb.rec
18、ordset rst.open trim$(sql),cnn,_ ado penkeyset,_ adlockoptimistic set executesql = rst msgstring =查询到 & rst.recordcount & _ 条记录end ifexecutesql_exit /切断与数据库的连接 set rst = nothing set cnn = nothing exit function4.2系统功能模块设计设计类clsplane,包含两个类成员和三个类方法,类的两个成员定义如下。public txtsql as stringdim mrc as adodb.rec
19、ordset类的 showdata 方法在窗口加载的时候用来显示数据库中的相关记录,这里通过控件msflexgrid控件来实现。具体代码如下。public sub showdata(by val msglist as msflexgrid)dim j as integerdim i as integerset mrc = executesql(txtsql,msgtext) with msglist .row = 1 do while not mrc.eof .rows = .rows + 1 for i =1 to mrc.fields.count if not isnull(trim(mr
20、c.fields(i 1) then select case mrc.fields(i 1).type case addbdate .textmatrix(.rows 1,i0 = format(mrc.fields(i 1)& ,yyyy-mm-dd) case else .t extmatrix(.rows 1,i0 = mrc.fields(i 1) & end select end if next i mrc.movenext loopend withmrc.close end sub类的 save 方法用于保存记录,以及在修改记录后对记录进行更新,并在更新前首先判断是否具有相同的id
21、记录,方法的具体代码如下。public sub save(txtstring() as string) dim intcount as integer dim msgtext as string /添加判断是否有相同的id记录 if gintpmod = 1 then txtsql = select * from flight_message where flight number= & trim(txtstring(0) & set mrc = executesql(txtsql,msgtext) if mrc.eof = false then msgbox已经存在此编号的记录!,vboko
22、nly + vbexclamation, 警告 exit sub end if mrc.close end if /先删除已有记录 txtsql = delete from flight_message where flight number= & trim(txtstring(0) & set mrc = executesql(txtsql,msgtext) /再加入行记录 txtsql = select * from flight_message set mrc = executesql(txtsql,msgtext) mrc.addnew for intcount = 0 to 7 mrc.fields(intcount) = txtstring(intcount) next intcount mrc.update mrc.closeend subdelete方法用于删除记录,代码比较简单,在此不作过多赘述。 5功能测试5.1登陆界面在已经完成了程序各个功能模块的创建,现在来运行整个系统。运行程序,出现如图5.1所示的登录窗口。图5.1登录窗口5.2各功能模块的实现输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川绵阳科发股权投资基金管理有限公司招聘投融资经理等岗位2人笔试参考题库及答案详解
- 2026集团人力资源部招聘实习生2人笔试备考试题及答案详解
- 2026福建泉州晋江市江滨中学秋季教师招聘(七)笔试模拟试题及答案详解
- 2026浙江温岭市妇幼保健院招聘编制外人员1人(驾驶员)笔试参考题库及答案详解
- 2026广东韶关始兴县隘子镇人民政府招聘后勤服务人员1人笔试备考试题及答案详解
- 2026海南昌江黎族自治县医疗集团考核招聘编外乡村医生5人笔试备考试题及答案详解
- 2026江西赣州崇义县中医医院招聘7人笔试备考试题及答案详解
- 2025年江苏银行(镇江分行)人员招聘笔试考试题库及答案详解
- 2026湖南衡阳市工伤保险服务中心青年就业见习人员招募2人笔试参考题库及答案详解
- 2026重庆市涪陵区石沱镇选聘本土人才2人笔试模拟试题及答案详解
- 2026届江苏南通市高三语文二模作文导写
- 甲状腺功能亢进症诊疗中国指南(2026 版)
- 期末复习课件2025-2026学年统编版八年级历史下册
- FEV咨询-2025中国汽车产业分析报告 2025 China automotive industry analysis report
- 2026河北邯郸市劳动就业服务局招聘公益性岗位人员考试参考题库及答案解析
- 2026贵州贵阳贵安卫生健康系统事业单位招聘231人考试备考试题及答案解析
- 2026年哈三中高三下学期三模数学试卷及答案
- 2026年传统工艺短视频拍摄技巧
- 2025年新疆八年级地理生物会考真题试卷(含答案)
- 医院教育委员会工作制度
- 2025年二级造价师《建设工程计量与计价实务(交通运输工程)》真题卷(后附权威解析)
评论
0/150
提交评论