




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TOC\o"1-5"\h\z\o"CurrentDocument"摘要 1\o"CurrentDocument"前言 2正文 3\o"CurrentDocument"问题描述 3\o"CurrentDocument"逻辑设计 3\o"CurrentDocument"详细设计 5\o"CurrentDocument"程序编码 55•调试与测试 76.结果分析 97•软件安装和使用说明 10总结 11\o"CurrentDocument"参考文献 12\o"CurrentDocument"致谢 13摘要这项设计是以“数据结构”和“C/C++程序设计”为基础的实现飞机订票系统模拟的一项设计。通过这项设计不仅可以实现民航售票系统地简单的服务功能,还可以帮助我更好地理解线性表、队列等的存储结构及有关的基本算法,加深对所学知识的理解和掌握。这项设计主要用到的知识有线性表、文件的建立、输入、读取、保存,队列的存储结构及其相关算法的实现,考查了排序及结构体、指针等的综合用运,在老师的帮助下,我顺利的完成了这项设计。关键字:订票系统;线性表;队列;文件;数据结构。前言课程设计是对学生实践能力的考查,通过课程设计可以增强学生的动手能力。培养学生严谨、细心、好学的精神,检查学生对知识的掌握情况,是教学中必不可少的一项重要环节。该设计是对飞机订票系统的模拟设计,它可以实现民航售票处的计算机系统为客户提供的各项服务项目的模拟。通过该题目的设计过程,加深了我对线性表及队列的逻辑结构、存储结构的理解,使我基本掌握了有关线性表及队列的基本运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,有效地把学到的知识用于解决实际问题,培养了我的动手操作能力。此设计可以实现以下功能:(1)增加(录入航班情况);浏览(浏览航班信息);查找航线(根据旅客提出的终点站名输出:航班号、飞机号、日期);排序(按航班号排序);承办订票业务(根据客户提出的要求查询该航班票额情况,为客户办理订票);承办退票业务;修改航班信息(当航班信息改变可以修改航班数据)。这是我的第一次课程设计,好多东西都不熟,在设计中出现问题是难免的,希望老师指点,感谢老师的帮助和指导,让我顺利的完成了这次课程设计作业!1•问题描述使用链式存储结构存储航班信息及客户信息。主要功能有:录入(录入航班情况);查询航线(根据旅客提出的终点站名输出:航班号、飞机号、日期、余票额);承办订票业务(根据客户提出的要求查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求);承办退票业务(根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人预约登记,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询间其它排队预约的客户);修改航班信息(当航班信息改变可以修改航班数据);逻辑设计编写一个飞机订票系统的程序,使该系统能够实现对航班信息的录入、浏览、排序、查询以及订票、退票的功能。根据题目要求,首先要制作一个主菜单显示出各个操作的提示可供用户选择,进而一步步地深入操作。根据主菜单的内容再进一步编制具体操作的函数,各个功能均用专门编制的函数来完成。这就是看到题目后的最初的思路。在这附上总体模块设计图:
因为飞机订票系统含有各航班的各项信息,如航班号、航线、飞行时间、机票数目等必要信息,所以就决定用刚学不久的结构体数组来存放航班的各项信息,根据题目要求定义如下结构体类型:头文件包含、全局变量定义和结构体定义源代码:#include<stdio.h>//标准输入、输出头文件#include<string.h>//包含字符串函数处理头文件#include<process.h>//包含access函数的头文件#defineN1000//定义最多的航班数#define PRINT"%d\t\t%s\t\t%s\t\t 星 期 %s\t\t%d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //宏定义输出格式structair{//定义结构体数组intnum;//定义航班号
charstart]20];//航班起始站charover[20];//航班终点站chartime[10];//飞行时间intcount;}s[N];//机票数量inti,m=0;//定义全局变量,记录下航班信息的数量charii[10];//用来选择是否继续的变量详细设计在本次的课程设计中我负责编制的是初始化、建立数据文件、数据文件读取、数据文件保存、增加航班信息、订票、退票业务函数的编写。以下是我的负责部分的详细设计内容:程序编码定义系统初始化函模块功能:设立一个初始化函数来得到航班信息。具体设计是第一次运行程序时自动生成保存航班信息的文件,并输入初始航班信息,待第二次开始就可以直接读取该文件获得已有的航班信息并可直接使用。运用了access函数判断文件是否存在。该函数源代码为:voidchushihua() //初始化函数{if(access("hangban.dat",0))build();elseread();}定义建立新数据文件的函数系统初始化后,没有寻找到数据文件,则进行新建数据文件,此函数的作用就是进行新建文件数据的录入。运用到了文件指针的定义FILE*fp,文件的打开fopen和关闭fclose、成块读写函数中的fwrite;运用for循环进行各组数据的输入,用m++记录下输入的航班数量,并运用if语句判断是否输入下一条航班信息,若不继续则返回主界面。该函数的源代码为:定义读取文件内航班信息的函数系统初始化之后,若原始数据文件存在,则进行文件内航班信息的读取,以供接下来程序中的各个函数来使用。在该函数中同样运用到了文件指针FILE*fp、文件的打开fopen和关闭fclose、成块读写函数中的fread、文件结束检测函数feof同时配合while语句控制文件的读取;m++记录下读取到的航班数量等。定义保存函数因为在飞机订票系统中涉及到飞机的订票和退票业务,还有按航班号的排序功能,所以我就定义了这个保存函数来保存下每次运行系统后对整个订票系统涉及到的资料的修改。为了简便程序,我就准备将此函数放在整个系统得推出选项中,这样就只在每次退出系统的时候进行一次保存,将此次对文件修改的所有新信息都一次保存下来。这样就实现了整个系统运行时进行一次读取,推出时一次保存的设计,大大简便了文件的调用和读取。保存函数运用到的知识点与读取函数大致相同。此函数的源代码为:有关文件读取、写入和保存的函数定义完了就开始设计与题目要求直接相关的函数了。定义订票业务函数在这个函数中首先调用了search函数查找需要订票的航班。运用if语句实现订票时的多种情况:订票数输入不正确、飞机票数不足等情况。订票成功时运用s[i].count二s[i].count-n;将已被订的机票数减去,以显示新的即时航班信息定义退票业务函数:与订票函数相类似,只做稍稍修改就行退票成功是用s[i].count二s[i].count+n;将航班的剩余票数加上去以显示即时航班信息。定义主函数主函数主要就是提供系统的主菜单界面供用户选择。运行主函数时首先调用chushihua函数判定数据文件是否存在、是否要进行初始航班信息输入;若已存在则进入主界面菜单供用户选择,运用swich语句对用户的不同选择来调用各功能的函数。并用do„while语句循环实现能够让用户进行多次的选择。5•调试与测试调试:调试过程中曾经遇到过一些问题,但是也不多,遇到过:订票或退票的时候不能将剩余的票数加上和减去。后来经过详细的检查与对照课本知识点找出了相应的错误点,经过修改加入票数加减语句,再经过与保存函数的配合后实现了题目要求的功能。调试成功。测试:程序最终运行情况如所贴图表。第一次运行程序(输入初始数据)界面提示输入原始数据:请输入航班号f请输入起始站f请输入终点站f请输入飞行时间一请输入机票数。我按照提示一次输入了4个航班信息后按提示输入“n”则不再继续输入,系统显示出了主菜单界面。接着按0退出程序,显示“谢谢使用,再见。”图表1—主菜单界面
第二次运行程序(进行航班信息的浏览)运行程序就不再显示输入航班信息了,而是直接显示出了主菜单界面(如图表1)。在提示中输入“2”一显示航班信息。输出如下航班信息(如图表2),确实显示出输入的4个航班信息。is901101010211041站!滨:始京囂北航is901101010211041站!滨:始京囂北航T如和梅北律口终上台盍星期三
星期六
星期四请按回蕊键返回上层菜单图表2—显示航班信息查询航班信息在主菜单界面输入3-请输入航班号一输入“1010”一显示出所查找的信(如图表3)薛的航班信蠢终点站吋间矶票数厦门星期三260薛的航班信蠢终点站吋间矶票数厦门星期三260图表3—查询航班信息航班排序在主菜单界面输入4一按照提示输入“2”(按航班号从大到小排序)一显示出排序后的航班信息(如图表4)102110101001机票数2802032丘逍图表4—航班排序1341键站滨•车:始尔州门京回为起哈皓点口律北海终海天台上四六三一间时戒龜^期时星星星星
排序后的航班信息(如图表4)102110101001机票数2802032丘逍图表4—航班排序1341键站滨•车:始尔州门京回为起哈皓点口律北海终海天台上四六三一间时戒龜^期时星星星星订票业务在主菜单输入5f提示输入航班号f输入1010f显示出该航班信息并提示输入订票数:输入3f“订票成功”(如图表5)F養輸入航班号:佃饰:站S息起乍其继数订键票要车警回的否按订是,要?毕您功完入成询筮示查溝订束票结机键的回航:站S息起乍其继数订键票要车警回的否按订是,要?毕您功完入成询筮示查溝订束票结机键的回航31/输:』-W图表5—订票业务1票数不足情况(如图表6):101S冷航班信裁占终点站时间口北星期三川示数冷航班信裁占终点站时间口北星期三川示数泻?键继续回的选幕,要你重订毕您键继续回的选幕,要你重订毕您,1完A起靂而询築否否查连爲是是新票数(以回车键结東择的麵护只剩2W机禁我机箕薮車输入减点回车犍结那航班的机幕请输入歹或"以回车犍结束图表6—订票业务26•结果分析系统只是按照题目的要求做的,虽然是很好地完成了题目要求的所有模块,但是在整个编程过程中我们也曾尝试增加我们感兴趣的功能,但是失败了。经过此次的课程设计,可以很明确的了解到自己哪些知识点掌握的比较好,哪些知识点运用的还不够熟练。通过此次课程设计也学会综合运用理论知识来分析和解决实际问题的能力、养成严谨的科学态度和良好的程序设计习惯,实现由知识向智能的初步转化;学会遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,并与同组成员共同完成设计、编写、调试和测试应用程序及编写文档的任务。7.软件安装和使用说明安装:先复制“飞机订票系统”此文件到电脑上。打开此文件中Debug文件夹中的应用程序,此文件就可以运行了。使用说明:(1) :此飞机模拟订票系统是作为数据结构与微机原理课程设计作品,仅供参考。(2) :此作品所用开发工具为MicrosoftVisualStudio,欲打开工程项目需先安装该软件。(3) :此程序实现增加(录入航班情况);浏览(浏览航班信息);查找航线(根据旅客提出的终点站名输出:航班号、飞机号、日期);排序(按航班号排序);承办订票业务(根据客户提出的要求查询该航班票额情况,为客户办理订票);承办退票业务;修改航班信息(当航班信息改变可以修改航班数据)。(4) :操作过程中按照界面指示有序地实现所需操作。(5) :只有严格按照上面所要求操作,该程序才能正确运行。这次课程设计使我有了如下好多的收获:巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。根据我在实习中遇到得问题,我将在以后的学习过程中注意以下几点:1、认真上好专业实验课,多在实践中锻炼自己。写程序的过程中要考虑周到,严密。在做设计的时候要有信心,有耐心,切勿浮躁。认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。本次课程设计终于结束了。通过这次课程设计,我加深了对顺序表和链表的概念的理解,并能够熟练地将它们运用到实际操作中。通过此次课程设计了解了查找、排序的时间复杂度、空间复杂度,能够在实际情况中根据要求选择出最适合的查找方法和排序方法。在做此次课程设计的过程中,有几次程序不能运行是由于少了分号、大括号等错误导致的,使我明白了在编程的时候一定要细心以减少这种低级错误发生。除此之外,我也遇到了不少困难,但在老师的指导与帮助下解决了问题。通过这次课程设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 衡水市中医院护理科研规划考核
- 2025江西数字文化产业有限公司诚聘数字文旅部行政实习生1人考前自测高频考点模拟试题及答案详解(典优)
- 衡水市中医院全脑血管造影考核
- 2025广东广州工程技术职业学院招聘一般岗位7人(第一批)考前自测高频考点模拟试题有完整答案详解
- 2025湖南湘潭市韶山思政教育实践中心招聘教师2人考前自测高频考点模拟试题附答案详解(模拟题)
- 沧州市中医院中西医结合治疗考核
- 天津市人民医院皮肤撕裂伤处理考核
- 2025河南南阳市社旗县医疗健康服务集团招聘250人考前自测高频考点模拟试题及一套参考答案详解
- 2025广东深圳市宝安区陶园中英文实验学校招聘初中英语教师2人模拟试卷附答案详解(黄金题型)
- 2025湖州新伦供电服务有限公司招聘45人模拟试卷及答案详解1套
- 项目经理年中会议汇报
- 小学生美容知识培训内容课件
- 2024年北控水务集团招聘笔试真题
- 2025年盘锦市总工会面向社会公开招聘工会社会工作者52人考试参考试题及答案解析
- 2025河北水发节水有限公司公开招聘工作人员16人笔试参考题库附答案解析
- 2025年秋人教版数学四年级上学期第一次月考测试卷【附答案】
- 新版中华民族共同体概论课件第十二讲民族危亡与中华民族意识觉醒(1840-1919)-2025年版
- 夜间红外成像算法优化-洞察及研究
- 2025年全国高校辅导员素质能力大赛基础知识测试卷及答案(共五套)
- 酒类酿造产品品质追溯体系建设方案
- 电焊车间卫生管理办法
评论
0/150
提交评论