版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安建筑科技大学课程设计(论文)《数据结构》课程设计——航空订票系统1.设计目的“数据结构”是计算机科学与技术专业一门十分重要的专业技术基础课,计算机科学各领域及有关的应用软件都要使用到各种数据结构。在我国,”数据结构与算法”已经作为理工科非计算机专业必修的信息技术基础课程之一。世界上许多科技人员对学习、研究数据结构和算法都非常重视,对于从事计算机科学及其应用的科技工作者来说,数据结构与算法更是必须透彻地掌握的重要基础。学习数据结构与算法的最终目的是解决实际的应用问题,特别是非数值计算类型的应用问题。课程设计是加强学生实践能力的一个强有力手段。课程设计所安排的题目,在难度和深度方面都大于平时的上机训练,要求同学在完成设计和编程大型作业的过程中,深化对数据结构与算法课程中基本概念、理论和方法的理解;训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念;使同学的程序设计与调试水平有一个明显的提高。课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。问题描述在飞机票订票系统中主要应该包括航班信息的录入、查询以及订票、退票、航班信息的维护修改这几个功能,在查询的时候有两种方式,分别是按航班号以及按出发地目的地查询。所以在最后的界面上应该把这些功能全部显示出来,并且能根据用户的选择来进行正确的操作。3.需求分析3.1数据需求用户在订票的时候必须清楚的知道各个航班的航班号,飞行时间,出发地,目的地,票价,折扣,剩余票量这些信息,而在订票的时候必须知道乘客的姓名,身份证号,以及所订机票的航班号和座位号。所以在乘客和航班这两个结构体中必须包含这些数据。3.2基本功能需求在用户进入这个界面的时候必须要用到查询航班、订票、退票的功能,在查询的时候由于用户的情况不一样,所以我设置了两种查询方式,分别是按照航班号和按照出发地和目的地来查询航班,这样可以做到尽可能的按照用户心中所想的查询出他们想要的结果。3.3非功能性需求用户界面需求:简洁、易用、易懂、友好的用户界面。硬件要求:装有VisualC++6.0的计算机。可靠性需求:保证用户在正常使用本系统时,用户的操作或误操作不会产生数据的丢失。4.概要设计4.1数据结构这个程序在编写的时候,我首先让程序的所有数据都是以数组的形式存放在两个结构体中,因为在调用的时候使用数组非常简单方便,所以相对于链表我选择了数组的形式。程序的所有数据基本都是全局变量,因为基本所有的函数都需要调用相同的是数据,所以不能设置为局部变量。4.2系统包含的函数voidluru();//声明录入函数voidchaxun();//声明查询函数voidchaxun1();//声明查询方式1函数voidchaxun2();//声明按查询方式2函数voiddingpiao();//声明订票函数voidtuipiao();//声明退票函数voidxiugai();//声明修改函数voidmenu();//声明主菜单函数voidduqu();//声明文件读取函数voidtuichu();//声明退出并保存函数4.3函数间的关系如果把这个系统比作一棵树的话,那么上述的函数都是这棵树上的树枝,是相互联系相互密不可分的,几乎每个函数都需要调用相同结构体来完成他们的功能。其中函数voidchaxun1()、voidchaxun2()是在函数voidchaxun()的前提下执行的,相当于是父子的关系。4.4系统功能模块图航空订票系统按照出发地和目的地查询按照航班号按照出发地和目的地查询按照航班号查询录入航班信息订票查询航班信息退票修改航班信息 图4-1系统流程图5.详细设计5.1结构体的详细定义在本系统代码中有两个结构体,分别是structflight类和structcustomer类。在flight类中定义的特征数据有航班号、起飞时间、降落时间、起飞地、目的地、票价、余量、折扣。在customer类中定义的特征数据有姓名、座位号、航班号、证件号、订票数、起飞地、目的地,具体如下:structflight//航班信息{inta1;//航班号stringa2;//起飞时间stringa3;//降落时间chara4[10];//起飞城市chara5[10];//降落城市inta6;//价格inta7;//票价折扣inta8;//余票}fl[10];structcustomer//客户信息{charname[10];//定义字符型数组姓名intseat;//定义整型变量座位号seatIntnum;//定义整型变量航班号numcharno[18];//证件号noIntps;//订票数psstringqfs;//起飞时间qfsstringjls;//降落时间jlscharqfd[10];//起飞城市qfdcharjld[10];//降落城市jldIntpj;//票价pj};5.2系统函数详细介绍在此次课设代码中我总共写了10个功能函数,分别是:voidluru(),功能是实现航班的录入,这个函数在实现的时候只是用cin来完成数据的输入,voidchaxun()功能是实现航班的查询,在这个函数里使用了两个for循环来实现。voidchaxun1()、voidchaxun2()这两个函数是来实现通过航班号和出发地目的地来查询航班的功能。voiddingpiao()是实现订票功能的函数。首先需要知道用户需要的航班号,通过一个for循环来判断这个航班是否存在,如果存在则可以订票。voidtuipiao()是实现退票功能的函数,实现方法和订票的方法基本是一样的。voidxiugai()是实现修改航班信息的功能的函数。voidmenu()来画出简单的主菜单的函数,可以更加清晰的让用户选择要操作的功能。voidduqu()文件读取的函数,voidtuichu()是退出并保存信息的函数,但是这两个函数还没有完全的调试好。5.3系统功能模块介绍.将航班的基本信息录入到系统中。(2).根据航班号或者根据起飞地点、降落地点查询航班信息。(3).输入姓名和所要订的航班的航班号订票。(4).输入姓名和所订的航班的航班号办理退票。(5).输入航班号修改该航班的起飞和降落时间以修改航班的起降时间。(6).退出的同时将信息写入文件。查询航班5.4具体模块设计查询航班判断输入输入1输入2判断输入按出发地查询按出发地查询按航班号查询图5-4-1查询函数流程图订票函数订票函数用户输入航班号用户输入航班号输入航班号是否存在输入航班号是否存在提示错误 提示错误 是提示输入姓名等信息提示输入姓名等信息成功订票 图5-4-2订票函数流程图 图5-4-3退票函数流程修改航班函数输入要修改的航班号提示没有此航班号并弹出菜单提示没有此航班号并弹出菜单航班号是否存在 N航班号是否存在 Y输入修改后的信息成功修改图5-4-4修改函数流程6.调试分析本软件是基于Windows的编程开发,所以,软件调试必须在Windows环境下进行。调试前须做好准备工作:需要安装VisualC++6.0的计算机一台;配置好之后,在VisualC++6.0环境下进行软件的调试。航班信息输入:在“录入航班”模块中,根据主界面提示,键入数字1,确定,再按提示进行操作测试,添加一条记录后,发现在数据文本中有保存该记录,如果错误输入,观察是否能正常提示信息。否则修改程序再进行调试。例如:输入1后确定,程序显示“请输入航班号:”,键入个数如110,继续操作,界面会相继弹出输入出发地、目的地、票价等信息,如果输出是这样那么程序正常运行。退出保存。航班信息的查询:按航班号进行查询、按出发地和目的地进行查询这两个功能模块在具体编程实现上基本上是一样的,首先根据提示选择查询操作,之后界面会弹出提示你选择那个查询方式,如果输入的航班号或者出发地目的地后会弹出正确的航班信息,则正常。(3)算法改进设想:在程序设计前期,我们并没有用txt文件来保存航班信息。经过我不断的修改以及调试后,该程序总算可以进行txt文本的读出与写入,并且添加航班信息后可以直接将信息保存在txt文本文件中。使用说明程序开始执行,弹出主界面:图7-1主界面按1进入航班录入功能:图7-2录入航班按2进入查询界面,弹出子菜单,根据提示选择查询方式:图7-3选择查询方式执行结果:图7-4按航班号查询结果图7-5按出发地目的地查询按3选择订票功能:图7-6订票按4选择退票功能:图7-7退票按5进行修改航班信息功能图7-8修改航班信息设计总结课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情的方法和技巧。这次我课程设计的题目是飞机票订票系统的实现,在代码中主要用的是数组的循环和遍历的操作。刚开始做完后经过简单的修改后代码还有三个很严重的问题。订票功能和退票功能不能正确的执行,针对这个问题,我自己在纸上把这个功能的流程图画出来后,先一步一步的把伪代码写好,然后慢慢改出代码,在这个过程中,我真正的体会到细心的作用,有几次都是括号的匹配这些小问题导致在这两个函数上花费了很多时间。还有就是文件的操作,在基本功能完成后我想将我的航班的信息储存在文件中,这样能是这个课设更加的实用,但是在操作过程中碰到过很多问题,刚开始在储存后文件里面全是乱码,后来我自己在网上下载了文件操作的教程,自己修改后还不是很满意,然后在我同学的帮助下自己又重新的编写了一段文件操作的代码,终于是达到了预期的目的。过这次的课程设计,更是让我深刻认识到自己在学习中的不足,同时也找到了克服这些不足的方法,这也是一笔很大的资源。在以后的时间中,我们应该利用更
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一村一法官工作制度
- 保荐人内核工作制度
- 乡镇经发办工作制度
- 人大代书室工作制度
- 加油站消防工作制度
- 匈牙利防疫工作制度
- 医保追溯码工作制度
- 医护办工作制度汇编
- 医院传染病工作制度
- 医院联系点工作制度
- (正式版)JBT 14581-2024 阀门用弹簧蓄能密封圈
- DB23-T 3625.2-2023 金属非金属矿山双重预防机制建设评定指南 第2部分:地下矿山
- 人民调解委员会开庭调解笔录
- (完整word版)身份证号码前6位表示的地区对照表
- 金属与石材幕墙工程技术规范-JGJ133-2013含条文说
- 初中生物各章节概念知识框架图
- 空调维保质量保障体系及措施方案
- 城市轨道交通工程监测技术规范讲解课件
- 旅游学第四版李天元课后习题答案
- 花篮拉杆式悬挑盘扣脚手架施工工法
- 民航概论各章习题详解答案分解
评论
0/150
提交评论