![C语言版飞机订票系统_第1页](http://file4.renrendoc.com/view7/M02/33/0C/wKhkGWbDChSAPGKmAAGGjGvuGTY923.jpg)
![C语言版飞机订票系统_第2页](http://file4.renrendoc.com/view7/M02/33/0C/wKhkGWbDChSAPGKmAAGGjGvuGTY9232.jpg)
![C语言版飞机订票系统_第3页](http://file4.renrendoc.com/view7/M02/33/0C/wKhkGWbDChSAPGKmAAGGjGvuGTY9233.jpg)
![C语言版飞机订票系统_第4页](http://file4.renrendoc.com/view7/M02/33/0C/wKhkGWbDChSAPGKmAAGGjGvuGTY9234.jpg)
![C语言版飞机订票系统_第5页](http://file4.renrendoc.com/view7/M02/33/0C/wKhkGWbDChSAPGKmAAGGjGvuGTY9235.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/订票系统1.需求分析任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;2:主要设计思路:算法构造流程图:A:主菜单:主菜单0123456789输入航班的信息列出航班的信息按航班号查询航班信息按城市来查询航班订票程序退票系统修改飞机航班的信息保存文件读取文件、下载文件退出B:各分块模板的构造流程图:0.输入航班的信息航班号起飞城市降落城市出发时间降落时间剩下的座位价格折扣1.列出航班的信息继续y退出n2.按航班号查询航班信息输入所需要查询的航班号显示这个航班的的信息3.按城市来查询航班输入起飞城市输入降落城市显示这个航班的信息4.订票程序输入号码输入名字输入需要定的票数航班号5.退票系统输入航班号输入你确定退票1否定06.修改飞机航班的信息输入要修改的航班号重新输入新的航班信息7.保存文件显示保存成功3:功能函数设计:(1):订票系统主菜单函数()本函数主要构造系统的主菜单,系统需要实现很多功能,并且各个功能需要各自的函数支持,所以通过主菜单可以轻松的进入各个函数下实现各自的功能,故主菜单显得尤为重要。其实就是通过键盘输入选择项,然后通过接受,在通过判断进入各个选择项。(2):工作人员管理函数()()系统需要各个航班的详细信息,所以需要工作人员把信息输入系统里,以供乘客查询订票。()函数的构造就是为了解决这个问题。而有可能航班线路更改或由于天气等原因飞机的起飞时间发生了更改,故工作人员需要及时更改信息,所以需要构造()函数。(3):列出航班信息的函数()乘客需要查询各个航班的信息,所以通过系统要能调出上面工作人员已经录入好的航班信息,所以构造本函数来实现这个功能。(4)乘客具体查询函数()本函数分两个分函数:1()和2(),它们分别实现乘客的按航班查询和按出发及抵达城市的两种查询方案。(5)票务管理函数()()通过()函数可以实现乘客的订票操作,通过()可以实现乘客的退票操作。(6)文件操作函数()()3.源程序代码:(下运行)<><><><>N20Q40/*定义数据结构*//*乘客信息*/{[10]*编号*/[20];/*证件号*/[10];/*姓名*/;/*订票数*/[10]*乘坐航班号*/};/*航班信息*/{[10]*航班号*/[20]*起飞城市*/[20]*抵达城市*/[20]*起飞时间*/[20]*降落时间*/;/*舱位数*/[5];/*票价*/[5];/*折扣*/[20];;};/*菜单函数,函数返回值为整数,代表所选的菜单项*/(){c;("按任意键返回主菜单\n")*提示压任意键继续*/();/*读入任意字符*/("\n\n");("\n\n");("************************************\n\n");("0.输入航班信息\n");("1.列出航班的信息\n");("2.按航班号查询航班信息\n");("3.按城市来查询航班\n");("4.订票程序\n");("5.退票系统\n");("6.修改飞机航班的信息\n");("7.保存文件\n");("8.读取和下载文件\n");("9.退出\n");("*****************************************\n\n");{("\n输入你的选择项(0~9):");/*提示输入选项*/("");/*输入选择项*/}(c<0>9);/*选择项不在~9之间重输*/c;/*返回选择项,主程序根据该数调用相应的函数*/}/*输入函数*/(t[]){;*s;("输入航线总数(n<=40):")*输入航线总数*/("");(n>40<0){("输入错误!!再次输入(0<n<=40):")*输入航线总数*/("");}("输入航班的信息\n\n")*提示信息*/("航班号起飞城市降落城市出发时间降落时间剩下的座位价格折扣\n");("\n");(0<){(""[i])*输入姓名*/(""[i])*输入起飞城市*/(""[i])*输入降落城市*/(""[i])*输入起飞时间*/(""[i])*输入降落时间*/(""[i])*输入舱位数*/(""[i])*输入票价*/(""[i])*输入折扣*/}("\n");(0<)t[i]0;n;/*返回记录条数*/}/*显示记录,参数为记录数组和记录条数*/(t[]n){i;("航班号起飞城市降落城市出发时间降落时间剩下的座位价格折扣\n");("\n");(0<)("1212101210777s\n"[i][i][i][i][i][i][i][i]);("*******************************************\n");}/*按航班号查找记录*/1(t[]n){s[20];/*保存待查找航班名字符串*/i;("输入你想查找的航班名:");("");/*输入待查找航班名*/(0<)/*从第一条记录开始,直到最后一条*/{(([i])0)/*记录中的航班名和待比较的是否相等*/;/*相等,则返回该记录的下标号,程序提前结结束*/}(i>1)/*如果整数i值大于1,说明没找到*/("没有找到\n");{("航班号起飞城市降落城市出发时间降落时间剩下的座位价格折扣\n");/*显示记录*/("\n");("1212101210777s\n"[i][i][i][i][i][i][i][i]);}}/*按起降城市查找记录*/2(t[]n){s1[20];s2[20];i;("输入起飞城市名称:");(""1);/*输入起飞城市名*/("输入降落城市名称:");(""2);/*输入降落城市名*/(0<)/*从第一条记录开始,直到最后一条*/{(((s1[i])0)((s2[i])0))/*记录中的城市和待比较的是否相等*/;/*相等,则返回该记录的下标号,程序提前结结束*/}(i>1)/*如果整数i值大于1,说明没找到*/("没有找到\n");{("航班号起飞城市降落城市出发时间降落时间剩下的座位价格折扣\n");/*找到,显示记录*/("\n");("1212101210777s\n"[i][i][i][i][i][i][i][i]);}}/*订票*/(t[]n){s[20]1[10]1[10]1[20]1[10];01;("输入你想预订的票数:");("");("号码姓名证件号订的票数航班号\n");/*提示信息*/("\n");(0<){(""1);(""1)*输入订票客户姓名*/(""1)*输入证件号*/(""1)*输入订票票数*/(""1)*输入航班号*/(0<)/*从第一条记录开始,直到最后一条*/{((1[i])0)/*记录中的航班名和待比较的是否相等*/{[i];(t[i][j]1);(t[i][j]1);(t[i][j]1);t[i][j]1;(t[i][j]1);t[i][i]1;t[i];;/*相等,则返回该记录的下标号,程序提前结结束*/}}(i>1)/*如果整数i值大于1,说明没找到*/{("对不起!没有此航班\n");2;;}}}/*退票*/(t[]n){s1[20]2[20];/*保存待查找航班名和证件号字符串*/;("请输入你想退订的航班号:");(""1);/*输入待查找航班名*/("请输入你的证件号:");(""2);/*输入待查找证件号*/("号码姓名证件号订的票数航班号\n");/*显示提示*/("\n");(0<)/*从第一条记录开始,直到最后一条*/{(0<t[i])(((s1[i][j])0)((s2[i][j])0)){("1116161410s\n"[i][j][i][j][i][j][i][j][i][j]);t[i][i][i][j];;;;}};(i>1)/*如果整数i值大于1,说明没找到*/("没有找到\n");{("你是否确认删除(1/0)\n");/*确认是否要删除*/("");/*输入一个整数或*/(1)/*如果确认删除整数为*/{(1<t[i]){(t[i][1][i][k]);/*将后一条记录的姓名拷贝到前一条*/(t[i][1][i][k]);(t[i][1][i][k]);t[i][1][i][k];(t[i][1][i][k]);}t[i];}("退票成功!!\n")*提示退票成功*/}}/*修改航班信息*/(t[]n){s[20];/*要删除记录的姓名*/;("请输入你要修改的航班号:");/*提示信息*/("")*输入航班名*/(0<)/*从第一条记录开始,直到最后一条*/{(([i])0)/*记录中的航班名和待比较的是否相等*/;/*相等,则返回该记录的下标号,程序提前结结束*/}(i>1)/*如果整数i值大于1,说明没找到*/("没有找到\n");{("航班号起飞城市降落城市出发时间降落时间剩下的座位价格折扣\n");/*找到,显示原先记录*/("\n");("1212101210777s\n"[i][i][i][i][i][i][i][i]);(":\n");(""[i])*输入航班名*/(""[i])*输入起始城市*/(""[i])*输入终点城市*/(""[i])*输入起飞时间*/(""[i])*输入降落时间*/(""[i])*输入座位号*/(""[i])*输入票价*/(""[i])*输入折扣*/}}/*保存资料*/(t[]n){;*;/*指向文件的指针*/((("1","")))/*打开文件,并判断打开是否正常*/{("\n")*没打开*/(1);/*退出*/}("\n保存文件\n");/*输出提示信息*/(,"");/*将记录数写入文件*/(,"\r\n");/*将换行符号写入文件*/(0<){(,""[i][i][i][i][i][i][i][i]);(,"\r\n");/*将换行符号写入文件*/(,""[i]);/*将记录数写入文件*/(,"\r\n");/*将换行符号写入文件*/(0<t[i]){(,""[i][j][i][j][i][j][i][j][i][j])*格式写入记录*/(,"\r\n");/*将换行符号写入文件*/}}()*关闭文件*/("****恭喜!保存成功***\n");/*显示保存成功*/}/*读入函数,参数为结构体数组*/(t[]){;*;/*指向文件的指针*/((("1","")))/*打开文件*/{("不能打开\n");/*不能打开*/(1);/*退出*/}(,"");/*读入记录数*/(0<){(,""[i][i][i][i][i][i][i][i]);(,""[i]);/*读入记录数*/(0<t[i])(,""[i][j][i][j][i][j][i][j][i][j]);/*按格式读入记录*/}();/*关闭文件*/("你已经成功从文件读取数据!!!\n\n\n\n");/*显示读取成功*/n;/*返回记录数*/}/*主函数*/(){i;[Q];;/*保存记录长度*/(;;)/*无限循环*/{(())/*调用主菜单函数,返回值整数作开关语句的条件*/{0()*输入记录*/1();/*显示全部记录*/21();/*查找记录*/32();/*查找记录*/4();/*订票*/5();/*退票*/6();/*修改航班信息*/7();/*保存文件*/8();;/*读文件*/9(0);/*如返回值为则程序结束*/}}}4.系统运行时窗口截图:(6.0下的运行结果)订票系统菜单窗口0.输入航班的信息1.列出航班的信息2.按航班号查询航班信息3.按城市来查询航班4.订票程序5.退票系统6.修改飞机航班的信息7.保存文件8.读取文件、下载文件图的遍历过程演示需求分析:设计程序完成如下功能:对给定的图的结构和起点,产生深度优先遍历和广度优先遍历,并列出求解的过程动态演示。主要设计思路:设计思想:简而言之,深度优先,就是先遍历它的一个邻接点,这个邻接点的邻接点……然后才遍历其他的邻接点。广度优先,就是先把它所有的邻接点都遍历完以后,再遍历它每个邻接点的邻接点。存储结构为图的邻接多重表,它是无向图的一种链式存储结构。深度优先遍历:设x是当前被访问顶点,在对x做过访问标记后,选择一条从x出发的未检测过的边(x,y)。若发现顶点y已访问过,则重新选择另一条从x出发的未检测过的边,否则沿边(x,y)到达未曾访问过的y,对y访问并将其标记为已访问过;然后从y开始搜索,直到搜索完从y出发的所有路径,即访问完所有从y出发可达的顶点之后,才回溯到顶点x,并且再选择一条从x出发的未检测过的边。上述过程直至从x出发的所有边都已检测过为止。此时,若x不是源点,则回溯到在x之前被访问过的顶点;否则图中所有和源点有路径相通的顶点(即从源点可达的所有顶点)都已被访问过,若图G是连通图,则遍历过程结束,否则继续选择一个尚未被访问的顶点作为新源点,进行新的搜索过程。
广度优先遍历:设x和y是两个相继要被访问的未访问过的顶点。它们的邻接点分别记为x1,x2,…,和y1,y2,…,。
为确保先访问的顶点其邻接点亦先被访问,在搜索过程中使用队列来保存已访问过的顶点。当访问x和y时,这两个顶点相继入队。此后,当x和y相继出队时,我们分别从x和y出发搜索其邻接点x1,x2,…,和y1,y2,…,,对其中未访者进行访问并将其入队。这种方法是将每个已访问的顶点入队,故保证了每个顶点至多只有一次入队。图的算法构造思想:1.()初始条件是图的顶点集是图中弧的集合.操作结果:按V和是定义构造图G.2.()初始条件:图G存在操作结果:销毁图G3.()初始条件:图G存在和G中顶点有相同的特征操作结果:若图G中存在顶点u,则返回该顶点在图中的位置;否则返回其他信息4.()初始条件:图G存在是G中顶点操作结果:返回v的值5.()初始条件:图G存在是G中顶点操作结果:返回v的第一个邻接顶点,若顶在图中没有邻接顶点,则返回为空6.()初始条件:图G存在是G中顶点是v的邻接顶点操作结果:返回v的下一个邻接顶点,若w是v的最后一个邻接顶点,则返回空7.()初始条件:图G存在是G中顶点操作结果:删除顶点v已经其相关的弧8.()初始条件:图G存在的顶点的应用函数操作结果:对图进行深度优先遍历,在遍历过程中对每个结点调用函数一次,一旦失败,则操作失败9.()初始条件:图G存在的顶点的应用函数操作结果:对图进行广度优先遍历,在遍历过程中对每个结点调用函数一次,一旦失败,则操作失败附图的结构体构造:{数据对象是具有相同特性的数据元素的集合,称为点集.数据关系R:{}{()属于V,()表示v和w之间存在的路径}B.队列的算法构造:1.()操作结果:构造一个空队列Q2.()初始条件:队列Q已存在。操作结果:队列Q被销毁,不再存在。3.()初始条件:队列Q已经存在操作结果:插入元素e为Q的新的队尾元素4.()初始条件为非空队列操作结果:删除Q的队尾元素,并用e返回其值5.()初始条件:队列已经存在操作结果:若队列为空,则返回,否则返回C.本程序包含的模板:1.程序模块(){取得顶点数和弧数;生成邻接表结构的图;深度遍历图;广度遍历图;}2.造邻接表结构的图;3.度优先遍历图;4.度优先遍历图;5.列的基本操作模块;6.数声明模块;三.源程序代码:(6.0下运行)<><><>50图的最大顶点数200队列的最大容量{};定义枚举变量图的邻接表存储{;该弧所指向的顶点的位置*;指向下一条弧的指针};弧结点{*[];指向第一条依附该顶点的弧的指针;图的当前顶点和弧数};队列结构{[];数据域;队头指针;队尾指针};[];全局变量——访问标志数组(&);生成图的邻接表();深度优先搜索遍历图();();广度优先搜索遍历图(&);初始化一个队列();判断队列是否空();将一个元素入队列(&);将一个元素出队列();求图中某一顶点的第一个邻接顶点();求某一顶点的下一个邻接顶点(){G;采用邻接表结构的图'y';("题目:编制一个“图遍历的演示”的程序.\n");程序解说("\n本程序将演示生成一个图,并对它进行遍历.\n");("输入图的顶点数和弧数:\n格式:顶点数,弧数;例如:5,4\n");("接着输入各边(弧尾,弧头):\n例如:5,3\n3,1\n1,2\n2,4\n");("程序会生成一个图,并对它进行深度和广度遍历.\n");("深度遍历:1->2->4->3->5\n广度遍历:1->2->3->4->5\n");('N''n'){("\n请输入顶点数和弧数:");("");输入图的顶点数和弧数(G);生成邻接表结构的图(G);深度优先搜索遍历图(G);广度优先搜索遍历图("图遍历完毕,继续进行吗?()");("");}}(){构造邻接表结构的图Gi;;*s;(1<)[i];初始化指针数组(1<){("");输入弧的起点和终点(*)(());生成一个弧结点>[];插入到邻接表中>;[];{(*)(());>[];>;[];}}}(G){深度优先遍历图Gi;("深度优先遍历:");(1<)[i];访问标志数组初始化(1<)([i])();对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 1《白鹭》说课稿-2024-2025学年统编版语文五年级上册
- 2025技术咨询合同书
- 2025大连市住宅小区物业管理委托合同
- 2024年五年级品社下册《同是炎黄子孙》说课稿 山东版001
- 5《玲玲的画》说课稿-2024-2025学年语文二年级上册统编版
- 2023二年级数学下册 6 有余数的除法第5课时 解决问题(1)说课稿 新人教版
- 27我的伯父鲁迅先生(说课稿)-2024-2025学年六年级上册语文统编版001
- 2024-2025学年高中地理下学期第4周说课稿(世界的自然资源)
- 2023三年级数学上册 一 动物趣闻-克、千克、吨的认识 信息窗2吨的认识说课稿 青岛版六三制
- 个人面包车租赁合同范例
- 糖尿病足的多学科联合治疗
- 小龙虾啤酒音乐节活动策划方案课件
- 运动技能学习与控制课件第五章运动中的中枢控制
- 财务部规范化管理 流程图
- 苏教版2023年小学四年级数学下册教学计划+教学进度表
- 小学作文指导《难忘的一件事》课件
- 断绝关系协议书范文参考(5篇)
- 量子力学课件1-2章-波函数-定态薛定谔方程
- 最新变态心理学课件
- 【自考练习题】石家庄学院概率论与数理统计真题汇总(附答案解析)
- 农村集体“三资”管理流程图
评论
0/150
提交评论