资源描述
大 连 科 技 学 院软件工程课程设计(B)题 目 内蒙古航空公司订票管理系统 学生姓名 专业班级 软件工程08-1 指导教师 职 称讲 师 所在单位 信息科学系软件工程教研室 教学部主任 完成日期 2011年10月21日课程设计报告单学号姓名专业班级软件工程08-3考 核 项 目评分备注1平时工作态度及遵守纪律情况(10分)2掌握基本理论、关键知识、基本技能的程度和阅读参考资料的水平(10分)3独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高的程度(20分)4完成课程设计说明书及软件的情况与水平(小组分工情况、规范性、整洁清楚、叙述完整性、思路清晰程度、工作量及实际运行情况和创新性)(60分)总评成绩综 合 评 定:(优、良、中、及格、不及格) 指导教师签字:2011年10月21日软件工程课程设计(B)任务书软件工程课程设计旨在通过2周实训时间,培养学生初步掌握系统分析、设计、实现、测试、维护的方法,加深学生对软件工程课程的理解和应用,同时也进一步提高学生运用程序设计语言的能力。一、目标程序设计不等于软件工程,这是本课程需要进一步让学生加深理解的地方。传统的程序设计在一定程度上偏重于计算机科学领域,属于较抽象的范畴;而软件工程则是要实实在在地做出一个满足用户要求的系统来,这是一个很具体的实践过程。作为一个软件开发者,必须具备从事工程实践的技能,包括软件项目的可行性研究、系统分析、设计、编写文档、源码设计、使用工具等基本技能,这就是课程设计要实现的一个目标。课程设计的教学基本要求如下:1巩固和加深对软件工程原理的理解,提高综合运用本课程所学知识的能力。2培养学生选用参考书,查阅手册及文献资料的能力。3培养独立思考,深入研究,分析问题、解决问题的能力。4通过实际系统的分析设计、编程调试,掌握软件的分析方法和工程设计方法。5能够按要求编写课程设计报告书,能正确阐述设计和实验结果、正确绘制系统和程序框图。6通过课程设计,培养学生严谨的科学态度,严肃认真的工作作风和团队协作精神。二、选题与内容选题应尽量结合教学、科研的实际课题,反映新技术,以获得更好的工程设计实践的训练。同时课程设计受到时间及开发环境、条件等的限制,命题应从实际出发,课题的大小规模、难易适度。学生可以选择本课程设计任务书中的下列题目来做,也可以根据自己特点、能力、时间进行选择,量力而行。参考内容:1学校教材定购系统系统简介本系统可以细化为两个子系统:销售系统和采购系统销售系统的主要工作过程为:首先由教师或学生提交购书单,经教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生可以到书库领书。采购系统的主要工作过程为:若是教材脱销,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书通知给教材发行人员。技术要求和限制条件:当书库中的各种书籍数量发生变化(包括进书和出书)时,都应修改相关的书库记录,如库存表或进/出库表。在实现上述销售和采购的工作过程时,需考虑有关的合法性验证。系统的外部项至少包括:教师、学生和教材工作人员。系统的相关数据存储至少包括:购书表、库存表、缺书登记表、待购教材表、进库表和出库表。2机票预定系统系统简介航空公司为给旅客乘机提供方便,需要开发一个机票预定系统。各个旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码(护照号码)、旅行时间、旅行始发地和目的地,航班舱位要求等)输入到系统中,系统为旅客安排航班。当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单交款取票,系统核对无误即打印出机票给旅客。此外航空公司为随时掌握各个航班飞机的乘载情况,需要定期进行查询统计,以便适当调整。技术要求和限制条件:在分析系统功能时要考虑有关证件的合法性验证(如身份证、取票通知和交款发票)等。对于本系统还应补充一下功能:a)旅客延误了取票时间的处理b)航班取消后的处理c)旅客临时更改航班的处理系统的外部输入项至少包括:旅客、旅行社和航空公司。3学校内部工资管理系统系统简介假设学校共有教职工约1000人,10个行政部门和8个系。每个月20日前各个部门(包括系和部门)要将出勤情况上报人事处,23日前人事处将出勤工资、奖金及扣款清单送到财务处 。财务处于每个月月底将教职工的工资表做好并将数据送银行。每个月3日将工资条发给每个单位。若由员工调入或调出、校内调动、离退休变化,则由人事处通知相关部门和财务处。技术要求和限制条件:本系统的数据存储至少包括:工资表、部门汇总表、扣税款表、银行发放表等。除人事处、财务处外,其他职能部门和系名称可以简化表示。工资、奖金、扣款细节由学生自定义。4实验室设备管理系统系统简介每学年要对实验室设备使用情况进行统计、更新。其中:对于已彻底损坏的做报废处理,同时详细记录有关信息。对于由严重问题(故障)的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。对于急需修改但又缺少的设备,需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同时更新申请表的内容。随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段等查询。技术要求及限制条件:所有工作由专门人员负责完成,其他人不得任意使用。每件设备在做入库登记时均由系统按类别加自动顺序号编号,形成设备号;设备报废时要及时修改相应的设备记录,且有领导认可。本系统的数据存储至少包括:设备记录、修理记录、报废记录、申请购买记录。本系统的输入项至少包括:新设备信息、修理信息、申请购买信息、具体查询统计要求。本系统的输出项至少包括:设备购买申请表、修理/报废设备资金统计表。三、课程设计的基本步骤1问题定义(明确问题边界)2可行性研究3项目开发计划4需求分析5概要设计6数据库设计7详细设计8系统测试9用户使用说明四、教学方法及要求13-4人成立一个开发小组,选出小组项目负责人,并对小组成员按任务进行分工;2开发环境及工具不限;3严格按软件工程的方法,分阶段进行开发(问题定义、需求分析、概要及详细设计、编码、测试等);4要求每阶段产生的文档等软件配置齐全、合理;5上机能正常运行程序。6提交课程设计报告。要求完成课程设计报告2000字以上,如果采用分组方式完成,可以分模块完成课程设计报告。五、工作量2周(10个工作日)时间六、计划安排第1个工作日第2个工作日:查找相关资料、书籍,阅读示例文档,选择题目。第3个工作日第4个工作日:设计程序结构、模块图,学习相关技术。第5个工作日第9个工作日:完成程序的编码,并且自己调试、测试。穿插进行课程设计报告的撰写。第10个工作日:撰写和整理课程设计报告,检查软件测试效果、检查课程设计报告,给出学生成绩。指导教师签字:2011年10月10日目录1可行性研究11.1目的11.2背景及功能21.3可行性分析21.3.1技术可行性21.3.2经济可行性21.3.3社会可行性31.3.4操作可行性31.4建议性系统方案31.4.1硬件31.4.2人力31.5分析结论3项目开发计划4需求分析5概要设计7详细设计与实现95.1编写目的95.2预期的读者95.3编写背景95.4功能95.5性能10系统测试116.1编写目的116.2测试记录与运行结果116.3步骤及操作14用户手册15参考文献16课程设计总结17附录181可行性研究1.1目的可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。明确开发风险及其所带来的经济效益。本报告经审核后,交软件经理审查。在本机票预定系统项目的前一阶段,也就是需求分析阶段中,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对航空公司、各旅行社及机场的实地调研中获得,并在需求规格说明书中得到详尽得叙述及阐明。本阶段已在系统的需求分析的基础上,对机票预定系统做概要设计。主要解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。在下一阶段的详细设计中,程序设计员可参考此概要设计报告,在概要设计对机票预定系统所做的模块结构设计的基础上,对系统进行详细设计。在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误。随着科学技术的不断的进步和发展,计算机已经应用到各个领域。在科学研究、军事领域、计算机图形学、以及小到我们的日常生活中计算机无处不在,尤其是目前,计算机软件技术的发展已达到了相当高的水平,它含盖了我们生活的方方面面,例如:大型超市管理系统、公司管理系统、教学管理系统、酒店管理系统等都是现在的热点开发项目。目前,我国一些旅行社和酒店的机票预定还停留在人工处理阶段,这已经严重制约了工作效率,在计算机技术高速发展的今天,有必要引入高效的计算机系统,来协助处理机票预定工作。因此,开发一套具有完整的存储,查询,核对,打印机票功能的实时机票预定系统更现紧迫。机票预定系统应克服存储乘客信息少,查询效率低下等问题外,更重要的是其安全性,可靠性,这关系到航班和乘客的安全及准确,本系统因面向广大机票预定网点,因此要能在售票网点中普及,则需要开发一个功能全,价格能被顾客所接受的系统。在系统开发中包括很多环节,例如旅客信息的输入、机票信息的传递及接收、取票通知及帐单的生成和打印、机票销售情况的核算等等。其中较为重要的一个环节是旅客信息管理系统,同时在此系统中也是一个比较繁杂的环节。1.2背景及功能随着科学技术的发展,新颖的图形用户界面、卓越的多任务操作系统性能、高层次的软件开发平台风靡全球。人们要求的不断提高,可视化的图形用户界面对比原来的结构化程序设计语言更为简单易用,且编程系统采用面向对象、事件驱动的编程机制,提供了一种所见即所得的可视界面设计方法。在众多的编程语言中,VB可以快速地创建多媒体、图形界面等应用程序。VB6.0企业版除了具有专业版的全部功能外,还包括BackOffice。目前在大多数机票预订系统中,各种操作工作主要还是完全依赖于人工完成,例如:在机票的预订中每天的销售额统计,通过人工进行计算,这需要管理人员的很好的记忆力及计算能力,但工作中的数据量一旦增加,人工计算就会显示工作效率低,计算不准确等因素,还可能受到外在因素的影响。人工管理还存在许多弊端,由不可避免的人为因素引起,造成数据错误、遗失等。而计算机管理存储量大,运算速度快等许多诸多优点,给我们提供了处理信息及时、快捷,因此我们可以利用计算机,实现系统的管理。1.3可行性分析新系统目标应充分为机票预定管理服务,同时,新系统目标应该和现行系统的各项基本功能密切相关,并且可以分期分批实现。需要指出的是,新系统目标不可能在总体规划阶段就提得非常具体,它还将在开发过程中逐步明确和定量化。新系统目标的提法不尽相同。1.3.1技术可行性内蒙古航空公司为方便旅客,需开发一个机票预定系统。为便于旅客由旅行社代替航空公司负责为旅客定票,旅行社把预定机票的旅客信息,包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要单明了,易于操作,服务器程序利于维护。随着计算机科学技术的不断进步,管理信息系统在各个领域上广泛应用。我国虽处在发展中,但商品经济的热潮已经不断增长,且人们对于科技的投资正在不断的加大,在现代的网络与信息技术的高速发展人们对生活质量的要求不断的提高,及信息技术的依赖,为了适应当前的发展形势,跟上现代科技的发展所以我们有必要为当前数量较多的酒店、旅行社及机票预售点设计更为方便快捷的系统,从而更有利于经济的发展。该机票预定系统是以数据库为后台核心应用、以服务为目的信息平台,对资源进行科学的加工整序和管理维护。1.3.2经济可行性该系统的目标是以最低的成本,最低的投入,在较短的时间内参阅大量的资料开发出具有用户登录、存储,查询,核对,打印机票等基本功能,预期系统设计期间所投入的资金较小,从经济角度考虑,此系统开发可行。 1.3.3社会可行性法律因素: 所有软件都选用正版.所有技术资料都由提出方保管。合同制定确定违约责任.1.3.4操作可行性目前,市场经济已经覆盖了全国各个地区,大中小型发达城市,从而满足了人们日益增长的物质需求。人们物质文化水平的不断提高和科学技术的不断进步以及人们对快速高效的工作效率要求不断的提高,为我们开发使用机票预订系统打下了坚实的基础。1.4建议性系统方案1.4.1硬件为了保证系统运行的效率和可靠性,系统服务器端应具有较高的软硬件配置,客户端的要求不是很高。此应用程序可广泛用于内部的局域网。其运行要求如下:、软件环境:Windows NT/Windows2000及VB等。、硬件环境:服务器 CPU:P 500以上 ,内存:256M以上1.4.2人力使用本软件人员要求有一定计算机基础的人员,系统管理员要求由计算机的专业知识,所有人员都要经过本公司培训.管理人员也需经一般培训,经过培训人员将会熟练使用本软件.两名系统管理员,一名审计员将进行专业培训,他们将熟练管理本系统.1.5分析结论依据以上因素,本机票预订系统开发项目不仅方便快捷、高效,而且社会效益及前景较好, 综上所述,此项目在技术、经济、操作和社会效益上是均可行的。由于投资效益比远大于100%, 技术、经济、操作都有可行性,可以进行开发。项目开发计划软件工程的基本原理包括七条,如下所述:1.用分阶段的生命周期计划严格管理。即把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。2.坚持进行阶段评审。即在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。3.实行严格的控制。在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价。但是,在开发的过程中改变需求又是难免的,为了保持软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理,绝对不能谁想修改软件就随意进行修改。4.采用现代程序设计技术。采用先进的技术不仅可以提高软件开发和维护的效率,而且可以提高软件产品的质量。5.结果应能清楚地审查。软件产品不同于一般的物理产品,它是看不见摸不着的逻辑产品。为了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使所得到的结果能够清楚地审查。6.开发小组的人员应该少而精。开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素,因此,开发小组的人员应该少而精。7.承认不断改进软件实践的必要性。所以在软件开发过程中应该考虑到创新原则,体现先进性、超前性,同时应考虑软件的使用性。这七条原理是确保本次软件开发产品开发质量和开发效率的原理的最小集合,这七条原理是互相独立的,其中任意六条原理的组合都不能代替另一条原理,因此,它们是缺一不可的最小集合。主要功能:为游客提供机票预定服务,方便旅游局的售票工作,提高旅游局的服务质量和服务效率性能要求:机场提供的信息必须及时的反映在旅游局的工作平台上。售票系统的定单必须无差错的存储在机场的主服务器上。对服务器上的数据必须进行及时正确的刷新。输出要求:数据完整,详实。输出要求:简捷,快速,实时。安全与保密要求:服务器的管理员享有对机场航班信息库及机票信息库和定票信息库的管理与修改。售票员只享有对订票信息库的部分修改(写入与读出)。系统实现后,大大提高旅游局的机票预定服务效率。降低售票服务中的错误发生率,减少信息交流的烦琐过程及其带来的开销。需求分析机票预定系统的功能要求:机票预定系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。机票预定系统的性能需求:为了保证系统能够长期、安全、稳定、可靠、高效的运行,机票预定系统应该满足以下的性能需求:1 系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息处理的需求。由于机票预定系统的查询功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,而机票数量和时间又影响企业的决策活动,其准确性很大程度上决定了机票预定系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性。2 系统的开放性和系统的可扩充性机票预定系统在开发过程中,应该充分考虑以后的可扩充性。例如订票系统的方式的改变(网上订票),用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。3 系统的易用性和易维护性机票预定系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。机票预定系统中涉及到的数据是航空公司的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。4 系统的标准性系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准。如规范的数据库操纵界面、作为业界标准的TCP/IP网络协议及ISO9002标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。机票预定系统的数据需求包括如下几点:1 数据录入和处理的准确性和实时性数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。2 数据的一致性与完整性由于系统的数据是共享的,在不同的旅行社中中,机票是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。3 数据的共享与独立性 整个机票预定系统的数据是共享的。然而,从系统开发的角度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。这样,也能提供系统的强壮性。概要设计经过了需求分析,已经清楚了系统所要完成的功能,接下来就是决定“怎么做”。 概括的说,总体设计的基本目的就是回答“系统应该如何实现?”的这个问题。因此总体设计又称为“概要设计”。该系统是专门用于旅行社或各个售票点管理机票的预定以及管理员进行各项信息的添加、修改、查询。它应该具有开放性、方便性和灵活性。这样,管理员不仅可以轻松数据库中添加、修改和查询各项信息。通过这个阶段的工作,将划分出组成系统的物理元素程序,文件,数据库,人工过程和文件等。但是每一个物理元素都处于黑盒子阶段,这些黑盒子里的具体内容将留在以后进行详细的设计。总体设计阶段的另一项重要任务是设计系统的结构,也就是要确定系统中每个程序是由哪些模块组成,以及这些模块间的相互关系。功能的实现:下面,对各个功能模块分别进行详细讨论,具体情况见系统源代码。(1)、旅客信息管理功能模块包括旅客信息的添加,修改旅客信息,删除旅客信息。该功能模块是对系统的初始化,对旅客的基本信息进行管理和维护。考虑到旅客较多,设置了旅客基本信息查询,操作人员可以按旅客编号、姓名和身份证号进行查询,并对查询结果进行维护,从面减少了操作人员的工作强度。该模块的主要功能是对该旅客基本信息进行管理,并能够对旅客的基本信息进行查询,便于修改和删除。(2)、定票信息管理系统模块主要包括正常添加、修改和上传信息3个功能模块。(3)、取票信息系统模块主要完成查询、删除和打印取票通知单。(4)、查询信息管理系统模块主要完成旅客信息、定票信息、和售出机票信息的查询。(5)、退票信息管理系统模块主要完成的是查询退票信息和删除信息。系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件。系统流程图表达的是数据在系统各部件之间流动的情况主要功能描述:i. 每条航线所涉及的信息有:终点名、航班号、飞机号、飞行时间、订票数余票量、已订票的客户名单:包括姓名、订票量、以及等候替补的客户名单(包括姓名、所需票量);ii. 系统能实现的操作和功能如下:(1) 输入航班信息:主要有航班号,航班起点站,和 终点站,起飞的时间,飞行总时间,余票数和订票数。(2) 查询航班:根据旅客提出的1航班号,2终点站,3航线名查找输出下列信息:(航班号、起点站、终点站,飞行时间,余票数;如果没有你查找的信息或查找完毕,输出询问信息是否继续查找用Y和N回答。)(3) 订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出信息;若已满员或余票少于订票额,则重新询问客户要求。若需要,可登记排队候补;(4) 退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他候补的客户。(5) 修改航班信息:对各航班信息进行修改,如航班号,航班起点站,和 终点站,起飞的时间,飞行的时间,余票数和订票数。(6) f删除航班信息(7) g航班信息保存(8) h退出订票航空客运订票系统选择进入主菜单信息保存退出浏览航班信息删除航班信息修改航班信息输入航班信息乘客退票业务乘客订票业务查询航班信息显示文件中已存的航班信息取消已订票客户取消正在等待订票客户航班总飞时间航班起点站航班编号航班起飞时间航班终点站图4-1机票预定系统的逻辑模型详细设计与实现当今社会是一个讲求效率的社会,时间就是金钱。开发简单,易于操作的管理软件不仅可以节省时间,还可以避免浪费人力,物力,提高效率。待开发系统是一个对机票预订的管理系统,简单,易学,将成为机票预订管理的好帮手。5.1编写目的在前一阶段(概要设计说明书)中,已解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进行说明。在本阶段中,确定应该如何具体地实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用具体的 程序语言书写的程序。主要的工作有:根据在需求分析说明书中所描述的数据、功能、运行、性能需求,并依照概要设计说明书所确定的处理流程、总体结构和模块外部设计,设计软件系统的结构设计、逐个模块的程序描述(包括各模块的功能、性能、输入、输出、算法、程序逻辑、接口等等),解决如何1 接受:旅客信息及取票通知和帐单;2 输出:取票通知和帐单及机票;3 网络输出和加密,输入和解密;4 分辨信息的种类并采取相应的处理步骤;5 判断信息的正误并采取相应的处理步骤;6 进行数据库的查询、修改工作;7 接受并判断错误,输出相应的出错消息;5.2预期的读者软件管理人员,开发人员5.3编写背景工程的名称: 机票预定管理系统工程产品的名称: 机票预订管理系统工程组织者: 机票预订管理系统开发者产品用户:中国民航及中国国际旅游开发公司。产品设计者: 机票预订管理系统开发者产品生产者:机票预订管理系统开发者产品所有权:机票预订管理系统开发者拥有5.4功能输入: 旅客信息 航空公司信息输出: 机票信息 帐单信息处理:查询生成航班信息将查询到的航班信息反映到客户端选定要预订的航班及座位修改,插入相关数据库;图5-1系统功能图示5.5性能为了保证系统能够长期、安全、稳定、可靠、高效的运行,机票预定系统应该满足以下的性能需求:1.系统处理的准确性和及时性2.系统的开放性和系统的可扩充性3.系统的易用性和易维护性4.系统的标准性5.系统的先进性6.系统的响应速度快 系统测试6.1编写目的在开发大型软件的漫长过程中,面对极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺。因此,在软件生命周期的每个阶段都不可避免地会产生差错。尤其对于机票预订系统这类会影响人们生活财产的工程软件,必须尽量减少差错,以免造成严重的损失。测试是“为了发现程序中的错误而执行程序的过程”。测试的目的就是在软件投入生产性运行之前,尽可能多的发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明设计和编码的最后复审,也是必不可少的关键步骤。6.2测试记录与运行结果测试记录与运行结果如下:图6-1输入航班信息图6-2查询航班信息图6-3订票业务图6-4退票业务图6-5修改航班信息图6-6删除航班信息6.3步骤及操作在测试过程中,首先需要对各子单元过程进行测试。各子单元过程的测试必须先在程序设计员调试并编译通过后才能进行。在各子单元过程测试完毕后,再对各模块(包括各子单元过程之间的接口)进行测试,处理好各模块之间的接口,最后对系统进行测试和维护。其操作过程如下:1.根据各模块之间的各种关系,对其接口进行测试。2在系统测试中,要注意对各种意外情况(列如断电硬盘损坏等)加以处理,对数据库要注意其安全性可靠性健壮性效率。网络传输更要注意其安全性。软件维护是软件生命周期的最后一个阶段,它处于系统投入生产性运行以后的时期中,因此不属于系统开发过程。软件维护需要的工作量非常大,虽然在不同应用领域维护成本差别很大,但是,平均说来,大型软件的维护成本高达开发成本的四倍左右。目前国外许多软件开发组织把60%以上的人力用于维护已有的软件,而且随着软件数量增多和使用寿命延长,这个百分比还在持续上升。用户手册1.打开内蒙古航空公司订票系统的主界面图7-1主界面2.选择所进行的操作有:输入航班信息、查询航班、订票业务、退票业务、修改航班信息、删除航班信息、浏览总航班信息、保存、退出。 3.机票预订可按下面的步骤执行:a.写入新客户要订票数量、新客户ID、客户姓名。b.航班信息的填写 注:利用航班的查询,选择目的地,进行查询,显示航班号及起飞的时间,从这个窗体返回,航班信息便自动填写完成。c.订票 注:信息填写完成点击订票按钮,就会完成订票。d.打印帐单 注:完成订票,点击帐单按钮,便会显示你订票的帐单,接收帐单,即可完成这个操作。e.打印通知 注:点击通知按钮,就会显示付费取票的通知,接受后就收到了通知。f.查询参考文献1张海藩.软件工程导论M.清华大学出版社.第四版.2003年12月2郑人杰等.实用软件工程M.清华大学出版社.1997年 4月3布鲁志著. 吴丹等译面向对象的软件工程-构建复杂且多变的系统M清华大学出版社2002.10 4钱乐秋等软件工程清华大学出版社 第1版.20075谭浩强.C语言程序设计学习辅导(第2版)M.北京:清华大学出版社.20096张军安.C+程序设计基础教程M.西安: 西北工业大学出版社.2005-10-17和青芳.计算机图形学原理及算法教程(C+版)M.北京:清华大学出版社.20088陈维兴,林小茶.C+面向对象程序设计教程M.北京:清华大学出版社.20099IBM 公司Mastering Object-Oriented Analysis and Design with UML课程设计总结在本次软件工程课程设计过程中,经过认真的回顾软件工程的相关知识,并很好的巩固了课程设计的基本步骤,掌握了在软件工程课程设计过程中所要遵循的基本原则和环节;运用软件设计中的白盒和黑盒测试方法对软件的运行起到了至关重要的作用。虽然在本次软件工程系统中遇到很多的困难但是在老师的精心指导和自己的不断努力基本上完成了此次数据库的设计并达到了预期的要求,而且自己在程序设计方面也有不少的收获,更加坚定了自己在编程中的信心。现代管理方法很多,任何一种方法都不仅要进行科学管理,还要作定量分析。不同企业应根据自身状况选择相应的管理方法。现代管理活动都离不开数据和信息,而且要采用数学方法对决策问题进行求解,为此,还必须进行大量的数据处理。如果只有方法而没有相应手段,仅仅依靠人工是难以实现的,因而,现代管理方法必须以计算机的应用为基础,二者的相结合可谓相辅相成、缺一不可。机票预定系统是现代管理方法与手段相结合的系统,它的目的是要使各级管理人员在计算机的系统支持下,从各种繁琐的日常事务中解脱出来,以便更好的投入到决策工作中去。这样机票预定系统使管理手段各方法达到了一个新的层次。对机票预定系统理论与开发方法的深入研究已经越来越重要,这将有利于提高机票预定系统的引用效率,以及系统的开发成功率。附录#include #include #include #include using namespace std;class Customer /客户类public:string m_strID; /客户ID号string m_strName; /客户姓名int m_nWant; /客户要订的票数;/class AirInfo/航班信息string m_strNum; /航班号string m_strStart; /航班起点站string m_strEnd; /航班终点站string m_strTime; /航班起飞时间日期string m_strFlyTime; /飞行时间int m_nCount; /航班票数int m_nLeftCount; /剩余票数public:vector m_wPerson;/等待订票的顾客队列,其中m_wPerson.size()即为排队的客户数 vector m_haveBook;/已订票客户AirInfo();void SetNum(string &n); /设计航班号void SetStart(string &start); /设计航班起飞点void SetEnd(string &end); /设计航班终点地void SetTime(string &time); /设计航班起飞时间void SetCount(int count); /设计航班票数void SetLeftCount(int left); /设计航班剩余票数void SetFlyTime(string &time); /设计航班飞行总时间void SetWait(Customer &p); /设计航班的等候订票队列,每次进一个人void SetHavingBookCustomer(Customer &p);/设计已订票的客户string GetFlyTime(); /获取航班飞行总时间string GetTime(); /获取航班起飞时间日期 int GetWaitCount(); /获取等侯订票队列人数int GetLeftCount(); /航班剩余票数string GetStart(); /获取该航班起飞地string GetEnd(); /获取该航班终点地string GetNum(); /获取该航班号int GetCount(); /获取该航班总票数void PrintInfo(); /打印该航班的信息AirInfo();void AirInfo:SetHavingBookCustomer(Customer &p)/m_haveBook.push_back(p);/记录已订票的客户int AirInfo:GetLeftCount()return m_nLeftCount;int AirInfo:GetWaitCount()return m_wPerson.size();string AirInfo:GetTime()return m_strTime;string AirInfo:GetFlyTime()return m_strFlyTime;void AirInfo:SetWait(Customer &p)/每次进入一个等侯订票的客户m_wPerson.push_back(p); /让客户排在队列后面void AirInfo:SetFlyTime(string &time)m_strFlyTime=time;void AirInfo:SetLeftCount(int left)m_nLeftCount=left;AirInfo:AirInfo()/初始化为空m_strNum=; /航班号m_strStart=; /航班起点站m_strEnd=; /航班终点站m_strTime=; /航班起飞时间m_strFlyTime=; /飞行时间m_nCount=0; /航班票数 m_nLeftCount=0; /剩余票数int AirInfo:GetCount()return m_nCount;string AirInfo:GetNum()return m_strNum;string AirInfo:GetEnd()return m_strEnd;string AirInfo:GetStart()return m_strStart;void AirInfo:SetCount(int count)m_nCount=count;void AirInfo:SetTime(string &time)m_strTime=time;void AirInfo:SetEnd(string &end)m_strEnd=end;void AirInfo:SetStart(string &start) m_strStart=start;void AirInfo:SetNum(string &n) m_strNum=n;void AirInfo:PrintInfo()/打印本航班信息coutendl;coutt*航班信息*endl;coutt航班号:m_strNumt起飞站:m_strStartt终点站:m_strEndendl;coutt起飞时间:m_strTimet飞行总时间(小时):m_strFlyTimeendl;coutt航班总票数:m_nCountt剩余票数:m_nLeftCountendl; if(m_haveBook.size()!=0)coutt该航班有m_haveBook.size()个客户已订票,其信息如下:endl; couttt; for(int i=0;im_haveBook.size();i+) cout客户ID号:m_haveBooki.m_strID 客户姓名:m_haveBooki.m_strName 订票数量:m_haveBooki.m_nWant;coutendltt;coutendl;couttt*endl; if(m_wPerson.size()!=0)coutt该航班有m_wPerson.size()个客户等待订票,其信息如下:endl; couttt; for(int i=0;im_wPerson.size();i+) cout客户ID号:m_wPersoni.m_strID 客户姓名:m_wPersoni.m_strName 订票数量:m_wPersoni.m_nWant;coutendltt;coutendl;coutt*endl;void LoadData(vector *vec_Air)/从文件导入数据AirInfo* pA; /航班信息指针fstream dateFile;dateFile.open(AirInfo.txt,ios:in);/打开航班信息数据文件 string tem; /临时变量int wait=0; /等待订票的客户数int date=0;int havedBook=0; /已订票和客户数while(dateFiletem) /从文件里导入数据/处理一条航班记录/动态创建pA=new AirInfo();/在内存申请一块空间pA-SetNum(tem); /设计航班编号 /正在对一条记录处理,不能跳到另外一条记录 /对字符串的处理dateFiletem;pA-SetStart(tem); /起飞点站dateFiletem;pA-SetEnd(tem); /终点站dateFiletem;pA-SetTime(tem); /起飞时间(日期)dateFiletem;pA-SetFlyTime(tem); /飞行总时间 /对数字处理dateFiletem;date=atoi(tem.c_str(); /把字符串转换成整形intpA-SetCount(date); /设计航班票数dateFiletem;date=atoi(tem.c_str();pA-SetLeftCount(date); /设计航班剩余票数 /对已订票的客户处理dateFiletem;havedBook=atoi(tem.c_str();for(int j=0;jtem;havedPerson.m_strID=tem; /客户IDdateFiletem;havedPerson.m_strName=tem;/客户名字dateFiletem;havedPerson.m_nWant=atoi(tem.c_str();/客户要订票的数目pA-SetHavingBookCustomer(havedPerson);/对等候客户的数据导入dateFiletem;wait=atoi(tem.c_str(); /本航班有wait个客户等候排队订票 for(int i=0;item;person.m_strID=tem; /客户IDdateFiletem;person.m_strName=tem;/客户名字dateFiletem;person.m_nWant=atoi(tem.c_str();/客户要订票的数目pA-SetWait(person);vec_Air-push_back(pA);/把本航班的整条信息记录放入模板里(用作航班信息暂存器)dateFile.close(); /关闭文件/void NewAirInfo(vector *vec_A
展开阅读全文