资源描述:
《航空售票管理系统》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
摘要伴随着经济的不断发展,必然带动交通业和旅游业务的不断扩大,特别是航空售票和订票的信息管理日异复杂,传统的售票方式已经难以满足快节奏,高效率的现代生活需求,这就要求航空公司要有一套好的售票数据库系统。一个正常营运的航空公司需要管理所拥有的飞机、航线的设置、客户的信息等,但更重要的还要提供票务管理。面对各种不同种类的信息,需要合理的数据库结构来保存数据信息以及有效的程序结构支持各种数据操作的执行。对数据的添加、修改、删除及查询等方面的操作应简单易行,并且能够具有较好的稳定性。航空售票管理系统主要采用Delphi7.0做为开发工具,进行开发与设计的。本系统的使用界面具有十分人性化的特征,具有方便的查询功能,对售票、网上订票等方面的操作应简单易行,并且能够具有较好的稳定性。关键词:航空;售票;网上订票;管理系统;数据库;SQL语言。30 目录1.开发一个航空售票管理系统的背景和意义11.1.传统售票方式的回顾和特点分析11.2.航空售票管理系统的应用现状和前景展望12.用计算机开发一个航空售票管理系统的可行性分析12.1.技术可行性12.2.经济可行性22.3.法律可行性23.开发环境的选择33.1.Delphi7.0简介33.2.开发工具的选择34.航空售票管理系统的需求分析34.1.系统分析44.2.系统功能模块设计44.3.功能子模块分析54.3.1.网上订票模块54.3.2.用户查询模块54.3.3.用户订票模54.4.后台管理系统64.4.1.后台管理系统子模块64.5.民航售票管理系统的顶级数据流程图84.6.民航售票管理系统一级数据流图94.7.数据字典定义104.7.1.数据项定义104.8.E/R模型135.详细设计145.1.系统的总体流程图145.2.系统各模块的实现155.2.1.系统登录窗口155.2.2.主界面窗口165.2.3.信息操作模块175.2.4.送票员模块225.2.5.员工管理模块235.2.6.系统模块245.2.7.售票员模块255.2.8.前台订票模块2630 6.软件测试276.1测试方式276.2测试阶段276.1.1.白盒测试276.1.2.黑盒测试276.3测试结果287.结论28谢辞29参考文献3030 1.开发一个航空售票管理系统的背景和意义1.1.传统售票方式的回顾和特点分析航空客运业务誕生已有近一個世纪了,作为现有交通工具中最方便快捷的一种,它确确实实地给人们的生活、出行带来了极大的方便。随著航空客运业务多年来的发展,其售票业务也同样不断的发展。回顾航空客运的历史,最早的時候,飞机和机场的数量都很少,于是机票的销售量也非常少,机票直接由机场方面出售,售票的方式也非常简单,现场购买领取机票即可;后来,隨著世界经济城市的发展,飞机和机场数量的不断增加,隨著世界贸易的开放和繁荣、人们对飞机出行的需求和能力的不断增加,航空客运业务的規模日益宏大,于是为了方便客戶的购买和航空公司的销售,航空公司在各地设立销售点,将机票分配到各销售网点销售。但是这也带来了许多问题和不便。首先,由于机票是由航空公司按照各销售点平时的销售能力分配给个体销售点的,所以并不能实时地反映各销售点的销售情况,也很难实现歌销售点间的调节,同时,乘客的询问和购票也产生很多不便多不便。所以,隨着航空客运业务的发展,传统售票方式已经不能满足时代的要求。1.2.航空售票管理系统的应用现状和前景展望随着现代航空业务流量剧增,传统的售票往往在统计,查找等方面会错误百出,这给售票人员和客户都带来了很多不便。但随着社会的不断发展,民航业在我国一直以其优良的安全性和良好的信誉度受到世界同行们的称赞。中国是一个人口大国,无论是旅游还是商业出行人员数量都很大,这样就为民航业的发展造就了一个温床。在中国加入世界贸易组织后,世界各大民航飞机制造商业把目光纷纷聚焦在中国,相信中国的民航服务将会有广阔的前景。2.用计算机开发一个航空售票管理系统的可行性分析2.1.技术可行性30 确定系统所要实现的目标。通过对企业状况的初步研究得出现状分析的结果,然后提出可行性方案并进行论证。明确项目的目标和规模以后,接下来的问题就是在确定的软件系统规模之内寻找一种达到用户提出要求的最佳解决方案。通过对信息的处理、现行的系统情况调查的基础上,得出系统的顶级数据流图如图2-1所示:输出售出机票身份验证查询订票、买票顾客民航售票系统报表查询图2-1顶级数据流图在数据流图上列出了“顾客”和“报表”,它们既是数据流的源点又是终点。系统输出一些信息给信息管理处。从以上分析得出,航空售票管理系统在开发的技术上是可行的。1.1.经济可行性计算机技术发展异常迅速的根本原因在于计算机的应用促进了社会经济的发展,给社会带来了巨大的经济效益。基于计算机系统的成本分析是可行性研究的重要内容基于计算机系统的成本分为以下三个部分:a、购置并安装软硬件用有关设备的费用;b、系统开发费用;c、系统安装、运行和维护费用。d、人员培训费用经过成本效益分析,本航空公司管理信息系统的开发在经济上可行的。1.2.法律可行性根据实际情况的调查结果,在开发本航空售票管理系统过程中没有涉及各种合同、侵权、责任以及各种与法律相抵触的问题。因此,本航空售票管理系统的开发在法律上是完全可行的。30 1.开发环境的选择1.1.Delphi7.0简介Windows图形化操作系统的出现,给用户使用计算机带来了极大的方便。但要使用传统的程序语言(如C语言)设计出Windows环境下的窗口应用程序。却是一件相对痛苦的事。为此,人们寻求一种更好的开发工具来进行Windows下的程序设计。Delphi由此应运而生。Delphi7.0是Borland公司推出的一种可视化的、方便快捷的Windows应用程序开发工具。它以完全面向对象、强大的数据库开发功能和高效的编译器等优点赢得用户的青睐。该产品一经问世,就迅速成为Windows程序设计的几种最主要的开发工具之一作为一种深受欢迎的快速开发工具,Borland公司推出的Delphi到今天已经经历了7代产品,每一代产品都伴随着计算机软硬件系统的提高而升级。1.2.开发工具的选择根据航空售票的特点,更好的提供各方面的信息和管理,这需要一个好的可视化、方便快捷的开发工具和合理的数据库结构来保存数据信息以及有效的程序结构支持各种数据操作的执行。对数据的添加、修改、删除及查询等方面的操作应简单易行,并且能够具有较好的稳定性。经过分析,我们选择Borland公司的推出的Delphi7.0开发工具和MicrosoftSQLServer2000,利用里的Delphi7.0ADO组件开发数据库应用程序。Delphi7.0所提供的ADO组件封装了整个MicrosoftADO组件,通过ADO组件可以完全不依赖BDE开发出功能完整的数据库应用程序。SQLServer2000数据库引擎提供完整的XML支持,还具有构成Web站点的数据存储组件所需的可伸缩性、可用性和安全功能特点。SQLServer2000关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据的完整性,同时将管理上千个并发修改数据库用户的开销减到最小。SQLServer2000分布式查询可以引用来自不同数据源的数据,就好象数据是SQLServer2000数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。2.航空售票管理系统的需求分析30 软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。通过对应用问题及其环境的理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化、完全化、最终形成需求规格说明。需求分析以系统规格说明和项目规划作为分析和运用的基本出发点,并从软件角度对它们进行检查与调整;需求规格说明书是软件设计、实现、测试直至维护的重要基础。良好的分析活动有助于避免或尽早剔除早期错误,从而提高软件生产率,降低开发成本,提高软件质量。需求分析的基本任务是对目标系统提出完整、准确、清晰、具体的要求。1.1.系统分析本系统设计主要根据售票业务的基本流程进行。一般地说,售票业务包括如下几个方面:售票子系统、订票子系统、财务子系统、信息子系统。a:售票:售票员根据买票顾客的信息检验其属普通用户还是VIP用户,进一步确定其是否享有打折优惠。根据退票顾客的信息检验其机票的真伪。进一步确定是否退款。b:订票:可查询当前航班的售票订票情况和乘客信息。c:财务:打印报表,输出星期、月、年财务报表。d:信息员:添加、删除、修改信息。1.2.系统功能模块设计根据系统功能要求可以将系统分解成几个功能模块来分别设计应用程序界面,如图4-2示:网上订票系统民航售票管理系统后台管理系统图4-230 1.1.功能子模块分析1.1.1.网上订票模块网上订票模块可以分为三个子模块:用户注册模块,用户查询模块以及用户订票模块。具体功能模块介绍如下:用户注册模块:(1)注册帐号,必须仔细填写(2)登陆显示所有信息(3)用户信息修改1.1.2.用户查询模块(1)登陆帐号(2)查询指定航班信息1.1.3.用户订票模(1)登陆帐号(不登陆不能订票)(2)输入详细订票信息网上订票系统查询订票用户注册登陆普通用户不享受优惠VIP用户享受优惠(3)提交信息,等待回应图4-330 用户登陆(分类型)送票员模块售票员模块财务员模块信息员模块后台管理系统1.1.后台管理系统图4-41.1.1.后台管理系统子模块4.4.1.1送票员模块:如图4-5送票员模块功能说明:(1)送票员登陆帐号(2)查询目前所有订票情况(3)打电话给客户确认(4)确认通过,送票给客户(5)用户取消,删除订购信息(6)打印月报表,送交财务处登陆系统(送票员)审核信息(电话确认)确认通过送票用户取消图4-530 4.4.1.2售票员模块:如图4-6售票员模块功能说明:(1)售票员登陆系统(2)前台售票,检验用户,相应用户卖相应价格(3)退票处理,检验机票,真票、不过期的退款,其他的结束操作登陆系统(售票员)买票处理退票处理检验用户检验机票普通用户价格售票VIP用户价格售票退款放弃操作图4-64.4.1.3财务员模块:如图4-7财务员模块功能说明:(1)登陆系统(2)查询,整理,打印报表30 (1)报表上交登陆系统(财务员)打印报表报表上交上级图4-74.4.1.4信息操作员模块:如图4-8信息操作员模块功能说明:(1)登陆系统(2)与航空公司收集信息(3)添加、修改、删除信息登陆系统(信息操作员)信息操作添加信息修改信息删除信息图4-81.1.民航售票管理系统的顶级数据流程图30 输出售出机票身份验证查询订票、买票顾客民航售票系统报表查询图4-91.1.民航售票管理系统一级数据流图售票输出信息确认信息返回信息报表输出打印命令报表查询添加、修改、删除信息输入信息身份验证、买票信息显示输入信息送票返回信息发送信息返回信息身份验证、查询、订票顾客网上订票系统送票员电话系统控制面板显示面板售票员信息操作员财务员打印机图4-1030 1.1.数据字典定义1.1.1.数据项定义4.7.1.1用户类型表:如表4-7-1数据项名标识符数据类型长度备注用户类型IDUser_Type_Idtinyint1主键用户类型名User_Type_Namenvarchar20非空表4-7-14.7.1.2用户信息表:如表4-7-2数据项名标识符数据类型长度备注用户IDUser_Idint4主键自动编号用户名User_NamenvarChar10非空用户密码User_PasswordvarChar50非空用户性别User_Sexnvarchar4先生、女士用户电话User_Phonevarchar20非空用户邮箱User_EmailvarChar50可空用户地址User_AddrnvarChar60可空用户身份证号User_Pidvarchar18非空用户积分User_jfInt4非空注册日期Reg_timedatetime8非空用户类型IDUser_Type_Idtinyint1UserType表的外键表4-7-24.7.1.3订票表:如表4-7-3数据项名标识符数据类型长度备注订票IDBook_Idint4主键(自动编号)用户IDUser_Idint4做为User_Info表的外键机票IDTickts_Idvarchar30票ID(航班号+日期+座位号)(做为机票表的外键)订票时间Book_Timedatetime8非空送票idSend_idint4001物品重量Thing_Weightint4可空乘客类型Type1tinyint1成人或小孩30 状态Book_Typenvarchar4(审核和完成)表4-7-34.7.1.4航班表:如表4-7-4数据项名标识符数据类型长度备注航班号Plane_Idnvarchar30主键飞机类型Plane_Typenvarchar20非空航空公司名Companynvarchar50非空起点From_Citynvarchar10默认桂林终点To_Citynvarchar10非空起飞时间Go_Timedatetime8非空到达时间Arrive_Timedatetime8非空班期Plane_datevarchar7星期1~7头等舱票数Head_Ticktsint4非空商务舱票数Business_Ticktsint4非空普通舱票数Common_Ticktsint4非空经济舱票数Economy_Tikctsint4非空表4-7-44.7.1.5机票票表:如表4-7-5数据项名标识符数据类型长度备注机票IDTickts_Idvarchar30(航班号+日期+座位号)航班号Plane_Idnvarchar30做Price表的外键座位号Tickts_Numint4可空价格Pricesmallmoney4(不打折直接取Price表的数据,打折的Price表的数据*折数)座位类型Saet_Typetinyint1(做Price表的外键)机票时间Tickts_datedatetime8(机票当天有效时间)机票类型Tickts_Typetinyint10为未操作,1为售出,2为退票表4-7-54.7.1.6管理员类型表:如表4-7-630 数据项名标识符数据类型长度备注管理员类型IDAdmin_Type_Idtinyint1主键管理员类型名Admin_Type_Namenvarchar10可空表4-7-64.7.1.7管理员信息表:如表4-7-7数据项名标识符数据类型长度备注管理员IDAdmin_Idint10主键管理员姓名Admin_Namenvarchar20可空管理员密码Admin_Pwdvarchar20可空管理员性别Admin_Sexvarchar10可空管理员电话Admin_Phonevarchar2可空管理员邮箱Admin_Emailvarchar3可空管理员地址Admin_Addrnvarchar60可空管理员身份证号Admin_Pidvarchar3可空管理员注册时间RegTimedatetime3可空管理员类型IDAdmin_Type_Idtinyint3做为Admin_Type表的外键表4-7-74.7.1.8Report表:如表4-7-8数据项名标识符数据类型长度备注报表IDReport_Id自动编号主键报表名Report_Namechar50可空财务员名User_Namechar10可空日收入Income_Day货币可空月收入Income_Month货币可空年收入Income_Year货币可空表4-7-84.7.1.9Price表:如表4-7-9价格表IDPrice_Idint4主键航班IDPlane_Idnvarchar30(做Plane表的外键)座位类型Seat_Typetinyint1可空价格Pricesmallmoney4可空表4-7-930 1.1.E/R模型售票客户联系方式姓名编号特殊客户积分身份证订票、买票送票员售票管理系统售票员编号编号信息操作员编号财务员编号打印报表如图4-1130 1.详细设计1.1.系统的总体流程图售票输出信息确认信息返回信息报表输出打印命令报表查询添加、修改、删除信息输入信息身份验证、买票信息显示输入信息送票返回信息发送信息返回信息身份验证、查询、订票顾客网上订票系统送票员电话系统控制面板显示面板售票员信息操作员财务员打印机图5-130 1.1.系统各模块的实现1.1.1.系统登录窗口图5-2-1系统登录窗口,是使用本系统时出现的第一用户操作窗口,主要防止非法用户使用系统。采用自适性窗口设计,位于屏幕中间。此界面由三个标签、两个列表框和一个文本框、两个按钮和一幅图片组成。它的登录窗口如图(图5-2-2):图5-2-230 程序运行时首先进入该界面,用户可以选择登陆类型,输入工号和对应的密码后进入该系统,反之,如果输入密码错误,系统将提示“密码错误!”的错误信息。1.1.1.主界面窗口主界面窗口是进入系统的第一用户界面,是调用和切换系统其它功能的主控窗口。它提供了各个功能菜单和部分快捷键菜单。主界面设计有系统、航线信息管理、客户信息管理、票务信息管理、系统帮助等不同的菜单。该窗口如图(图5-2-3)图5-2-3菜单设计:在MDI主菜单中,设计了5项菜单,分别为:信息操作、订票操作、员工管理、售票操作、系统。信息操作售票操作……机票生成……售票窗口……航班管理……退票窗口……票价管理系统订票操作……使用帮助……订票审核……关于…………业绩查询员工管理……添加员工……员工信息具体设置如下表所示:30 1.1.1.信息操作模块5.2.3.1机票生成模块(图5-3-1)在该模块中,信息操作员可以根据航班的飞行情况,预先生成各航班的机票。机票生成模块主要实现的功能如下所示:(1)选择要生成机票的航班:可以多项选择。(2)选择机票的日期:机票的有效日期。(3)生成机票:采用多线程快速生成机票。图5-3-1核心代码:procedureTfrm_tickts_add.btn_tickts_addClick(Sender:TObject);varPlane_Id,strsql,Tickts_id,Tickts_Time:string;T_Price:array[0..3]ofCurrency;h_tickts,b_tickts,c_tickts,e_tickts,i,j,Select_Count,Tickt_num:integer;beginlb_status.Caption:='正在生成机票......';self.Timer1.Enabled:=true;Select_Count:=self.Grid_plane.SelectedRows.Count;self.ProgressBar1.Max:=Select_Count*300;dm.air_conn.BeginTrans;//开始一个事务,锁定数据库操作30 Tryforj:=0toSelect_Count-1dobeginPlane_Id:=Grid_plane.SelectedRows.Items[j];grid_plane.DataSource.DataSet.GotoBookmark(Pointer(self.Grid_plane.SelectedRows.items[j]));Plane_Id:=grid_plane.DataSource.DataSet.fieldbyname('Plane_Id').AsString;//取得机票日期ifself.lb_tickts_time.Caption=''thenbeginMessagedlg('请选择机票日期!',mtError,[mbOK],0);exit;endelseTickts_time:=lb_tickts_time.Caption;//下面是取得不同类型的舱位数dm.DataOprate(dm.qry_op,'select*fromPlanewherePlane_Id='+quotedstr(Plane_Id),'open');h_tickts:=strtoint(dm.qry_op.fieldbyname('Head_Tickts').AsString);b_tickts:=strtoint(dm.qry_op.fieldbyname('Business_Tickts').AsString);c_tickts:=strtoint(dm.qry_op.fieldbyname('Common_Tickts').AsString);e_tickts:=strtoint(dm.qry_op.fieldbyname('Economy_Tickts').AsString);//取得不同舱位的不同价格数dm.DataOprate(dm.qry_op,'select*fromPricewherePlane_Id='+quotedstr(Plane_id)+'orderbySeat_Type','open');fori:=0to3dobeginT_Price[i]:=dm.qry_op.fieldbyname('Price').AsCurrency;dm.qry_op.Next;end;Tickt_num:=1;fori:=1toh_ticktsdo//生成N张头等票beginTickts_Id:=Plane_Id+'-'+Tickts_Time+'-'+inttostr(Tickt_num);strsql:='insertinto30 Tickts(Tickts_Id,Plane_Id,Tickts_Num,Seat_Type,Price,Tickts_date,Tickts_Type_Id)';strsql:=strsql+'values('+quotedstr(Tickts_Id)+','+quotedstr(Plane_Id)+','+inttostr(Tickt_num)+',1,'+floattostr(T_Price[0])+','+quotedstr(Tickts_time)+',0)';dm.DataOprate(dm.qry_op,strsql,'ExecSQL');Tickt_num:=Tickt_num+1;//showmessage(strsql);end;fori:=1tob_ticktsdo//生成N张商务票beginTickts_Id:=Plane_Id+'-'+Tickts_Time+'-'+inttostr(Tickt_num);strsql:='insertintoTickts(Tickts_Id,Plane_Id,Tickts_Num,Seat_Type,Price,Tickts_date,Tickts_Type_Id)';strsql:=strsql+'values('+quotedstr(Tickts_Id)+','+quotedstr(Plane_Id)+','+inttostr(Tickt_num)+',2,'+floattostr(T_Price[1])+','+quotedstr(Tickts_time)+',0)';dm.DataOprate(dm.qry_op,strsql,'ExecSQL');Tickt_num:=Tickt_num+1;//showmessage(strsql);end;fori:=1toc_ticktsdo//生成N张普通票beginTickts_Id:=Plane_Id+'-'+Tickts_Time+'-'+inttostr(Tickt_num);strsql:='insertintoTickts(Tickts_Id,Plane_Id,Tickts_Num,Seat_Type,Price,Tickts_date,Tickts_Type_Id)';strsql:=strsql+'values('+quotedstr(Tickts_Id)+','+quotedstr(Plane_Id)+','+inttostr(Tickt_num)+',3,'+floattostr(T_Price[2])+','+quotedstr(Tickts_time)+',0)';dm.DataOprate(dm.qry_op,strsql,'ExecSQL');Tickt_num:=Tickt_num+1;//showmessage(strsql);end;30 fori:=1toe_ticktsdo//生成N张经济票beginTickts_Id:=Plane_Id+'-'+Tickts_Time+'-'+inttostr(Tickt_num);strsql:='insertintoTickts(Tickts_Id,Plane_Id,Tickts_Num,Seat_Type,Price,Tickts_date,Tickts_Type_Id)';strsql:=strsql+'values('+quotedstr(Tickts_Id)+','+quotedstr(Plane_Id)+','+inttostr(Tickt_num)+',4,'+floattostr(T_Price[3])+','+quotedstr(Tickts_time)+',0)';dm.DataOprate(dm.qry_op,strsql,'ExecSQL');Tickt_num:=Tickt_num+1;//showmessage(strsql);end;end;dm.air_conn.CommitTrans;//记住要确认事务~exceptmessagedlg('生成机票出错,请重新尝试!',mtError,[mbOK],0);dm.air_conn.RollbackTrans;end;lb_status.Caption:='完成操作!';self.ProgressBar1.Position:=self.ProgressBar1.Max;messagedlg('生成机票成功!',mtInformation,[mbOK],0);lb_status.Caption:='就绪!';end;5.2.3.2航班管理模块(图5-3-2)航班管理模块,信息操作员可以查询、添加、修改和删除航班的信息。航班管理模块主要实现功能如下所示:(1)添加航线信息:管理员可以对航空公司的每条航线进行信息的添加。(2)修改航线信息:管理员可以对航空公司的每条航线进行信息的修改。(3)删除航线信息:管理员可以对航空公司的每条航线进行信息的删除。(4)查询航线信息:管理员可以查询有关航空公司航线的信息。30 图5-3-25.2.3.3票价管理模块(图5-3-3)票价管理模块,信息操作员根据每架航班的舱位情况,设置相应的舱位机票价格。航班管理模块主要实现功能如下所示:(1)添加票价信息:管理员可以对每条航线进行不同舱位价格的添加。(2)修改票价信息:管理员可以对每条航线进行不同舱位价格的修改。(3)删除票价信息:管理员可以对每条航线进行不同舱位价格的删除。查询票价信息:管理员可以查询有关不同航班的票价信息。30 图5-3-31.1.1.送票员模块5.2.4.1订票操作模块(图5-3-4)订票操作模块,送票员根据实时刷新的订票信息,打电话给客户核实,通过核实的派员工被机票送到客户手中,然后增加用户的积分。没通过核实的就删除订票记录。30 图5-3-45.2.4.2订票操作模块订票操作模块可以按年份、月份、日期查询送票员的业绩状态。订票操作模块主要实现功能如下所示(1)年份业绩查询:送票员可以每年的业绩进行查询。(2)月份业绩查询:送票员可以每月的业绩进行查询。(3)当天业绩查询:送票员可以当天的业绩进行查询。1.1.1.员工管理模块5.2.5.1员工信息模块(图5-3-5)员工信息模块,操作员可以添加、查询、修改和删除员工的资料。员工信息模块主要实现功能如下所示30 图5-3-51.1.1.系统模块5.2.6.1系统帮助模块(如图5-3-6)系统帮助模块为介绍本系统的开发背景和各项操作,以方便新员工的操作。图5-3-630 1.1.1.售票员模块5.2.7.1售票窗口模块(如图5-3-7)售票窗口模块为售票员根据乘客的要求,查询用户指定的机票。然后根据乘客的信息,给予相应的价格。如图5-3-7核心代码:procedureTfrm_tickt_sale.btn_priceClick(Sender:TObject);varu_name,u_pid,u_type,n_price,strsql:string;o_price:Currency;beginu_name:=user_name.Text;u_pid:=user_pid.Text;ifuser_type.Text=''thenbeginMessageDLG('请选择乘客类型!',mtError,[mbOK],0);ischeck:=false;Exit;endelseifu_name=''thenbegin30 MessageDLG('请输入乘客姓名!',mtError,[mbOK],0);ischeck:=false;Exit;endelseifu_pid=''thenbeginMessageDLG('请输入乘客身份证号!',mtError,[mbOK],0);ischeck:=false;Exit;endelsebeginu_type:=user_type.Text;//开始计算票价o_price:=strtofloat(frm_shp.tickts_grid.Columns[9].DisplayText);ifu_type='儿童'thenn_price:=floattostr(o_price*0.5)elsebeginstrsql:='selectUser_Type_IdfromUser_InfowhereUser_Pid='+quotedstr(u_pid)+'andUser_Name='+quotedstr(u_name);dm.DataOprate(dm.qry_op,strsql,'open');ifdm.qry_op.FieldByName('User_Type_Id').AsInteger=1thenn_price:=floattostr(o_price*0.8)elsen_price:=floattostr(o_price);end;price.Text:=n_price;ischeck:=true;end;end;5.2.7.2退票窗口模块退票窗口模块,售票员根据乘客退回的机票,检验机票的真假、机票的日期,然后把机票的价钱还给乘客,然后把机票的状态改为未售出状态。主要功能为:(1)机票日期查询:查询机票是否已经过期。(2)乘客信息查询:根据乘客买票的价格把钱退回给乘客。(3)信息操作:把机票的状态改为未售出状态,然后把乘客的积分-1。1.1.1.前台订票模块前台订票模块为ASP模式,由本组搭档完成。具体见李国艳同学的论文报告。30 1.软件测试6.1测试方式白盒测试:关心软件内部设计和程序实现,主要测试依据是设计文档黑盒测试:不关心软件内部,只关心输入输出,主要测试依据是需求文档6.2测试阶段1.1.1.白盒测试根据本系统的需求分析文档,分模块来检查功能的完善程度,通过测试,本系统基本完成了需求分析文档的功能,有一个功能没实现:送票员报表打印模块,根据分析,该模块不需要送票员完成,直接集合到财务员模块里面。1.1.2.黑盒测试6.2.2.1登陆模块测试选择没一个员工类型,然后乱输工号和密码,均出现用户名和密码错误提示。6.2.2.2主界面模块测试根据登陆员工的权限,判断该员工应该显示何种响应的功能模块,通过测试,一切正常。6.2.2.3生成机票模块选择一条和多条航班记录,批量生成机票,输出结果正确。发现缺陷为:生成机票时间过慢、生成机票进度条和时间不一致。6.2.2.4航班信息管理模块输入尽可能多的数据,测试:查询、添加、修改和删除功能,每个功能都能正确完成。发现缺陷:添加功能的机票数字段没判断长度,输入过长数字会发生内存溢出情况。6.2.2.5员工信息管理模块输入尽可能多的数据,测试:查询、添加、修改和删除功能,每个功能都能正确完成。工号查询和姓名查询使用模糊查询,显示结果正确。本模块已经屏蔽添加数据各字段,没发生数据溢出问题。6.2.2.6订票审核模块测试多条订票记录,测试删除和通过审核功能,测试多表修改的正确性,测试结果正确。6.2.2.7送票员业绩查询模块30 选择不同年、月、日进行查询,检查月份所对应的天数和生成数据的正确性,测试结果正确。6.2.2.8售票窗口模块通过不同方式输入不能查询记录,然后操作多条机票记录,测试票价计算的正确度和多表添加修改的正确度以及放弃鼠标,通过键盘快速定位的准确度,测试结果正确通过。6.2.2.9退票窗口模块判断输入不能为空,机票ID的正确性和机票日期的有效性,测试结果正确。6.2.3.0财务报表模块选择不能年、月、日进行报表打印操作,测试结果正确,发现软件功能缺陷:不能查询单部航班的收入报表。6.3测试结果经过半盒和黑盒测试,本系统的功能完成和正确度在80%以上,虽然修改了部分BUG,但由于时间和水平问题,三个星期的软件没能做得很完善,测试也没能考虑很周到。这些缺陷将在下次软件开发考虑进去。1.结论经过将近三个星期的设计和开发,航空售票管理系统的设计已圆满完成了,功能上基本与需求相符。以上是航空售票管理系统的全部设计过程,从中我们可以清楚看出整个售票系统的流程。在这段实训的时间里,我感觉非常充实,学到了很多知识。我充分感受到了团体精神的重要性。我们的实训是由多个功能模块组成的,我主要负责后台售票系统,我们相互学习、相互帮助、相互进步,在共同度过的三个星期里顺利地完成了我们的实训任务。本次设计所开发的售票系统如果用于现实航空公司中还存在着一定的缺陷。因我们对现实航空公司中的一些具体工序,了解不够深入。同时由于实训时间较短,设计过程中,系统还有一些不够完善的地方,比如出错处理不够等问题,有待今后加倍学习,进一步完善。这些在以后应用系统时还需进一步升级系统的版本,使其所具有的功能更加完善。在整个实训的过程中,当我们遇到问题时,我们都全力以赴,使问题迎刃而解。通过这一次的实训实践,我的综合知识应用和实际操作能力的水平都有进一步的提高。30 谢辞本系统是在***老师的悉心指导下完成的,从需求分析、开发实现、论文写作、初稿修改、直至最后定稿,都倾注了老师的大量心血与精力。我们按照软件工程的方法按一定的进度来开发本次航空售票管理系统,在开发的过程中遇到了不少困难,但是*老师认真负责的工作态度,深厚的理论水平帮助我度过了难关。我所做出成绩与他给予我的帮助是分不开的。同时*老师认真负责的工作态度、严谨的治学精神和深厚的理论水平使我受益匪浅,无论在理论上还是在实践中都给与我很大的帮助,使我自己得到很大的提高,这对于我以后的学习和工作都有一种巨大的帮助。在此,我特别向我的指导老师***老师的耐心辅导表示忠心的感谢!最后,谨向所有为本次实训的完成给予帮助和支持的领导、老师、同学致以诚挚的谢意!祝大家新年快乐!30 参考文献[1]丁国栋马世奎籍亚云.Delphi7管理信息体统实例教程.兵器工业出版社.2004[2]周松辰.举一反三Dlephi程序设计实战训练.人民邮电出版社.2004[3]方盈.SQLServer2000中文版彻底研究.中国铁道出版社.2001[4]陈玉峰.SQLServer2000数据库开发教程.科学出版社.2003[5]彭东.SQLServer2000应用开发技术指南.清华大学出版社.2001[6]苏啸.数据库原理与SQLServer2000教程.北京工业大学出版社.200230