欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言数据结构航空售票系统设计报告.docx

    • 资源ID:30103072       资源大小:206.26KB        全文页数:21页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言数据结构航空售票系统设计报告.docx

    1、C语言数据结构航空售票系统设计报告 数据结构课程设计报告题目:航班订票系统 学生姓名: 温裕 学 号: 201520180704 班 级: 1521807 指导教师: 许志文 2016年12月23 目录第1章 功能需求描述 31.1 题目要求 31.2 功能列表与说明 3第2章 设计描述 42.1 任务分解说明 42.2 数据结构设计说明 4第4章 开发过程描述 154.1 编译过程错误分析 154.2 调试错误分析 154.3运行结果及说明 15第5章 设计心得体会 17第1章 功能需求描述1.1 题目要求任务:通过此系统可以实现如下功能:1)、录入:可以录入航班情况(数据可以存储在一个数据

    2、文件中,数据结构、具体数据自定)2)、查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;3)、订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;4)、退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。5)、修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以

    3、完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计。请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;1.2 功能列表与说明 系统共设有7个功能并以菜单方式工作,上图为功能列表图。功能分别包括以下7个方面:(1)航班录入:每条航线所涉及的信息有:航班号、起飞时间、降落时间、抵达城市、航班票价、票价折扣、航班满仓人数、剩余票数、飞行日期。(2)航线查询:把每条航班的信息详细输出。(3)修改航班信息:先输入需要修改的航班号,然后把这个航班的信息输出确认

    4、后,再重新输入航班号、起飞时间、降落时间、抵达城市、航班票价、票价折扣、航班满仓人数、剩余票数、飞行日期进行修改。(4)订票业务:根据客户提出的要求(航班号、抵达城市、飞行日期)查询该航班情况,若有余票,则为客户班里订票手续,并让客户输入姓名、身份证号码、手机号码、选择的舱位等级信息进行储存;若已满或者余票少于订票额,则需要重新询问客户要求。(5)退票业务:根据客户提供的情况(航班号、姓名),查询是否有相关的订票信息,如有则输出客户的订票信息,客户确认无误后方可退票成功。(6)查看客户信息:把每个客户信息和相关订票信息输出。(7)退出系统:退出程序。第2章 设计描述2.1 任务分解说明 (1)

    5、分析系统中两个链表的设计,用来记录航班信息和客户信息。(2)根据问题描述,设计链表;(3)完成系统中各个信息的定义;(4)完成系统的应用模块;(5)功能调试;(6)完成系统设计报告。 2.2 数据结构设计说明(1)头文件 #include#include#include(2)定义“客户”链表 typedef struct customer /客户信息 char name20,id20,tel11; /客户姓名、身份证号码、手机号码 int level; /舱位等级 customer *next;customer, *Lcustomer;(3)定义“航班”链表typedef struct air

    6、line /航线信息 char airlineNo20, takeOffTime20, landTime20, landCity20;/航班号、起飞时间、降落时间、抵达城市 float price, discount; /航班票价,票价折扣 int total, left, day; /航班满仓人数、剩余票数、飞行日期 Lcustomer booked; /已定客户信息 airline *next;airline, *Lairline;(4)主程序 void main() Lairline L;/定义一个航班类型的对象 InitList(L);/创建航班类型的头结点 menu(L);/调用菜单

    7、函数(5)航班录入函数void addAirline(Lairline &L)/录入航班 system(cls); int flag = 1,t; char no20; Lairline p, q; for (; flag;) printf(请输入航班号:n); scanf(%s, no); for (p = L; p-next; p = p-next) if (p-next&strcmp(p-next-airlineNo, no) = 0) printf(航班已存在,是否重新输入?是(1)返回主页面(0)n); scanf(%d, &t); if (t=1) addAirline(L); e

    8、lse menu(L); p = L; q = (Lairline)malloc(sizeof(airline); if (!q) printf(申请内存失败!); system(pause); exit(0); printf(该航班不存在,允许录入。n请输入航班号、起飞时间、降落时间、抵达城市、航班票价、票价折扣、航班满仓人数、剩余票数、飞行日期:n); scanf(%s%s%s%s%f%f%d%d%d,&q-airlineNo,&q-takeOffTime,&q-landTime,&q-landCity,&q-price,&q-discount,&q-total,&q-left,&q-da

    9、y); q-booked = NULL; q-next = p-next; p-next = q; printf(录入航班成功,是否继续录入?继续(1)返回主页面(0)n); scanf(%d, &flag); menu(L);(6)航班查询函数void inquery(Lairline &L)/查询航班信息 system(cls); Lairline p = L-next; printf(航班号 起飞时间 降落时间 抵达城市 航班票价 票价折扣 航班满仓人数 剩余票数 飞行日期n); while (p!=NULL) printf(%s %s %s %s %.2f %.2f %d %d %dn

    10、, p-airlineNo, p-takeOffTime, p-landTime, p-landCity, p-price, p-discount, p-total, p-left, p-day); p = p-next; printf(请按任意键返回主菜单。n); system(pause); menu(L);(7)修改航班信息函数void modify(Lairline &L)/修改航班信息 system(cls); char no20; int t; Lairline p=L-next; bool flag=false; for (; p; p = p-next) printf(请输入您

    11、要修改的航班号:); scanf(%s, no); if (p&strcmp(p-airlineNo, no) = 0) printf(已查找到航班“%s”,航班信息如下:n,no); printf(航班号 起飞时间 降落时间 抵达城市 航班票价 票价折扣 航班满仓人数 剩余票数 飞行日期n); printf(%s %s %s %s %.2f %.2f %d %d %dn, p-airlineNo, p-takeOffTime, p-landTime, p-landCity, p-price, p-discount, p-total, p-left, p-day); printf(请输入航班号

    12、、起飞时间、降落时间、抵达城市、航班票价、票价折扣、航班满仓人数、剩余票数、飞行日期:n); scanf(%s%s%s%s%f%f%d%d%d,&p-airlineNo,&p-takeOffTime,&p-landTime,&p-landCity,&p-price,&p-discount,&p-total,&p-left,&p-day); printf(修改成功!以下为更新后的数据:n航班号 起飞时间 降落时间 抵达城市 航班票价 票价折扣 航班满仓人数 剩余票数 飞行日期n); printf(%s %s %s %s %.2f %.2f %d %d %dn, p-airlineNo, p-ta

    13、keOffTime, p-landTime, p-landCity, p-price, p-discount, p-total, p-left, p-day); break; if (p&strcmp(p-airlineNo, no) != 0) printf(航班不存在,是否重新输入?是(1)返回主页面(0)n); scanf(%d, &t); if (t=1) modify(L); else menu(L); if(!p) printf(航班链表为空!); printf(请按任意键返回主菜单。n); system(pause); menu(L);(8)订票函数 void booking(L

    14、airline &L)/订票 system(cls); int i,t; int flag=0; Lairline p; Lcustomer c; for(;!flag;) printf(请输入查询航班的方式:n); printf(航班号(1),抵达城市(2),飞行日期(3)n); scanf(%d,&i); switch(i) case 1: p=search_airlineNo(L);flag=1;break; case 2: p=search_landCity(L);flag=1;break; case 3: p=search_day(L);flag=1;break; default:

    15、printf(操作错误,是否重新输入?是(1)返回主页面(0)n); scanf(%d, &t); if (t=1) booking(L); else menu(L); break; if(p) printf(航班号 起飞时间 降落时间 抵达城市 航班票价 票价折扣 航班满仓人数 剩余票数 飞行日期n); printf(%s %s %s %s %.2f %.2f %d %d %dn, p-airlineNo, p-takeOffTime, p-landTime, p-landCity, p-price, p-discount, p-total, p-left, p-day); c=(Lcust

    16、omer)malloc(sizeof(customer); printf(请输入您的姓名、身份证号码、手机号码、选择的舱位等级(1/2/3):n); scanf(%s%s%s%d,c-name,c-id,c-tel,&c-level); printf(您输入的信息如下,请确认:n); printf(姓名 身份证号码 手机号码 选择的舱位等级n); printf(%s %s %s %dn,c-name,c-id,c-tel,c-level); if(p-left=1) c-next=p-booked; p-booked=c; p-left-; printf(订票成功!n); else print

    17、f(没有该航班n); system(pause); printf(请按任意键返回主菜单。n); menu(L);(9)退票函数void refund(Lairline &L)/退票 system(cls); int flag; char name20; Lairline p; Lcustomer c; p=search_airlineNo(L); c=p-booked; if(!p) printf(没有该航班!n); system(pause); printf(请按任意键返回主菜单。n); menu(L); printf(请输入您的姓名:); scanf(%s,name); if(!p-boo

    18、ked-name) printf(对不起,没有找到您的信息nn); system(pause); printf(请按任意键返回主菜单。n); menu(L); if(!strcmp(name,p-booked-name) printf(退票信息:n姓名 身份证号码 航班号 终点站n); printf(%s %s %s %sn,p-booked-name,p-booked-id,p-airlineNo,p-landCity); printf(确认要退票?是(1)否(0)n); scanf(%d,&flag); if(flag) p-booked=p-booked-next; p-left+; f

    19、ree(c); printf(退票成功!nn); else system(pause); printf(请按任意键返回主菜单。n); menu(L); else printf(对不起,没有找到您的信息!n); system(pause); printf(请按任意键返回主菜单。n); menu(L); system(pause); menu(L);(10)查看客户信息void customerInfo(Lairline &L) system(cls); Lairline p=L-next; Lcustomer c; if(p-booked) /for (;p-next;p=p-next) whi

    20、le(p-next) c=p-booked; printf(姓名 身份证号码 手机号码 选择的舱位等级n); for(;c;c=c-next) printf(%s %s %s %dn,c-name,c-id,c-tel,c-level); p=p-next; else printf(暂时没有客户订票!nn); printf(请按任意键返回主菜单。n); system(pause); menu(L);(11)按航班号查找航班函数Lairline search_airlineNo(Lairline &L)/按航班号查找航班 char no20; Lairline p=L-next; printf(

    21、请输入航班号:); scanf(%s,no); for(;p;p=p-next) if(!strcmp(no,p-airlineNo) break; return p;(12)按抵达城市查找航班函数Lairline search_landCity(Lairline &L)/按抵达城市查找航班 char landCity20; Lairline p=L-next; printf(请输入抵达城市:); scanf(%s,landCity); for(;p;p=p-next) if(!strcmp(landCity,p-landCity) break; return p;(13)按飞行日期查找航班函

    22、数Lairline search_day(Lairline &L)/按飞行日期查找航班 int day; Lairline p=L-next; printf(请输入飞行日期); scanf(%d,&day); for(;p;p=p-next) if(day=p-day) break; return p;(14)菜单函数void menu(Lairline &L) int select; system(cls); printf(n 航班订票系统n); printf(*n); printf( 1. 航班录入 2. 航班查询n); printf( 3. 修改航班信息 4. 订票n); printf(

    23、 5. 退票 6. 查看客户信息n); printf( 7. 退出系统n); printf(*n); printf(请输入选择的数字:); scanf(%d, &select); switch (select) case 1: addAirline(L); break; case 2: inquery(L); break; case 3: modify(L); break; case 4: booking(L); break; case 5: refund(L); break; case 6: customerInfo(L); break; case 7: exit(0); default:

    24、reselect(L); break; 第四章 开发过程描述4.1 编译过程错误分析在编程过程中,出现了很多次指针用法错误,暴露了我指针方面的缺憾,以后要加强这方面的学习。4.2 调试错误分析在程序编写完成后,运行时遇到的错误类型主要是各种语法错误,如字母打错,字母少打,字母大小写错误,符号错误,输入法半角全角类型错误等等。最后在反复调试检查过程中,将错误找到并一一修改。4.3运行结果及说明1、主菜单界面运行图 2、显示所有航线界面运行图,在主菜单界面选择“1”进入航班录入3、查询航线信息界面运行图,在主菜单界面选择“2”进入该界面。4、修改航班信息,在主菜单界面选择“3”进入该界面再次查询5

    25、、订票业务界面运行图,选择查询航班方式,显示相应的航班信息,输入客户个人的信息和舱位等级后即订票成功。在主菜单界面选择“4”进入该界面6、主界面选择“6”进入查看客户信息界面如下7、退票业务界面运行图,主界面选择“5”进入退票界面,输入所退票的航班信息,确认是否退票。第5章 设计心得体会此课程设计完成了对航线查询、订票、退票等功能的设计操作,并且还包含了清屏功能以及退出功能。对程序在运行时输入错误操作的修改,提供了一定的方便,基本上能安全的运行。使用单链表的操作,是此程序的最大优点,使航班、客户的的插入、删除等操作变得简单清晰。程序结构清晰,各个模块的分工和功能明确。经过一周的课程设计,我认识到把课堂上老师讲的知识运用到实际操作中的重要性。我这次课程设计的题目是航空订票系统,在开始阶段,根本无从下手,后来通过查阅一些相关资料和老师的耐心讲解,最终成功完成整个程序的设计。通过这次课设我对C语言中的相关知识有了进一步的理解,特别是对数据结构有课更深刻的了解,对程序的开发思路有了一定的理解,我想这在以后的学习和工作中都会有帮助的,更使我意识到了学习C语言的重要性。另外,对程序的不断调试,使我的查错能力也有了很大的提高。


    注意事项

    本文(C语言数据结构航空售票系统设计报告.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开