为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

飞机订票系统

2017-09-27 50页 doc 473KB 70阅读

用户头像

is_314871

暂无简介

举报
飞机订票系统飞机订票系统 设计题目:飞机订票系统 小组成员:顾彪 卢鹏 陆姓祥 学 号:P1401070518 P1401070522 P1401070525 课程教师: 段 江 实验指导老师:段 江 实验地点: 沉毅北楼6楼机房 试实验时间: 2010/08/30—2010/09/03 6 目录 一、问题定义 ............................................................................................................
飞机订票系统
飞机订票系统 题目:飞机订票系统 小组成员:顾彪 卢鹏 陆姓祥 学 号:P1401070518 P1401070522 P1401070525 课程教师: 段 江 实验指导老师:段 江 实验地点: 沉毅北楼6楼机房 试实验时间: 2010/08/30—2010/09/03 6 目录 一、问题定义 .................................................................................................................................. 10 二. 可行性研究 ............................................................................................................................... 10 2.1.系统规模及目标要求 ............................................................................................................. 10 2.2研究现有系统 ........................................................................................................................ 11 2.3导出高层逻辑模型 ................................................................................................................ 11 2.4数据处理流程图 .................................................................................................................... 11 三. 需求分析 ................................................................................................................................... 13 3.1系统开发背景及系统分析过程 ................................................................................................. 13 3.1.1机票预定系统的功能要求................................................................................................... 13 3.1.2下面分析各个子系统的功能需求: ................................................................................... 14 3.1.3机票预定系统的性能需求................................................................................................... 16 3.1.4机票预定系统的数据需求................................................................................................... 17 3.1.5机票预定系统的数据字典................................................................................................... 18 3.1.6建立机票预定系统的约束................................................................................................... 20 3.1.7软件主要功能 ..................................................................................................................... 21 3.2资及效益分析 ............................................................................................................................ 22 3.2.1费用开支 ......................................................................................................................... 22 3.2.2收益 ................................................................................................................................. 22 3.3可行性综合分析......................................................................................................................... 22 3.3.1结论 ..................................................................................................................................... 23 3.3.2用户特点及一般约束 ......................................................................................................... 23 3.4功能需求(用DFD图表示) ..................................................................................................... 23 3.4.1用户注册 ......................................................................................................................... 23 3.4.2用户订票 ......................................................................................................................... 24 3.4.3退票 ................................................................................................................................. 25 3.4.4机票信息查询 .................................................................................................................. 26 3.4.5外部接口需求性能及软件属性需求 ............................................................................... 26 7 3.4.6数据需求(ER图表示) ................................................................................................. 27 四. 系统设计 ................................................................................................................................... 29 1.系统规格 ................................................................................................................................... 29 2.系统地运行环境........................................................................................................................ 30 2.1 设备 ................................................................................................................................... 30 2.2 支持软件 ........................................................................................................................... 30 2.3 接口 ................................................................................................................................... 30 2.4 控制 ................................................................................................................................... 30 2.5 功能分配 ........................................................................................................................... 30 3( 接口设计 .............................................................................................................................. 30 3.1 用户接口 ........................................................................................................................... 30 3.2 外部接口 ........................................................................................................................... 31 4(设计过程 ................................................................................................................................ 31 4.1 处理流程 ........................................................................................................................... 31 4.2 总体结构和模块外部设计 ................................................................................................. 34 4.3 功能分配 ............................................................................................................................. 7 5(运行设计 .................................................................................................................................. 7 5.1 运行模块组合 ...................................................................................................................... 7 5.2 运行控制 ............................................................................................................................. 6 5.3 运行时间 ............................................................................................................................. 6 6( 数据结构设计 ......................................................................................................................... 6 6.1 逻辑设计要点 ...................................................................................................................... 6 6.2 物理结构设计要点 .............................................................................................................. 7 6.3 数据与程序的关系 .............................................................................................................. 8 6.4数据设计: .......................................................................................................................... 8 7(系统出错处理设计 ................................................................................................................... 9 7.1 出错输出信息 ...................................................................................................................... 9 7.2 出错处理对策 ...................................................................................................................... 9 7.3 维护设计 ............................................................................................................................. 9 五. 系统实现 ................................................................................................................................... 10 8 总体设计(系统总流程图) ....................................................................................................... 10 5.1登陆界面 ............................................................................................................................ 11 5.2注册界面 ............................................................................................................................ 11 5.3主界面的用户个人信息界面 .............................................................................................. 12 5.4用户订票界面 ..................................................................................................................... 13 5.5用户退票界面 ..................................................................................................................... 13 5.5用户登录时的管理员界面为不可用 .................................................................................. 14 5.6添加管理员界面 ................................................................................................................. 14 5.7舱位等级信息修改界面 ..................................................................................................... 15 5.8飞机信息修改接面 ............................................................................................................. 15 5.9航线信息修改界面 ............................................................................................................. 16 六. 程序测试分析及结果、使用说明 ............................................................................................. 17 1.程序使用说明: .......................................................................................................................... 17 2.测试分析及结果........................................................................................................................ 17 课程总结 .......................................................................................................................................... 18 附录 ................................................................................................................................................. 18 实现系统登录 .............................................................................................................................. 19 后台部分源代码 .......................................................................................................................... 34 9 一、问题定义 项目名称:机票预定系统 解决的问题:为方便旅客购票 项目目标:研究费用较低的自动订票系统 项目规模:开发成本不超过120万元 初步设想:用旅行社的计算机系统生成订票信息和打印机票 可行性研究:为了更全面的研究机票预定系统项目可行性,建议进行为期3周到可行性研究,成本不超过2000元 二. 可行性研究 2.1.系统规模及目标要求 系统的主要功能是提供机票预订服务;性能要求是对数据的操作准确的反映在航空公司的主服务器上;输入要求是数据完整,详细;输出要求是简捷,快速,实时;完成期限预计2周 。 在旅游局中的终端是安装了Windows NT的PC机,主要目的是向机场的服务器传递数据。当顾客在旅游局进行咨询时,终端向服务器发出查询请求,服务器根据航班信息库的实时数据,向终端发送数据,显示在终端的屏幕上。当顾客向售票员定票时,终端向服务器发出详尽的一份定单,服务器核对后,存入定票信息库,并修改机票信息库。当顾客再次来取票时,终端向服务器发出查询定票请求,服务器接收后,查询定票信息库,核对后,传送机票确认表单,终端打印出机票。 航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入机票预定系统,系统为旅客安排航班,印出取票和帐单。旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。系统实现后,大大提高旅游局的机票预定服务效率。降低售票服务中的错误发生率,减少信息交流的烦琐过程及其带来的开销。 a.系统能有效、快速、安全、可靠和无误的完成上述操作。 b. 软件系统的界面要美观,布局要合理,窗口的内容尽量简单明了提供的信息,语言要通俗易懂,有层次感,分类清晰明了。服务器程序利于维护。 c.系统实现后,大大提高航空公司的机票预定服务效率。降低售票服务中的错误发生率,减少信息交流的烦琐过程及其带来的开销。 技术可行性 操作可行性 经济可行性 10 法律可行性 经费来源:航空公司。 硬件条件:建议使用奔腾800以上的pc机,内存需在512兆以上。 运行环境:Windows 操作系统 数据库:Microsoft Access 终端PC机20台 网络设备/配 成本/效益分析结果,效益 〉成本。 技术可行,现有技术可完全承担开发任务。 操作可行,软件能被原有工作人员快速接受。 2.2研究现有系统 现有系统是信息的重要来源。显然,如果目前有一个系统正在被人使用,那末这个系统必定能完成某些有用的工作,因此,新的目标系统必须能够完成它的基本功能。;另一方面,如果现有剖系统是完美无缺的,用户阻燃不会日出开发新系统的要求,因袭,现有的系统必定有某些缺点,新系统就必须能解决就系统中存在的问题。另外,所需要的经费也是一个重要的经济指标,如果,行动系统不能增加收入或减少使用费用,那么从经济的角度新系统就不如旧系统。 可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决,必须记住,可行性研究的目的不是解决问题,而是确定问题是否值得去理解。怎样到达这个目的呢,当然不能靠主观猜想而只能靠客观分析。必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否实现,系统完成后说所能带来的效益是否大到值得投资开发这个系统的程度。 2.3导出高层逻辑模型 优秀的设计过程通常总是从现有的物理系统出发,导出现有系统的逻辑模型,再参考现在有系统的逻辑模型,设想目标系统的逻辑模型,最后根据目标系统的逻辑模型建造新的物理系统。 2.4数据处理流程图 订票事务 订票处取票处 数据库 取票事理程序 理程序 务 社会因素方面的可行性 11 法律因素 本软件的开发和使用没有触犯国家的任何法律。 用户使用可行性 本软件使用起来简单易学,使用单位人员有使用计算机的基本常识,因此,他们完全可以充分利用本软件提高他们的办公效率。 12 三. 需求分析 3.1系统开发背景及系统分析过程 当今世界,以信息技术为主要标志的科技进步日新月异,高科技成果向现实生产力的转化越来越快。纵观全球经济发展,信息技术和信息产业已经成为经济增长的主要推动力之一,正在改变着传统的生产和经营方式以至生活方式,发达国家经过产业结构的升级和经济结构的转型已进入信息经济阶段。信息资源已经成为国民经济和社会发展的战略资源,信息化水平也已成为现代水平和综合国力的重要标志。今年是“十五”开局之年,中共十五届五中全会通过的国民经济和社会发展第十个五年计划建议中已明确指出:“信息化是当今世界经济和社会发展的大趋势,也是我国产业优化升级和实现工业化、现代化的关键环节。”“大力推进国民经济和社会信息化,是覆盖现代化建设全局的战略举措。”,可见,党和国家已将国民经济和社会信息化放在优先发展位置,体现了先进生产力的客观要求,是一项重要的战略决策。这是民航加快发展的机遇,更是民航信息化的难得机遇。 随着知识经济的到来,人类已经逐步进入信息化社会,信息增长的速度越来越快,人们希望利用先进的管理理论方法手段来得到并处理越来越多的信息,以提高工作效率和管理水平。由于信息资源对人们生活的重要性,不断提高信息的收集,传输,加以利用等活动,日益成为人们社会生活的重要组成部分。网上机票预订管理系统的产生和发展正好满足人们的这种需求。现在将详细介绍我的课程设计——网上机票预订管理系统。 3.1.1机票预定系统的功能要求 系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。 根据可行性研究的结果和客户的要求,分析现有情况及问题,采用Client/Server结构,将机票预定系统划分为两个子系统:客户端子系统,服务器端子系统。 旅客订票流程图: 13 3.1.2下面分析各个子系统的功能需求: A(客户端子系统: 系统的功能实现上,可以分为以下几个部分: [1]旅客信息的输入和统计 旅客要求订票的信息由专人负责输入。这部分功能是客户端子系统 14 的基本部分,这个功能是以后各个部分的基础。系统要求做到即能够从其它子系 统中共享一部分信息,又有方便的操作界面工手工输入旅客信息。这部分要求对 输入的数据进行简单的统计,供航空公司进行查询和宏观调控。 [2]旅客信息的存储: 将旅客的信息存储到旅行社的客户端系统中,以备以后的取票确认以及查 询。 [3]机票信息的传递及接收: 将旅客所须的机票信息由旅行社客户端由网络传到航空公司的服务器上,并 且接受航空公司返回的航班信息,然后存储起来。 [4]取票通知及帐单的生成和打印: 把已存储的从航空公司返回的航班机票信息打印出来,并且生成帐单打印出来一起交给旅客。 印出机票给已经订票的旅客:根据旅客的取票通知及帐单,经过确认无误后,接受旅客的付款后把机票印出来交给旅客。 [5]机票销售情况的核算 这一功能是在上一功能的基础上,对机票销售额进行单项核算,得到该旅行社的销售情况并把核算结果作为企业报表输出。 B(服务器端的功能要求: 机网络将客户端与服务器的数据库相连,将从客户端得到的信息进行处理,实现航班查询,机票生成,销售统计,综合信息查询等子系统。以计算机成本核算为中心,实现销售业务的计算机自动化,为航空公司降低成本、提高销售额、经营决策提供及时精确的依据。 在服务器端系统的功能实现上,可以分为以下几个部分: [1]接收由旅行社客户端发回的所需机票信息: 通过网络接收机票信息并存入到服务器的数据库中。 [2]生成航班信息: 根据所需机票信息(时间,地点),在数据库中查询并得到正确的航班的信息(价格,时间,等级),分配所需的机票数并在数据库中做出已售出的标记。 [3]传递航班信息到客户端(旅行社): 把得到的航班信息通过网络传递到旅行社。 [4]接收旅行社的反馈信息: 对旅行社的反馈信息进行分析,把已经售出的机票进行统计,对被旅客所退掉的机票要进行数据库的恢复。 [5]印出机票给已经订票的旅客: 根据旅客的取票通知及帐单,经过确认无误后,接受旅客的付款后把机票印出来交给旅客。 [6]销售额的分析和管理 15 这一步骤的功能要求包括对销售的机票进行分析,这一工作是在前面的基础上,以计算机为工具,对机票预定系统的功能和目标进行扩充。它以财务管理学为理论基础,以辅助决策为目标,以机票销售数据为中心,广泛采用统计学、运筹学的分析方法,对销售信息进行深层加工,建立反映不同航班需求的模型,提供管理上所需的各种辅助决策信息和财务信息。这一要求是机票预定系统的最高目标,将通过系统运行后获得的大量销售历史数据基础上,实现这一目标。 3.1.3机票预定系统的性能需求 为了保证系统能够长期、安全、稳定、可靠、高效的运行,机票预定系统应该满足以下的性能需求: 系统处理的准确性和及时性 系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息处理的需求。 由于机票预定系统的查询功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,而机票数量和时间又影响企业的决策活动,其准确性很大程度上决定了机票预定系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性。 系统的开放性和系统的可扩充性 机票预定系统在开发过程中,应该充分考虑以后的可扩充性。例如订票系统的方式的改变(网上订票),用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。 系统的易用性和易维护性 机票预定系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。 机票预定系统中涉及到的数据是航空公司的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。 系统的标准性 16 系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准。如规范的数据库操纵界面、作为业界标准的TCP/IP网络协议及ISO9002标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。 系统的先进性 目前计算系统的技术发展相当快,做为机票预定系统工程,应该保证系统在下个世纪仍旧是先进的,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。 系统的响应速度 系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,则是保证操作人员不会因为速度问题而影响工作效率。 3.1.4机票预定系统的数据需求 机票预定系统的数据需求包括如下几点: 数据录入和处理的准确性和实时性 数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。 在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。 数据的一致性与完整性 由于系统的数据是共享的,在不同的旅行社中中,机票是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。 对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。 4.3( 数据的共享与独立性 整个机票预定系统的数据是共享的。然而,从系统开发的角度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使各个分系统能 17 够独立运行,而通过人工干预的手段进行系统数据的交换。这样,也能提供 系统的强壮性。 3.1.5机票预定系统的数据字典 系统中的数据元素: 名字:旅客信息 别名: 描述:旅客的个人信息,用于对旅客的确认 定义:旅客信息=姓名+性别+工作单位+身份证号码+旅行时间 +旅行目的地 位置:输入到旅行社端(client端) 名字:订票旅客清单 别名: 描述:已订票的旅客的记录 定义:订票旅客清单=旅客信息的合集 位置:输入到旅行社端(Client端) 名字:取票通知 别名: 描述:旅客领取机票的凭证 定义:取票通知=旅客姓名+领票时间 位置:输出到打印机 名字:订票信息 别名: 描述:旅客的旅行时间和目的地,用于确定旅客的航班 定义:订票信息=旅客旅行时间+旅客旅行目的地 位置:传输到航空公司端(Server端) 名字:航班机票信息 别名: 描述:旅客的航班信息,根据旅客的旅行时间和目的地确定 定义:航班机票信息=旅客机票时间+旅客机票班次 位置:传输到旅行社端(Client端) 18 名字:旅客订票记录 别名: 描述:已订票的旅客在航空公司的记录 定义:旅客订票记录=旅客姓名+航班机票信息 位置:输出到航空公司端(Server端) 名字:售出机票信息 别名: 描述:旅客的航班机票的信息 定义:售出机票信息=旅客的航班机票 位置:输出到打印机 19 6.机票预定系统的运行要求 机票预定系统中的各个子系统的硬件和软件的配置如下: (1)(服务器端子系统的运行要求: 系统软件: Window NT Server 数据库管理系统:SQL Server 硬件要求:Pentium III 450以上, 258M RAM, 14G HD (2).客户端子系统的运行要求: 系统软件: Window NT Workstation 数据库管理系统:SQL Server 硬件要求:Pentium 133以上, 32M RAM, 4.3G HD 3.1.6建立机票预定系统的约束 3.1.6.1 Client/Server结构总体设计对它的约束: 机票预定系统做为Client/Server 结构的一个应用系统,不可避免的要受到Client/Server结构的约束。在其实施的各个阶段都要服从它的一些规划,包括功能设计、系统配置和计划。同时,由于信息的共享,机票预定系统还受到其它系统的信息约束。 3.1.6.2人力、资金、时间的约束 机票预定工程实施的目标就是要带给航空公司看得出见的效益,其开发过程中也要考虑到人力、资金和时间的约束。因此,在设计中,重点是销售系统中的方便快捷,能提供给旅客以优质高效的服务,并提高销售的效率和便捷,为航空公司带来良好的效益。 3.1.6.3技术发展规律的约束 计算机技术和产品的发展日新月异,将会给信息处理带来更多的手段,同时也会带来更加丰富的信息表达形式。例如图象和语音技术的进步,多媒体技术的发展,这些都要求系统在设计时考虑技术变化的可能性,为可能的变化预留一定的系统处理能力。 20 3.1.7软件主要功能 要完成功能主要有: , 新用户注册,新用户可以注册,注册时输入用户名可以查询用户可不可用,可用就可以注册,注册时可以判断用户输入的密码和验证密码是否相同,相同才给以注册, 如果满意可以点注册,注册成功后用户可以选择不用在回到登陆界面,可以直接 陆到用户主界面,以后就可以用这个用户登录了,如果不满意,点取消,所有信息 清空,重新输入。 , 验证登陆名密码,正确进入主菜单,根据登录时所选的登录方式(客户、管理员)的不同分别对用户设定不同的访问权限(如果是输入的客户用户名和密码正确,选择以客户方式登陆则主界面里面的管理员界面不能用,如果输入的是管理员的相应用户密码正确,以管理员的方式登陆则管理员界面可用)不正确则清空登录框,最多可以输入三次,三次不正确系统会自动关闭。 , 主窗体的用户信息界面,用户点击个人查询按钮,可以把自己的个人信息显示到界面上,还可以对自己的信息进行相应的修改(用户编号和用户名不能修改),还可以点击我的机票查询,查询该用户的订票记录。 , 主窗体的订票界面,你可以点击你想查询的有关机票的信息的按钮(舱位信息查询,客机信息查询,航线查询,客户类型信息查询)获得相关信息的表,根据表的内容,你可以在下面的下拉框中选择你要定的票信息,点确定后在下面会显示你的机票的相关内容,如果满意可以点击订票,把相关信息添加到机票数据库表中,如果不满意,可以点重置,所有信息清空,再重新选择。 , 退票窗口,用户可以根据用户信息表中的我的机票信息查询,找出机票号,在输入到机票号查询里,点击查询获得你的机票信息以及价格显示,点击退票则在数据库机票信息表中删除本条信息。 , 管理员界面的管理员添加界面能对管理员信息进行查询、添加、删除和修改,包括用户名、登陆密码和联系方式。 , 管理员界面的舱位信息的查询、添加、删除和修改,包括舱位等级编号、舱位等级名称、提供的各种服务类别,以及备注信息等。 , 管理员界面的客机信息界面对客机信息的添加、修改、删除和查询, 21 包括客机编号、客机型号、购买时间、服役时间、经济舱座位数量、公务舱座位数量、头等舱座位数量以及备注信息等。 , 管理员界面的航线信息界面对航线信息的添加、修改、删除和查询,包括航线编号、出发城市、到达城市、航班日期、出发时间、到达时间、客机编号、经济舱价格、公务舱价格、头等舱价格和备注信息等。 , 客户等级信息的的添加、修改、删除和查询,包括客户等级编号、客户等级名称、折扣比例和备注信息等。 , 管理员界面的用户信息查询,能查询所有的已注册的用户信息。 , 管理员界面订票信息界面,可以查询所有的已订的机票的信息。 3.2资及效益分析 3.2.1费用开支 基础投资: 终端PC机15台:1000×15 = 15万 网络设备/配置:25 万 共计:40万 其他投资:jin 技术引进:40 万 操作员培训费用: 30(人)×5000(元)=15万 其他不可知额外支出:20万 共计: 75万 总计: 115万 3.2.2收益 一次性收益:50万 经常性收益:20万/年 不可定量收益:5-10万/年 3.3可行性综合分析 技术可行性:对于该系统的技术要求,现行的软件开发条件,环境,完全可以实现。Vb和access完全可以提供该系统的操作要求和数据库需求。 操作可行性:该系统的开发要求是界面简单,易于操作,因此管理人员利用用户手册完全可以操作此软件,所以机票预订系统的操作上是完全可行的。 经济可行性:该系统做为课程设计开发,经济可行性在此不做讨论。 法律可行性:没有触犯任何国家法律。 22 3.3.1结论 由于投资效益比远大于100%, 技术、经济、操作都有可行性,可以进行开发。 , 3.3.2用户特点及一般约束 1.管理员和用户的登陆 要求合法的管理员以及用户才能登陆体统,防止系统被无关人员动用,使用字符串匹配对用户名和密码进行判断。管理员和用户的登录对相应的操作权限也不一样,如果是用户登录,管理员的窗口属性为不可用,管理员有舱位信息管理,客机信息管理,航线信息管理,客户类型信息管理,客户信息和订票信息管理,用户主要有舱位查询,客机信息查询,航线信息查询,客户类型信息查询,自己的信息管理,和自己订票和退票。 2.管理员的日常操作 管理员可以对舱位信息,客机信息,航线信息,客户类型信息,进行查询、修改和删除操作,可以对客户信息和订票信息只有查询操作。 3.用户的的日常操作 用户可以进行注册然后登陆系统,可以查询舱位信息,客机信息查询,航线信息查询,客户类型信息,可以对自己的信息进行修改,可以定票(按照航班号进行预订机票,显示所订机票的信息和价格,进入支付系统付账,并再次要求客户确认,确认无误后订票成功),可以退票(在特殊情况下(如天气不适合飞机起降,飞机延误超过30分钟)等给予全额退票,如果是个人原因只能退50%),对退票后的机票要在未售出机票中重新体现。 3.4功能需求(用DFD图表示) 3.4.1用户注册 流程图: 注册成功可P 点击新用 填写信息 获得确认 登录 户注册 填写相应的 信息注册 23 1.层图 P1 P2 点击新用填写信息 获得确认 填写相应的返回用户注册成功 户注册 信息注册 信息 D添加用户信息 数据流图 3.4.2用户订票 流程图: P 用户登查阅机订信录 票 票 息 1层图: 24 P P P 2.1 2 用户信机票信订票信1 用户登输入要查查询机处理订订票成息 息 息 信信录 息 询 票 票 功 息 息 查 机 票 询 信 信 息 息 D 1机票信 息 2层图: D 2订票信息 定 定 票 票 信 信 息 息 P P P 1 2 2.1.1 用户信息 D 3机票已卖完 用户登陆 处理用户 查询用户 查询订票信息 信息 信息 信息 用 用 户 户 户 证 信 信 P 2.1.2 息 息 机 D 4订票有误信 检查机票是 票 D 息 1用户信息 否存在 数 定 量 票 已 信 满 息 信 息 P 2.1.3 错 误 更新机票 书 信息 定 信 票 息 信 息 用户 3.4.3退票 流程图: 25 用户信息 退票信息 用户登陆 退票 退票成功 1层图: D 1订票记 录录 P P 1 2 退票信机票信用户信退票成用户登处理订票取消机票息 息 息 息 录 功 陆 信 记 机 票 信 息 P 3 机 票 退款处信 理 息 退 票 的 原 因 D 2退票的相关规 定 3.4.4机票信息查询 流程图: 查找的机票信机票信用户登查询机用息 息 陆 票 户 1层图: P P 1 2 查找的机票信机票信机票信用户登处理机票用机票信息 息 息 息 陆 信 户 息 机 机 票 票 信 清 息 单 D D 2机票信机票信息清 息 单 3.4.5外部接口需求性能及软件属性需求 在用户界面方面要求错误信息格式均以弹出提示框的形式出现,硬软件 接口方面没有特别的需求,一般用户都可以直接使用。 26 因为系统本身较小,并不投入实际应用,因此响应时间、结果精度方面可能会比较差,数据量大小方面能够处理较大的数据量。 在数据检索、数据增删改方面必须做到丝毫不差,满足软件开发的正确性要求。 必须考虑充足的异常处理机制以及软件的复用性,以便增强软件的健壮性。 在安全保密性方面做到不同身份所能处理的事务不同,避免保密数据泄漏;设置足够的触发器对不安全的数据修改进行回滚操作,进而保证了安全性要求。 所开发出来的软件必须是可维护的,不能把一些东西做的太死。 3.4.6数据需求(ER图表示) 管理员信息实体E-R图如图2-1所示。 管理员信息实体 管理员编号 管理员电话 管理员用户名 管理员密码 舱位等级信息实体E-R图如图2-2所示。 图2-2舱位等级信息实体E-R图 客机信息实体E-R图如图2-3所示。 图2-3 客机信息实体E-R图 航线信息实体E-R图如图2-4所示。 27 图2-4航线信息实体E-R图 客户类型信息实体E-R图如图2-5所示。 图2-5 客户类型信息实体E-R图 客户信息实体E-R图如图2-6所示。 图2-6 客户信息实体E-R图 订票信息实体E-R图如图2-7所示。 图2-7 订票信息实体E-R图 实体之间关系的E-R图如图2-8所示。 28 图2-8实体之间关系的E-R图 四. 系统设计 经过需求分析阶段的分析过程,已粗略的表现了整个设计过程。总体设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案,并且进而确定组成系统的每个程序的结构。因此,总体设计阶段要完成两个小阶段,首先要进行系统设计,从需求分析阶段的数据流图设想完成系统功能的最佳物理方案,然后进行软件结构设计,确定软件有哪些模块组成以及这些模块之间的动态调用关系。用结构图来描绘软件结构 1.系统规格 通过计算机网络将客户端与服务器的数据库相连,将从客户端得到的信息进行处理,实现航班查询,机票生成,销售统计,综合信息查询等子系统。以计算机成本核算为中心,实现销售业务的计算机自动化,为航空公司降低成本、提高销售额、经营决策提供及时精确的依据。 在客户端系统的功能实现上,可以分为以下几个部分: 29 ?.接收由客户端输入的所需机票信息 ?.查询生成航班信息 ?.将查询到的航班信息反映到客户端 ?.选定要预订的航班及座位 ?.印出机票给已经订票的旅客 ?.销售额的分析和管理 为了保证系统能够长期、安全、稳定、可靠、高效的运行,机票预定系统应该满足以下的性能需求: 1.系统处理的准确性和及时性 2.系统的开放性和系统的可扩充性 3.系统的易用性和易维护性 4.系统的标准性 5.系统的先进性 6.系统的响应速度快 2.系统地运行环境 2.1 设备 奔腾133,16兆以上内存的pc机。 2.2 支持软件 用VC程序设计语言作为系统的支持软件。 2.3 接口 本产品的用户一般需要通过终端进行操作,进入主界面后点击相应的窗口,分别进入相对应的界面(如:输入界面、输出界面)。用户对程序的维护,最好要有备份。 使用WIN9X/NT/XP操作系统 2.4 控制 本软件是以支持VC的操作系统来控制软件运行。 2.5 功能分配 客户机程序主要有三大块:接收数据、网络通信及输出部分。服务器程序主要也是由三大功能:接收网络数据、数据库操作及发送网络数据部分。 3( 接口设计 3.1 用户接口 本产品的用户一般需要通过终端进行操作,进入主界面后点击相应的窗口,分别进入相对应的界面(如:输入界面、输出界面)。用户对程序的维护,最好要有备份。 30 3.2 外部接口 3.2.1 用户界面 在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化。 总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用 3.2.2 接口 在输入方面,对于键盘、鼠标的输入。 在输出方面,打印机的连接及使用。在网络传输部分,在网络硬件部分,实现高速传输。 4(设计过程 4.1 处理流程 下面将使用(结构化设计)面向数据流的方法对机票预定系统的处理流程进行分析。系统可分为两大部分:一、客户机上的程序,二、服务器上的程序。以下将分别对系统的这两大部分进行流程分析: 4.1.1 客户机程序流程 客户机上的输入信息为旅客资料或帐单号,还包括一个定票/领票选项。输出为打印帐单或机票,和确认或出错信息。其内部处理流程如下: 31 图 1 下面对各模块(以数字表示)进行功能说明: ?. 读入并确定(定票/领票) 它是一个事务处理中心,若输入是定票时转入2 ,输出则转入5。 ?. 读入旅客资料 读取所输入的旅客资料,并将其格式化,将格式化数据送3。 ?. 检验输入资料 检验格式化输入资料,初步检查输入是否有误,它是一个事务处理中心,有误则转2再次读入,检查无误则将数据送4。 ?. 准备服务器数据 由格式化旅客资料准备需发送到服务器的数据,将准备好的数据送7。 ?. 读入帐单号 读取所输入的帐单号,并将其格式化,将格式化数据送6。 ?. 准备服务器数据 由格式化帐单号准备需发送到服务器的数据,不同于4,它将准备的是帐单号,将准备好的数据送7。 ?. 准备网络数据包 将数据准备/加密成网络传输数据包。 ?. 网络数据发送 将数据包经网络发送到服务器程序, 它是程序与网络的接口。 ?. 网络数据接受 接受由服务器程序经网络传送到客户机的数据包, 它是程序与网络的接口。 ?. 解开/判断 解开9 所接受的数据包,并判断数据是定票数据或是领票数据,它是一事务处理中心,是定票则将数据送11,是领票则将数据送18。 ?. 定票成功, 由数据判断定票是否成功,它是一事务处理中心,若定票成功则将 数据送11,不成功则将数据送18。 ?( 准备输出数据 由接收的服务器数据准备输出数据,其中关于帐单的数据将送入13,其他包括旅客资料等送入14。 ?(打印帐单 由帐单信息处理帐单格式并打印出帐单。 ?(输出定位确定 在屏幕上显示确定定位及其他信息。 ?(判断错误 由数据判断出错误类型,将类型送到16。 ?(准备错误语句 由具体错误类型准备错误语句,送17。 ?(输出错误语句 在屏幕上显示错误语句。 ?(领票核对成功, 由数据判断领票核对是否成功,它是一事务处理中心,若成功则将数据送19,不成功则将数据送15。 ?(准备机票输出数据 由接收的服务器数据准备将打印的机票数据数,据其中关于帐单的机票的数据将送入20,其他包括旅客资料等送入14。 32 ?(打印机票 由机票信息处理机票格式并打印出机票。 4.1.2 服务器程序流程 下面对各模块(以数字表示)进行功能说明: 图 2 ?( 网络数据接收 接受由客户机程序经网络传送到客户机的数据包, 它是程序与网络的接口。 ?. 解开数据 解开/解密打包的数据,并将恢复的数据格式化送入3。 ?. 判断操作 由数据判断需要做什么数据库操作,它是一事务处理中心,若为定票操作则将数据送4,若为领票操作则将数据送15。 ?. 准备数据库查询语句 由定票数据准备访问SQL SERVER数据库所需的SQL 语句,送入5。 ?. 数据库操作 运行SQL 语句,查询并存入数据库,获得相应的定票数据,将数据送入6。它需包括初步对查询的判断。它必须为乘客安排可抵达目的地的有座位的航班。 ?. 判断查询是否成功 利用查询所得的数据判断定票是否成功,它是一事务处理中心,若为定票操作成功则将数据送7,若不成功则将数据送8。 ?. 准备回送数据 准备定票成功后需回送客户机程序的数据,送16。 ?. 确定原因 由查询数据判断定票不成功的原因,送9。 ?. 准备回送数据 根据不成功的原因,准备需送回客户机程序的数据,送入16。 ? .准备数据库查询语句 由领票数据准备访问SQL SERVER数据库所需的SQL 语句,送入11。 ?. 数据库操作 运行SQL 语句,查询并存入数据库获得相应的领票数 33 据,将数据送入6。它需包括初步对查询的判断。 ?. 判断查询是否成功 利用查询所得的数据判断领票是否成功,它是一事务处理中心,若为领票操作得到确认则将数据送11,若不成功则将数据送8。 ?. 准备回送数据 准备领票确认后需回送客户机程序的数据,送16。 ?. 确定原因 由查询数据判断领票不能确认的原因,送15。 ?. 准备回送数据 根据不成功的原因,准备需送回客户机程序的数据,送入16。 ?. 准备网络数据包 将数据准备/加密成网络传输数据包。 ?. 网络数据发送 将数据包经网络发送到服务器程序, 它是程序与网络的接口。 以上显示的各模块数字相同的为同一模块;由于事务流处理上的便利,将有些功能模块,拆分到各事务流中。 4.2 总体结构和模块外部设计 下面以结构图来描述机票预定系统的软件总体结构。框内注明了模块的名字;方框之间的直线表示模块的调用关系。 4.2.1 客户机部分 34 图3 4.2.2 服务器部分 机票预定系统(服务器部分) 接收数据 数据处理查询 发送数据 判断类型 准备SOL 判断查询 解开数据包 数据库操作 判断原因 准备数据包 准备返回数据 发送数据到客户机 接收客户机数据 准备返回数据 图 4 其中在数据处理、查询下作了省略…只给出了一部分模块,实际上是有两部分,分别对应于定位及确认。 4.3 功能分配 各项模块的功能可参照3.1 中的说明。客户机程序主要有三大块:接收数据、网络通信及输出部分。服务器程序主要也是由三大功能:接收网络数据、数据库操作及发送网络数据部分。服务器程序需与已建立的SQL SERVER 数据库互连,其接口将于下面部分阐述。 5(运行设计 5.1 运行模块组合 7 客户机程序在有输入时启动接收数据模块,通过各模块之间的调用,读入并对输入进行格式化。在接收数据模块得到充分的数据时,将调用网络传输模块,将数据通过网络送到服务器,并等待接收服务器返回的信息。接收到返回信息后随即调用数据输出模块,对信息进行处理,产生相应的输出。 服务器程序的接收网络数据模块必须始终处于活动状态。接收到数据后,调用数据处理/查询模块对数据库进行访问,完成后调用网络发送模块,将信息返回客户机。 5.2 运行控制 运行控制将严格按照各模块间函数调用关系来实现。在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。 在网络传方面,客户机在发送数据后,将等待服务器的确认收到信号,收到后,再次等待服务器发送回答数据,然后对数据进行确认。服务器在接到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回客户机,并等待确认。 5.3 运行时间 在软体的需求分析中,对运行时间的要求为必须对作出的操作有较快的反应。网络硬件对运行时间有最大的影响,所以建议采用高速ATM 网络。其次硬件对本系统的速度影响将会大于软件的影响,建议使用 Pentium III 处理器。硬件对本系统的速度影响将会大于软件的影响。 6( 数据结构设计 6.1 逻辑设计要点 passager表 乘客姓名 性别 工作旅行旅行ID 单位 时间 目的地 说明:乘客表保存了所有定票旅客的个人信息和旅行信息。主键为乘客ID。 Plane表 航目座票起剩座班号 的地 位数 价 飞时间 余座位位号分 数 配 说明:航班班次表保存了所有从本地起飞的班机信息,它的主键为航班号。在定位前先查寻座位空数,在定位后将修改剩余座位号。 6 Ticket表 机票号 取票单号 座位号 说明:机票表里存储了有关机票的信息。主键为机票号。 Getticket表: 取票单乘客ID 航班号 起飞时订票数 号 间 量 说明:取票表里存储的是有关取票的核对信息和要取机票有关的信息。 6.2 物理结构设计要点 物理数据结构设计主要是设计数据在模块中的表示形式。数据在模块中 都是以结构的方式表示。 1( 旅客信息 1( 旅客姓名 2( 旅客性别 3( 身份证号码 4( 工作单位 2( 帐单号 3( 旅行目的地 1. 航班号 2. 目的地 3. 起飞时间 4. 座位号 4( 网络包 5( 错误信息 6( 机票信息 1( 航班号 2( 目的地 3( 起飞时间 4( 旅客姓名 5( 旅客性别 6( 身份证号码 7( 剩余座位号 8( 座位号分配 7 7.通知单信息 1( 帐单号 2( 取票通知单号 3( 旅客姓名 4( 身份证号码 5( 航班号 6( 起飞时间 7( 目的地 6.3 数据与程序的关系 服务器程序在对定票/领票进行操作时需对数据库数据库数据结构,也就是数据表进行查询和修改:在定票/领票过程中都需要对数据库中的所有表,进行联合查询、修改。 物理数据结构主要用于各模块之间函数的信息传递。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。出错信息将送入显示模块中,机票结构,帐单结构,送入打印准备模块中准备打印格式。 6.4数据设计: 旅行时间 姓名 性别 身份证号码 旅客 旅行地点 航班机票信息 工作单位 1 账单 订票 取票通知 航空公司 1 N 1 可售机票 旅社 合适航班机票 等级 订票旅客清单 售出机票信息 价格 时间 8 7(系统出错处理设计 7.1 出错输出信息 程序在运行时主要会出现两种错误:1、由于输入信息,或无法满足要求时产生的错误,称为软错误。2、由于其他问题,如网络传输超时等,产生的问题,称为硬错误。 对于软错误,须在定票/领票操作成功判断及输入数据验证模块由数据进行数据分析,判断错误类型,再生成相应的错误提示语句,送到输出模块中。 对与硬错误,可在出错的相应模块中输出简单的出错语句,并将程序重置。返回输入阶段。 7.2 出错处理对策 所有的客户机及服务器都必须安装不间断电源以防止停电或电压不稳造成的数据丢失的损失。 在网络传输方面,可考虑建立一条成本较低的后备网络,以保证当主网络断路时数据的通信。 在硬件方面要选择较可靠、稳定的服务器机种,保证系统运行时的可靠性。 7.3 维护设计 维护方面主要为对服务器上的数据库数据进行维护。 9 五. 系统实现 总体设计(系统总流程图) , 验证登陆名密码,正确进入主菜单,根据登录时所选的登录方式(客户、管理员)的不同分别对用户设定不同的访问权限(如果是输入的客户用户名和密码正确,选择以客户方式登陆则主界面里面的管理员界面不能用,如果输入的是管理员的相应用户密码正确,以管理员的方式登陆则管理员界面可用)不正确则清空登录框,最多可以输入三次,三次不正确系统会自动关闭。 10 5.1登陆界面 , 新用户注册,新用户可以注册,注册时输入用户名可以查询用户可不可用,可用就可以注册,注册时可以判断用户输入的密码和验证密码是否相同,相同才给以注册, 如果满意可以点注册,注册成功后用户可以选择不用在回到登陆界面,可以直接 陆到用户主界面,以后就可以用这个用户登录了,如果不满意,点取消,所有信息 清空,重新输入。 5.2注册界面 , 主窗体的用户信息界面,用户点击个人查询按钮,可以把自己的个人 11 信息显示到界面上,还可以对自己的信息进行相应的修改(用户编号和用户名不能修改),还可以点击我的机票查询,查询该用户的订票记录。 5.3主界面的用户个人信息界面 , 主窗体的订票界面,你可以点击你想查询的有关机票的信息的按钮(舱位信息查询,客机信息查询,航线查询,客户类型信息查询)获得相关信息的表,根据表的内容,你可以在下面的下拉框中选择你要定的票信息,点确定后在下面会显示你的机票的相关内容,如果满意可以点击订票,把相关信息添加到机票数据库表中,如果不满意,可以点重置,所有信息清空,再重新选择。 12 5.4用户订票界面 退票窗口,用户可以根据用户信息表中的我的机票信息查询,找出机票号,在输入到机票号查询里,点击查询获得你的机票信息以及价格显示,点击退票则在数据库机票信息表中删除本条信息。 5.5用户退票界面 13 5.5用户登录时的管理员界面为不可用 , 管理员界面的管理员添加界面能对管理员信息进行查询、添加、删除和修改,包括用户名、登陆密码和联系方式。 5.6添加管理员界面 , 管理员界面的舱位信息的查询、添加、删除和修改,包括舱位等级编 14 号、舱位等级名称、提供的各种服务类别,以及备注信息等。 5.7舱位等级信息修改界面 , 管理员界面的客机信息界面对客机信息的添加、修改、删除和查询,包括客机编号、客机型号、购买时间、服役时间、经济舱座位数量、公务舱座位数量、头等舱座位数量以及备注信息等。 5.8飞机信息修改接面 , 管理员界面的航线信息界面对航线信息的添加、修改、删除和查询,包括航线编号、出发城市、到达城市、航班日期、出发时间、到达时间、客机编号、经济舱价格、公务舱价格、头等舱价格和备注信息等。 15 5.9航线信息修改界面 , 客户等级信息的的添加、修改、删除和查询,包括客户等级编号、客户等级名称、折扣比例和备注信息等。 5.9.1客户类型信息修改界面 , 管理员界面的用户信息查询,能查询所有的已注册的用户信息,把相应的信息放到一个表中。 16 5.9.2客户查询界面 六. 程序测试分析及结果、使用说明 1.程序使用说明: 1.运行程序显示登录界面 2.运行程序显示登录界面,输入用户名和密码,选择用户类型,通过身份验证,进入系统的使用界面。 3.不同的身份具有不同的权限。用户只能操作用户信息界面、订票界面、退票界面(eg:用户名:wangsichao,密码:123321)。管理员:可以对管理员信息界面、舱位等级界面、飞机信息界面、客户类型信息界面、航线信息界面进行查询、增加、删除、修改(eg:用户名:wangchao,密码:123456)。 4.程序的功能和使用(见概要设计里的功能模块设计说明)。 2.测试分析及结果 数据库连接出错:重复点击查询时 17 Sqlserve2000服务器里的两个值绑定到同一个属性中出错 课程总结 通过短暂的课程设计,我深有感触。在平时做的时候感觉没这么吃力,但是在我真正做设计时发现有很多错误,有的时候要解决一个错误会花上很多时间,在做的过程中,有很多错误意想不到,有的错误却犯得很幼稚,不过这样对自身的排错能力能得到很大的提高。数据库连接错误,找了半天才发现密码不能用char型。这些细小错误让我深受感慨,它告诉了我编程细心重要,养成一个好的编程习惯更重要。这次项目的完整开发,让我有项目初步的思想,这次项目的开发让我把软件生成的流程从信息的收集,再写需求,再完成后台设计到编写代码,到测试,让我知道还有很多地方的不足。这次课程设计的时间很紧迫,再加上各方面的经验不足,也遇到很多问题,这个网上机票订票系统还有很多地方没有完善,希望老师能谅解。总的来说,这次课程设计对我很有帮助,我发觉老师上课讲的很多东西对我们都很有用,让我受到不少的启发,在此感谢李超老师的指导。 七、实习总结 经过这次软件工程的学习,我们从对软件工程没有什么认识慢慢的对软件测试有了个初步的认识,收获挺多的。 此次实习,更让我们对这些基础知识有了更深刻的理解,在提高手动技能的同时也巩固了我们的基础知识。为以后的工作打下良好的基础。 但我们也还存在许多的不足之处,如在航空机票预订系统软件开发过程中遇到些问题,由于我们技术和知识的不足,且时间紧迫,只有5天不到的时间,我们删简了一些原先设计的功能, 在航空机票预订系统某些功能不 18 够完善,与实际的需要还有些许距离。在今后即使我们出了社会还是需要不 断的学习提高自己。 通过设计实际的航空机票预订系统,使我们理解软件的一般开发方法; 加深对数据库系统、程序设计语言、软件工程的理论知识的理解和应用水平;进一步熟悉软件工程和数据库管理系统的操作技术,重点是使我们掌握了数 据库设计开发和软件开发的步骤和每一个步骤需要完成的工作;提高动手能 力,提高分析问题和解决问题的能力;以及培养学生调查研究、查阅技术文 献、资料以及编写技术文献的能力。 附录 前台详细设计部分代码(源程序): 实现系统登录 namespace My_Plane_Ticket_Managerial_System { public partial class frmLogin : Form { //定义变量 private int userLoginCount = 0; private const int MAX_LOGIN_COUNT = 3; private UserInfo userlogin; public frmLogin() { InitializeComponent(); } //得到登陆框的用户名 public string user_text() { return (this.textBox_1_username.Text); 19 } public bool checkedl() { return (this.radioButton_user.Checked); } public frmLogin(ref UserInfo myuser) { InitializeComponent(); userlogin = myuser; } //让登陆窗口不能改变大小 private void Form1_Load(object sender, EventArgs e) { this.FormBorderStyle = FormBorderStyle.FixedDialog; this.MaximizeBox = false; this.MinimizeBox = false; } private void button1_Click(object sender, EventArgs e) { string userpassword = null; string Password = null; //判断是否选择了用户登陆按钮还是管理员登陆按钮,如果选的 是用户则执行以下程序 if (this.radioButton_user.Checked == true ) { 20 string connectstring = Properties.Settings.Default["plane_DataConnectionString1"].ToString(); SqlConnection cn = new SqlConnection(connectstring); cn.Open(); SqlCommand cmd = new SqlCommand("Select * From customerInfo where customerUserName='" + textBox_1_username.Text.ToString() + "'", cn); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { userpassword = dr[2].ToString(); MessageBox.Show(userpassword.Length.ToString()); } cn.Close(); } //用户选择了管理员登陆方式,执行下面程序 else { string connectstring = Properties.Settings.Default["plane_DataConnectionString1"].ToString(); SqlConnection cn = new SqlConnection(connectstring); cn.Open(); 21 SqlCommand cmd = new SqlCommand("Select * From manager_Info where Manager_UserName='" + textBox_1_username.Text.ToString() + "'", cn); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { userpassword = dr[2].ToString(); } cn.Close(); } Password = txtPassword.Text.ToString(); //判断用户密码是否正确,正确执行以下程序 if (Password.Equals(userpassword)) { this.DialogResult = DialogResult.OK; } //用户和密码不正确,执行以下程序 else { userLoginCount++; //判断是否超过最大登陆次数 if (userLoginCount == MAX_LOGIN_COUNT) { this.DialogResult = DialogResult.Cancel; MessageBox.Show("对不起,你已经超过了最 大登陆次数"); 22 } //把用户和密码框清空,用户窗口获得焦点 else { MessageBox.Show("错误的用户名或密码,"); textBox_1_username.Text = null; txtPassword.Text = null; textBox_1_username.TabIndex = 1; textBox_1_username.Focus(); } } } private void button2_Click(object sender, EventArgs e) { this.Close(); } //点击用户注册弹出注册窗口 private void button3_Click(object sender, EventArgs e) { Form_register form_register = new Form_register(); form_register.Show(); } } } ,2,判断用户名是否可用 //判断用户注册的用户名是否可用 23 private void button1_Click(object sender, EventArgs e) { string customerUserName = null; string UserName = null; string connstring = Properties.Settings.Default["plane_DataConnectionString1"].ToString(); SqlConnection cn = new SqlConnection(connstring); cn.Open(); SqlCommand cmd = new SqlCommand("select * from customerInfo where customerUserName='" + textBox_UserName.Text.ToString() + "'", cn); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { customerUserName = dr[1].ToString(); } cn.Close(); UserName = textBox_UserName.Text.ToString(); if (UserName.Equals(customerUserName)) { MessageBox.Show("用户名重复"); } else { MessageBox.Show("用户名可用") } 24 ,3,新用户注册 //新用户注册 DialogResult mbr = MessageBox.Show("你确定要注册 吗,", "提示", MessageBoxButtons.OKCancel); string password = textBox_PassWord.Text.ToString(); string rpassword = textBox_RPassWord.Text.ToString(); //判断密码和确认密码是否一致 if (password.Equals(rpassword)) { if (mbr == DialogResult.OK) { //性别判定 bool sex = false; if (comboBox_sex.SelectedIndex == 1) { sex = true; } string sql = "insert into customerInfo(customerUserName,customerPassWord,customerName,customerSex" + ",customerID,customerAddress,customerTele,customerE_mail,customerMemo) values('" + textBox_UserName.Text.ToString() + "'," + 25 "'" + textBox_PassWord.Text.ToString() + "','" + textBox_Name.Text.ToString() + "','" + comboBox_sex.SelectedIndex.ToString() + "'," + " '" + textBox_ID.Text.ToString() + "','" + textBox_Address.Text.ToString() + "'," + "'" + textBox_Tele.Text.ToString() + "'," + "'" + textBox_Email.Text.ToString() + "','" + textBox_Memo.Text.ToString() + "') "; string connstring = Properties.Settings.Default["plane_DataConnectionString1"].ToString(); SqlConnection sqlconn = new SqlConnection(connstring); SqlCommand sqlcomm = new SqlCommand(); sqlconn.Open(); sqlcomm.Connection = sqlconn; sqlcomm.CommandText = sql; this.Close(); int count = 0; try { count = sqlcomm.ExecuteNonQuery(); } catch { MessageBox.Show("用户重名"); } 26 if (count != 0) { MessageBox.Show("注册成功,"); this.Close(); //判断用户注册成功后是否要直接登陆 DialogResult nowuse = MessageBox.Show("你现在要登陆吗,", "提示", MessageBoxButtons.OKCancel); if (nowuse == DialogResult.OK) { My_Main_Form my_main_form = new My_Main_Form(); my_main_form.UserPower(); my_main_form.Show(); } } else { MessageBox.Show("注册失败,"); } } (4) 订票代码 //点击订票后,把用户的订票信息添加到数据库中 DialogResult ticket_y = MessageBox.Show("你确定要 订票吗,", "提示", MessageBoxButtons.OKCancel); 27 if (ticket_y == DialogResult.OK) { string sql = "insert into ticketInfo(customerUserName,arrivalCity,serviceName,discount,ticketDate,departTime,arrivalTime,ticketPrice" + ") values('" + textBox_ticket_user.Text.ToString() + "','" + textBox_arrivalCity.Text.ToString() + "','" + textBox_customerType.Text.ToString() + "'" + ",'" + textBox_discount.Text.ToString() + "','" + textBox_departDate.Text.ToString() + "','" + textBox_departTime.Text.ToString() + "'," + " '" + textBox_arrivalTime.Text.ToString() + "','" + textBox_ticketPrice.Text.ToString() + "') "; string connstring = Properties.Settings.Default["plane_DataConnectionString1"].ToString(); MessageBox.Show(sql); SqlConnection sqlconn = new SqlConnection(connstring); SqlCommand sqlcomm = new SqlCommand(); sqlconn.Open(); sqlcomm.Connection = sqlconn; sqlcomm.CommandText = sql; int count = 0; count = sqlcomm.ExecuteNonQuery(); if (count != 0) { 28 MessageBox.Show("订票成功,"); } else { MessageBox.Show("订票失败,"); } } (5)增加信息 private void button_manager_add_Click(object sender, EventArgs e) { //添加管理员 DialogResult manager_add = MessageBox.Show("你确 定要添加管理员吗,", "提示", MessageBoxButtons.OKCancel); if (manager_add == DialogResult.OK) { string sql = "insert into manager_Info(Manager_UserName,Manager_PassWord,Manager_Tele) values ('" + textBox_manager_user.Text.ToString() + "'"+ ",'" + textBox_manager_password.Text.ToString() + "','" + textBox_manager_tele.Text.ToString() + "');"; string connstring = Properties.Settings.Default["plane_DataConnectionString1"].ToString(); SqlConnection sqlconn = new SqlConnection(connstring); SqlCommand sqlcomm = new SqlCommand(); 29 sqlconn.Open(); sqlcomm.Connection = sqlconn; sqlcomm.CommandText = sql; int count = 0; try { count = sqlcomm.ExecuteNonQuery(); } catch { MessageBox.Show("用户或编号重复"); } sqlconn.Close(); if (count != 0) { MessageBox.Show("添加成功,"); } else { MessageBox.Show("添加失败,"); } } } (6)修改信息 //管理员的信息修改 30 private void button_manager_Update_Click(object sender, EventArgs e) { DialogResult manager_update = MessageBox.Show("你确定要修改吗,", "提示", MessageBoxButtons.OKCancel); if (manager_update == DialogResult.OK) { string sql = "update manager_Info set Manager_UserName='" + textBox_manager_user.Text.ToString() + "',Manager_PassWord='" + textBox_manager_password.Text.ToString() + "',Manager_Tele="+ "'" + textBox_manager_tele.Text.ToString() + "' where Manager_ID='" + textBox_manager_NO.Text.ToString() + "'"; string connstring = Properties.Settings.Default["plane_DataConnectionString1"].ToString(); SqlConnection sqlconn = new SqlConnection(connstring); SqlCommand sqlcomm = new SqlCommand(); sqlconn.Open(); sqlcomm.Connection = sqlconn; sqlcomm.CommandText = sql; int count = 0; count = sqlcomm.ExecuteNonQuery(); sqlconn.Close(); if (count != 0) { 31 MessageBox.Show("修改成功,"); } else { MessageBox.Show("修改失败,"); } } } (7)查询信息 //管理员对管理员信息表查询 private void button_manager_inquiry_Click(object sender, EventArgs e) { string connString = Properties.Settings.Default["plane_DataConnectionString1"].ToString(); SqlConnection sqlconn = new SqlConnection(); sqlconn.ConnectionString = connString; string sql = "select * from manager_Info"; SqlDataAdapter myAdapter = new SqlDataAdapter(sql, sqlconn); DataSet ds = new DataSet(); myAdapter.Fill(ds, "manager_Info"); dataGridView_manager_info.DataSource = ds; dataGridView_manager_info.DataMember = "manager_Info"; 32 textBox_manager_NO.DataBindings.Add("text", ds, "manager_Info.Manager_ID"); textBox_manager_user.DataBindings.Add("Text", ds, "manager_Info.Manager_UserName"); textBox_manager_password.DataBindings.Add("Text", ds, "manager_Info.Manager_PassWord"); textBox_manager_tele.DataBindings.Add("Text", ds, "manager_Info.Manager_Tele"); } (5)删除信息 private void button_manager_delete_Click(object sender, EventArgs e) { //删除管理员 DialogResult manager_delete = MessageBox.Show("你 确定要删除管理员吗,", "提示", MessageBoxButtons.OKCancel); if (manager_delete == DialogResult.OK) { string sql = "delete from manager_Info where Manager_ID='" + textBox_manager_NO.Text.ToString() + "'"; string connstring = Properties.Settings.Default["plane_DataConnectionString1"].ToString(); SqlConnection sqlconn = new SqlConnection(connstring); SqlCommand sqlcomm = new SqlCommand(); 33 sqlconn.Open(); sqlcomm.Connection = sqlconn; sqlcomm.CommandText = sql; int count = 0; count = sqlcomm.ExecuteNonQuery(); sqlconn.Close(); if (count != 0) { MessageBox.Show("删除成功,"); } else { MessageBox.Show("删除失败,"); } } } 后台部分源代码(数据库) /*创建库*/ create database plane_Data use plane_Data /*创建相应的表*/ CREATE TABLE manager_Info ( Manager_ID int primary key NOT NULL identity, Manager_UserName varchar(30) unique NULL , Manager_PassWord varchar(30) NULL , Manager_Tele varchar(20) NULL 34 ) ; CREATE TABLE serviceInfo ( serviceNO int primary key NOT NULL identity , serviceName varchar (10) unique NULL , noPresent varchar (10) NULL , noNewsPaper varchar(10) NULL, noDrink varchar(10) NULL, noFood varchar(10) NULL, noMovie varchar(10) NULL, canChange varchar(10) NULL, canCancel varchar(10) NULL, canDiscount varchar(10) NULL, serviceMemo varchar(20) NULL ) ; CREATE TABLE planeInfo ( planeNO int primary key NOT NULL identity, planeType varchar (20) NULL , buyDate varchar (20)NULL , serveDate varchar(20) NULL , isCommon varchar (20) NULL , isCommercial varchar (20) NULL , isFirst varchar (20) NULL , planeMemo varchar(30) NULL ) ; 35 CREATE TABLE airlineInfo ( airlineNO int primary key NOT NULL identity, departCity varchar (50) NULL , arrivalCity varchar (50) NULL , departDate varchar (10) NULL , departTime varchar(10) NULL , arrivalTime varchar(10) NULL , planeNO varchar (18) NULL , commonPrice float NULL , commercialPrice float NULL , firstPrice float NULL , airlineMemo varchar(80) NULL ); CREATE TABLE customerType ( ctypeNO int primary key Not NULL identity , serviceName varchar (10) unique NULL , discount float NULL , ctypeMemo varchar(30) NULL ) ; CREATE TABLE customerInfo ( customerNO int primary key NOT NULL identity, customerUserName varchar(50) unique NULL , customerPassWord varchar(20) NULL , customerName varchar(50) NULL , customerSex varchar (2) NULL , 36 customerID varchar (18) NULL , customerAddress varchar(40) NULL, customerTele varchar (20) NULL , customerE_mail varchar(30) NULL , customerMemo varchar(40) NULL ) ; CREATE TABLE ticketInfo ( ticketNO int primary key NOT NULL identity, customerUserName varchar(50) NULL , arrivalCity varchar (50) NULL , serviceName varchar (10) NULL , discount float NULL , ticketDate varchar(20) NULL , departTime varchar(10) NULL , arrivalTime varchar(10) NULL , ticketPrice float NULL , ) ; /*创建视图*/ CREATE VIEW Is_customerInfo as select customerUserName,customerName,customerSex,customerID,customerA ddress,customerTele,customerE_mail,customerMemo from customerInfo CREATE VIEW Is_ticketInfo as 37 select arrivalCity,serviceName,discount,departDate,departTime,arrivalTime,com monPrice,commercialPrice,firstPrice from customerType,airlineInfo /*创建日期更新触发器*/ create trigger airlineInfo_update on airlineInfo for update as declare @bdepartDate varchar(10),@adepartDate varchar(10) print '使用update触发器级联更新airlineInfo表中相关的行,开始' select @bdepartDate=departDate from deleted print '更新前的日期,'+@bdepartDate select @adepartDate=departDate from inserted print '更新后的日期,'+@adepartDate update sc set ticketInfo=@adepartDate where ticketInfo.ticketDate=@bdepartDate print '使用update触发器级联更新ticketInfo表中相关的行,结束' go /*创建存储过程*/ use plane_Data; create proc user_login_proc (@emp_no varchar(10),@user_pwd varchar(10) output) As begin 38 select @user_pwd=manager_Password from Emp where Manager_UserName=@emp_no ; end 39 40
/
本文档为【飞机订票系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索