




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、女孝理n火孽east china institute of technology数据结构课程设计报告题目:航班订票系统学生姓名:温裕学 号: 2班 级:1521807指导教师:许志文2016 年 12 月 23目录第1章功能需求描述31.1 题目要求31.2 功能列表及说明1第2章设计描述42.1 任务分解说明42.2 数据结构设计说明4第4章开发过程描述154.1 编译过程错误分析154.2 调试错误分析154.3 3运行结果及说明15第5章设计心得体会17-2- / 18第1章功能需求描述4.4 题目要求任务:通过此系统可以实现如下功能:1)、录入:可以录入航班情况(数据可以存储在一个数据
2、文件中,数据结构、具体数据自定) 2)、查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起s抵达城市,航 班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;3)、订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;4)、退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。5)、修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能; 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,
3、可以完成相关的 功能要求。存储结构:学生ih己根据系统功能要求自己设计。请在最后的上交资料中指明你 用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。 进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;4.5 功能列表及说明航班订票系统*1.航班录入3.修改航班信息5.退票2.航班查询4.订票6.查看客户信息7.退出系统*功能分别包括以下7个方面:(1)航班录入:每条航线所涉及的信息有:航班号、起飞时间、降落时 间、抵达城市、航班票价、票价折扣、航班满仓人数、剩余票数、飞行日期。(2)航线查询:把每条航班的信息详细输出。(3)修改航班
4、信息:先输入需要修改的航班号,然后把这个航班的信息 输出确认后,再重新输入航班号、起飞时间、降落时间、抵达城市、航班票 价、票价折扣、航班满仓人数、剩余票数、飞行日期进行修改。(4)订票业务:根据客户提出的要求(航班号、抵达城市、飞行日期) 查询该航班情况,若有余票,则为客户班里订票手续,并让客户输入姓名、 身份证号码、手机号码、选择的舱位等级信息进行储存;若已满或者余票少 于订票额,则需要重新询问客户要求。(5)退票业务:根据客户提供的情况(航班号、姓名),查询是否有相关 的订票信息,如有则输出客户的订票信息,客户确认无误后方可退票成功。(6)查看客户信息:把每个客户信息和相关订票信息输出。
5、(7)退出系统:退出程序。第2章设计描述4.6 任务分解说明(1)分析系统中两个链表的设计,用来记录航班信息和客户信息。(2)根据问题描述,设计链表;(3)完成系统中各个信息的定义;(4)完成系统的应用模块;(5)功能调试;(6)完成系统设计报告。4.7 数据结构设计说明(1)头文件#include#include#include(2)定义“客户”链表typedef struct customer /客户信息char name20, id20, telll; /客户姓名、身份证号码、手机号码3 / 18int level;舱位等级customer *next;customer, *lcusto
6、mer;(3)定义“航班”链表typedef struct airline航线信息(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);
7、创建航班类型的头结点 menu (l); 调用菜单函数 )(5)航班录入函数void addairline(lairline &l)录入航班 (system(cls);int flag = 1, t;char no20;lairline p, q; for (; flag;) printf (请输入航班号:n);scanf no);for (p = l; p-next; p = p-next)if (p-next&strcmp(p-next-airlineno, no) = 0) printf (航班已存在,是否重新输入?是(1)返回主页面(0) 3 / 18n);scanf (%d,&t);
8、if (t=l)addairline(l);elsemenu(l);)p = l;q = (lairline)malloc(sizeof(airline);if (!q)(printf(申请内存失败! );system(pause);exit (0);)printf (该航班不存在,允许录入。n请输入航班号、起飞时间、降 落时间、抵达城市、航班票价、票价折扣、航班满仓人数、剩余票数、飞行日期: 、);scanf (,%s%s%s%s%f%f, &q-airlineno, &q-takeofftime, &q-landt ime, &q-landcity, &q-price, &q-discou
9、nt, &q-total, &q-left, &q-day);q-booked = null;q-next = p-next;p-next = q;printf(录入航班成功,是否继续录入?继续(1)返回主页面(0) 、);scanf (/d,&f lag);)menu (l);)(6)航班查询函数void inquery (lairline &l) 查询航班信息system(cls);lairline p = l-next;5 / 18printf (航班号起飞时间降落时间抵达城市航班票价票价折扣 航班满仓人数剩余票数飞行日期n);while (p!=null) printf c%s %s%
10、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);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
11、= p-next) printf (请输入您要修改的航班号:); scanf (,%s,, no);if (p&strcmp(p-airlineno, no) = 0) (printf (己查找到航班“s”,航班信息如下:n, no);printf (航班号起飞时间降落时间抵达城市航班票价票价折 扣航班满仓人数剩余票数飞行日期n);printf c%s %s%s%s %. 2f %. 2f%d%d%dn, p-airlineno, p-takeofftime,5 / 18p-landtime, p-landcity, p-price, p-discount, p-total, p-left,
12、p-day);printf(请输入航班号、起飞时间、降落时间、抵达城市、航班票 价、票价折扣、航班满仓人数、剩余票数、飞行日期:n);scanf (,%s%s%s%s%f%f%d%d%d,/, &p-airl ineno, &p-takeofftime, &p-landt ime, &p-landcity, &p-price, &p-discount, &p-total, &p-left, &p-day);printf (修改成功!以下为更新后的数据:n航班号 起飞时间降 落时间抵达城市航班票价票价折扣航班满仓人数剩余票数飞行日期n);printf c%s %s%s%s %. 2f %. 2f
13、%d%d%dn, p-airl ineno, p-takeofftime,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;if (t=l) modify(l); elsemenu (l);) if(!p) ( printf (航班链表为空! );) ) printf(请按任意键返回主菜单。n); system( pause );men
14、u (l);)void booking (lairline &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=l;break;case 2:p=search-landcity(l);flag=l;break;case 3:p=search_day(l);
15、flag=l;break;default:printf (操作错误,是否重新输入?是(1)返回主页面(0)n); scanf (/d,&t);if (t=l) booking (l);else menu (l);break;) if(p) printf (航班号起飞时间降落时间抵达城市航班票价票价折扣 航班满仓人数剩余票数飞行日期n);printfc%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
16、);c=(lcustomer)malloc(sizeof(customer);printf(请输入您的姓名、身份证号码、手机号码、选择的舱位等级 (1/2/3) :n);scanf (/z%s%s%s%dz/, c-name, c-id, c-tel, &c-level); printf (您输入的信息如下,请确认:n);printf (姓名 身份证号码 手机号码 选择的舱位等级n);printf (如 %s%s/dn,c-name, c-id, c-tel, c-level);if(p-left=l) ( c-next=p-booked; p-booked=c; p-left-; print
17、f (订票成功! n);) ) else printf (没有该航班n); system( pause );printf(请按任意键返回主菜单。n); menu (l);)(9)退票函数void refund (lair 1 ine &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(请输入您的
18、姓名:);scanf ,name);if (!p-booked-name)printf (对不起,没有找到您的信息nn);system(pause);printf(请按任意键返回主菜单。n); menu (l);)if(!strcmp(name, p-booked-name)(printf (退票信息:n姓名 身份证号码 航班号 终点站n);printf (z,%s %s%s%sn,p-booked-name, p-booked-id,p-airlineno, p-landcity);printf (确认要退票?是(1)否(0) n);scanf (飞d, &flag);if (flag)(p
19、-booked=p-booked-next;p-left+;free (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-booke
20、d)(/for (;p-next;p=p-next)while(p-next)(c=p-booked;printf (姓名 身份证号码 手机号码 选择的舱位等级n); for(;c;c=c-next)printf (z,%s %s%s/dn,c-name, c-id, c-tel, c-level);p=p-next;elseprintf (暂时没有客户订票! nn);printf(请按任意键返回主菜单。n);system pause );menu(l);)(11)按航班号查找航班函数lairline search_airlineno (lair 1 ine &l) 按航班号查找航班(char
21、 no20;lairline p=l-next;printf (请输入航班号:);scanf 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 landcity);for (;p;p=p-next)if (!strcmp (landcity, p-landcity) break;r
22、eturn p;)(13)按飞行日期查找航班函数lairline search_day (lair 1 ine &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);13 / 18printf(*n);2.航班查询n);4.订票n);6.查看客户信息n);printf (,
23、z 1.航班录入printf ( 3.修改航班信息printf ( 5.退票printf c 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:res
24、elect(l);break;)第四章开发过程描述4.1编译过程错误分析在编程过程中,出现了很多次指针用法错误,暴露了我指针方面的缺憾,以 后要加强这方面的学习。4. 2调试错误分析在程序编写完成后,运行时遇到的错误类型主要是各种语法错误,如字母打 错,字母少打,字母大小写错误,符号错误,输入法半角全角类型错误等等。最 后在反复调试检查过程中,将错误找到并一一修改。4. 3运行结果及说明1、主菜单界面运行图航班订票系统:1: : : : : : : : : : : : : : *簿品息7.退出系统2.航班查询4. 订票6.查看客户信息-i* * a*- a* - a* -i* a*- a*.j
25、.工.j. .j. j* j* j*一*- - i - - -1 - - i - - 1 - - - - - -1 - - *-t*t * *t * *t * -t t -t -t -t - -t -馆输入选择的数字:2、显示所有航线界面运行图,在主菜单界面选择“1”进入航班录入请输入航班号i 该肮班不存在,允许录入。请输a航班号、起飞时间、降落时以 抵达城市、航班票价、票价折扣、航班满仓人数、轲余祟敖、飞行日期, 1 9:00 12:00 beljing 200 0.9 180 180 20161212录入航,班成功,是否继续录入?维续c1)诋回主页面(。)3、查询航线信息界面运行图,在主菜
26、单界面选择“2”进入该界面。一号出s 晅1潸洁格单. 矫菜 可壬 加回续 1buo.建 一9:3时间抵达城市 12:00航班票价票 beijing折扣航班满仓人数兼赊票数200.000.901804、修改肮班信息,在主菜单界面选择“3”进入该界面孱崔噌心间降0后施&币航期票价票侨折扣航班满包人数和余票数飞行日期19:0012:00 beinng 200.000.9018018020161212弟氤人航班号、起飞时间、降落时间.抵达城市、航班票价、票价折扣、航班满仓人数、剩余票数.飞行e期,p 10:00 12:0cnar.cha,200 0.9 180 180 20161212懿*明与需爨器娄粒城市航期票价票椅折扣航班满仓人数杀除祟数飞行日期10:0012:00nanchang 200. 000.9018018020161212再次查询210:0012:00请按仕苴铤返回三菜单。 清技法盘键继续降落时间抵达城市加沏票价票价折扣肮班涡仓人赞和保票数nanchang200. 000.90201612125、订票业务界面运行图,选择查询航班方式,显示相应的航班信息,输入客 户个人的信息和舱位等级后即订
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程室内门合同范本
- 刑法学1期末考试复习题(带答案)
- 植物类群常考题目及答案
- 执法岗面试题目及答案
- 七月份工作计划怎么写(5篇)
- 房地产市场政策动向分析
- 2025年治安学总论考试题及答案
- 2025年山西省运城市事业单位工勤技能考试考试题库及参考答案
- CN120293712A 一种隧道管外压试验工装和试验方法 (四川润博至远科技有限公司)
- 2025年生物医生把脉题库及答案
- 电工电子基础知识培训课件
- 骨髓炎诊断与治疗
- 小学生AI科普课件
- 2025年新修订的安全生产法全文
- 2025年叉车模拟考试试题(附答案)
- DGJ08-70-2021 建筑物、构筑物拆除技术标准
- 德龙咖啡机ECAM23.420.SB说明书
- 智能电网技术课件
- 蜜雪冰城考试题目和答案
- 新时代基础教育改革政策解读
- 2025年4月自考00611日语句法篇章法试题
评论
0/150
提交评论