版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录一、航空客运订票系统基本要求 1.二、问题描述1.三、需求分析 1.四、概要设计2.1、系统的抽象数据类型2.2、程序中用到的库函数3.3、程序的四大模块3.4、函数间调用关系3.5、算法设计:(每个模块的算法设计说明如下:)46、存储结才设计:4.五、详细设计6.1、主程序中需要的全程量 6.2.部分函数模块以及流程图: 61) 主函数模块6.2) .录入信息函数模块: 8.3) .查询航班信息函数模块9.4) .订票功能函数模块:1.15) .退票功能函数模块136)显示信息函数模块:15六、测试分析1.71 .数据测试1.72 .测试评价:213 .遇到的问题及解决方法 22七、数据
2、结构实习心得体会 22八、参考文献:23九、附录:源程序24、航空客运订票系统基本要求1、每条航线所涉及的信息有:终点站名、航班号、飞机号、飞机周日(星期几)、 乘员定额、余票量、订定票的客户名单(包括姓名、订票量、舱位等级1, 2或3)以及等候替补的客户名单(包括姓名、所需数量)。2、系统能实现的操作和功能如下:1)查询航线:根据客户提出的终点站名输出如下信息:航班号、飞机号、 星期几飞行,最近一天航班的日期和余票额;2) 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班 票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或 余票少余订票额,则需重新询问客户要求。若
3、需要,可登记排队候补;3)承办退票业务:根据客户提出的情况(日期、航班号),为客户办理退票 手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若 所退票额能满足他的要求,则为他办理订票手续,否则依次询问其它排队 候补的客户。实现提示:两个客户名单可分别由线性表和队列实现。 为查找方便,已订票客户 的线性表应按客户姓名有序,并且,为了插入和删除方便,应以链表作为存储结 构。由于预约人数无法预计,队列也应以链表作为存储结构。、问题描述设计一个航班信息查询与订票系统程序, 要求设计航班信息,订票信息的存储结 构,并实现以下功能:士 录入:可以录入航班情况(数据可以存储在一个数据文件中,数
4、据结构、具 体数据自定)士 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵 达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城 市,查询飞机航班情况;$ 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如 果该航班已经无票,可以提供相关可选择航班;$ 退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票 数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件三、需求分析1 .本程序以动态链表为存储结构,有两个链表,第一个链表:每个航班信息开 辟一个节点空间,在节点中存放航班信息,如航班号,起飞时间,出发地
5、, 目的地,总座位数,折扣,票价等。第二个链表:每个乘客开辟一个节点, 存放乘客的记录:姓名,证件号码,预定的航班号,定单号码及订票的数量。2 .本程序有五大模块组成,分别为基本信息输入模块(包括航班信息输入和客 户信息输入),信息查询模块,订票模块,修改模块(包括退票模块及修改航 班信息模块)。信息输入模块的功能是录入各航班的基本信息;信息查询模块 的功能为提供各种信息查询的操作;订票模块是录入各订票人的基本信息; 信息修改模块是退票和修改航班信息。3 .程序执行的命令:1.录入信息 2. 查询 3. 订票 4.退票 5. 修改 6.显示航班信息7.显示客户信息8. 退出4 .测试数据:航班
6、数据库中的数据。以xiaying.txt文件保存。(附在源程序四、概要设计1、系统的抽象数据类型设定民航航班信息查询与客票发售服务系统的抽象数据类型定义:ADT hanban数据对象:D=ai|ai CharSet,i=1,2, ,n,n>=0数据关系:R= <c1,c2> cl c2 基本操作:creat() ;操作结果:录入航班信息。search() ;操作结果:进入航班查询系统。order() ;操作结果:进行订票。quit() ;操作结果:进行退票。revise() ;操作结果:修改航班信息。print ();操作结果:显示航班信息。print2();操作结果:显示客
7、户资料。Clear() ;操作结果:清除记录。 ADT hanban2、程序中用到的库函数#include <stdio.h>#include <string.h>#include <conio.h>#include <ctype.h>#include <math.h>#include <stdlib.h>#include <malloc.h>3、程序的四大模块(1)主程序模块:Void main()do接受命令;处理命令;while(命令!=退出);(2)信息输入模块一一完成基本信息的输入和修改;(3)实现功
8、能模块一一实现信息查询、订票和退票功能操作;(4)信息显示模块一一实现录入信息的显示。4、函数间调用关系主函数录 入 信 息退航 班 号 查 询起落地查询修 改 信 息航 班 信 息客 户 信 息图1整体思想方框图5、算法设计:(每个模块的算法设计说明如下:)(1)录入模块:查找单链表的链尾,在链尾插入一个“航班信息”的新结点。(2)查询模块:提供两种查方式:按航号和按航线查询,1代表按航号查询,2代表按航线查询。0则表示退出查询。顺着单链表查找,如果与航班号(航线)一致,输出相关信息,否则,查询不成功。(3)订票模块:查找乘客要订的航班号,判断此航班是否有空位,有则输入乘客有关信息,订票 成
9、功,否则失败。(4)退票模块:输入要退票的乘客姓名以及证件号码,查找乘客资料的链表中是否有这位乘客,有则删去此结点,并在空位加上1,无则退票失败。(5)修改模块:输入密码,确认是否有权限对航班信息进行修改,有则在航班信息链表中查找要修改的结点,进行修改,否则不能修改。6、存储结构设计:(1)航班的信息:为了便于查找和修改,航班的情况存储结构采用单链表, 每 个元素表示一个航班的情况,包括航班号、起飞达到的时间、余票和出发 地、目的地、票价以及总票数八个数据项:航班号起飞时问达到时问出发地目的地总票数余票票价单链表如下: D1 d D2 D3每个结点包括数据域和指针域:C语言描述如下:typed
10、ef struct Planechar planeNo10;char start30;char end_time30;char startplace30;char end_place30; int price;int discount;int total;int tamount;struct Plane *next;/*/*/*/*/*/*/*/*/*/*航班信息*/ 航班号*/起飞时间*/ 到达时间*/ 起飞城市*/ 到达城市*/ 机票价格*/ 折后价格*/ 机票总数*/ 剩余票数*/数据域指针域20Plane;(2)旅客的资料:为了便于插入、删除和修改,其采用单链表存储结构,每个数据元素包
11、括姓名、证件号码、航班号和座位号四个数据项:旅客姓名证件号码航班号C语言描述如下:定义乘客资料结点*/typedef struct passengernode /* char name20;char ID_num20;char air_num20;struct passengernode *next;passengernode;五、详细设计1、主程序中需要的全程量struct Plane/*char planeNo10;/*char start30;/*char end_time30;/*char startplace30;/*char end_place30;/*int price;/*in
12、t discount ;/*int total;/*int tamount/*struct Plane *next; Plane;struct customer/* char name30;/*char ID30;/*int tamount;/*char plane30;/*char no30;/*航班信息*/ 航班号*/ 起飞时间*/ 降落时间?*/ 起飞城市*/ 降落城市*/ 机票价格*/ 折后价格*/ 总机票数*/ 剩余机票数*/客户资料*/ 客户姓名*/ 证件号*/ 订票数量*/ 航班号*/ 订单编号*/struct customer *next;customer;Struct pla
13、ne *head=NULL;struct customer *glist=NULL;2.部分函数模块以及流程图1)主函数模块main() int i;while(1) system( "cls ");printf("nt*定*票*系*统*11);printf("n");printf("nt*1.录入信息 *");printf("n");printf("n");printf("nt *2.查询*");printf("n");printf("
14、;nt *3.订票*");printf("n");printf("nt *4.退票*");printf("n");printf("nt *5.修改*");printf("n");printf("nt *6.显示航班信息*");printf("n");printf("nt *7.显示客户信息*");printf("n");printf("nt *8.退出*");printf("n
15、");printf("nn *");printf("n请选择操作命令:");while(1)scanf("%d",&i);if(i>=1&&i<=8)break;else printf("n choose 1,2,3,4,5,6,7,8");switch(i)case 1:system(“cls ”);creat();break;case 2:system(“cls ”)search();break;case 3:system(cls )order();break;ca
16、se 4:system(cls )quit();break;case 5:system(cls )revise();break;case 6:system(cls )print();break;case 7:system(cls )print2();break;case 8:exit(0);default:break;主函数流程图2) .录入信息函数模块:void *creat()Plane *info;while(1)建立新结点*/info=(Plane*)malloc(sizeof(Plane);/* if(!info)printf("EMS has been full!n&qu
17、ot;);return NULL;printf("n输入航班号:");scanf("%s",info->planeNo);printf("输入起飞时间:");scanf("%s",info->start);printf(" 输入到达时间:");scanf("%s",info->end_time);printf("输入起飞地点:");scanf("%s",info->startplace);printf("
18、; 输入到达地点:");scanf("%s",info->end_place);printf("输入机票后评 :");scanf("%d”,&info->price);printf("输入折后价格:");scanf("%d”,&info->discount);printf("输入总机票数:");scanf("%d”,&info->total);printf("输入剩余票数:");scanf("%d”
19、,&info->tamount);info->next=head;head=info;system("cls");printf(" 是否继续? y/n");if(getch()='n'|getch()='N') break;save1(head);输入信息函数流程图图3输入信息函数流程图3) .查询航班信息函数模块void search()char s130,s230;Plane *p;int i=0,ch;while(1) p=head;printf("请选择 n");printf
20、("1.按航班号查询n");printf("2.按起落城市查询n");printf("3.退出 n");scanf("%d",&ch);if(ch=1) printf("n 请输入航班号n");scanf("%s",s1);/*读如航班号 */while(p)if(!strcmp(s1,p->planeNo)printf("n起飞地点:%s",p->startplace);printf("n起飞时间:s",p->
21、;start);printf("n到达地点:s",p->end_place);printf("n到达时间:s",p->end_time);printf("n机票价格:d",p->price);printf("n折后价格:d",p->discount);printf("n总机票数:d",p->total);printf("n剩余票数:dnn",p->tamount);if(p->tamount=0)printf("n此航班已满
22、!n");/*提示此航班已满 */p=p->next;i+;else p=p->next;if(!i) printf(" 无此航班 n"); i=0;if(ch=2)printf("输入起飞地点:");scanf("%s",s1)/printf("n 输入到达地点:");scanf("%s",s2);while(p)if(!strcmp(s1,p->startplace)&&!strcmp(s2,p->end_place)printf("
23、;起飞地点:%s",p->startplace);printf("n起飞时间:s",p->start);printf("n 到达地点:s",p->end_place);printf("n到达时间:s",p->end_time);printf("n机票价格:d",p->price);printf("n折后价格:d",p->discount);printf("n总机票数:d",p->total);printf("n剩余
24、票数:dnn",p->tamount);if(p->tamount=0)printf("n此航班已满!n");p=p->next;i+;else p=p->next;if(!i) printf("无此航班 n"); i=0;if(ch=3) break;查询函数流程图4) .订票功能函数模块:void order()customer *info;Plane *p,*q;char s30; int flag=0;while(1)p=q=head;printf("您想预定哪趟航班");scanf(&quo
25、t;%s",&s);if(strcmp(p->planeNo,s)!=0) /*判断 */printf("无此航班");/* 出错提示*/p=p->next;getch();break;if(p->tamount=0)printf("此航班已满.n是否需要预定其他到达该城市的航班:y/n'n");if(getch()='n'|getch()='N') break;elsewhile(q)if(!strcmp(p->end_place,q->end_place)&
26、;&p!=q)printf("您可以预定s号航班到达该城市n",q->planeNo);flag=1;q=q->next;if(flag=0)printf("没有到打该城市的其他航班");getch();break;elseprintf("目前此航班还有%d张票”,p->tamount);info=(customer*)malloc(sizeof(customer);if(!info)printf("EMS has been full!n");exit(0);printf("n姓名:&qu
27、ot;);scanf("%s",info->name);printf("n身份证号码:");scanf("%s",info->ID);printf("n航班号:");scanf("%s",info->planeNo);printf("n订票数量(<=%d):",p->tamount);scanf("%d”,&info->tamount);p->tamount=p->tamount-info->tamoun
28、t;info->no=num;printf("n您的订单号是 dn",info->no);num+;info->next=glist;glist=info;printf("是否继续? y/n");if('n'=getch()|'N'=getch() break; system( “cls ” );savel(head);save2(glist);订票函数流程图T图5订票函数流程图5) .退票功能函数模块 void quit()char s130,s230,s330;int m=0;Plane *p ;cu
29、stomer *q,*r;while(1) p=head;r=q=glist;printf("输入姓名:n");scanf("%s",s2);if(strcmp(s2,q->name)!=0) /* 判断 */printf("您没有预定机票");getch(); break; /* 出错提示*/ else printf("您想退订哪趟航班:n");scanf("%s",s1);if(strcmp(s1,q->planeNo)!=0) /*判断*/printf("您没有预定此
30、航班n");getch();break; /*出错提示*/ elseprintf("输入身份证号:n");scanf("%s",s3);if(strcmp(s3,q->ID)!=0) /*判断 */printf("n您输入的身份证号码有误 n");getch();break; /*出错提示*/ elseprintf("想退几张机票:n");scanf("%d",&m);while(strcmp(p->planeNo,s1)p=p->next;p->tam
31、ount=p->tamount+m;while(strcmp(q->name,s2)q=q->next;printf("n姓名:s",q->name);/* 输出原始定单 */printf("n身份证号码:s",q->ID);printf("n航班号:%s",q->planeNo);printf("n订票数量:d",q->tamount);printf("nn 真的要退订吗?(Y/N)n");if(getch()='y')q->ta
32、mount=q->tamount-m;printf("n姓名:s",q->name);/*打印新的定单 */printf("n身份证号码:s",q->ID);printf("n航班号:%s",q->planeNo);printf("n订票数量:d",q->tamount);if(!q->tamount) q=q->next;while(r!=q) r->no-;r=r->next;printf("nn退票成功!nn");printf(&quo
33、t; 是否继续? y/n");if('n'=getch()|'N'=getch() break;savel(head);save2(glist);6)显示信息函数模块:print()struct Plane *p; p=head->next;system( “cls ” ); if(!p)puts("nNO any data.");printf("n请按任意键返回");getch();return;折扣printf("n 航班号起飞时间抵达时间 出发城市 目的地 价格总票数剩余票数n")
34、;for(;p!=NULL;p=p->next) printf("%s %s %s %s %s %d %s %d %dn",p->planeNo,p->start,p->end_time,p->startplace,p->end_place,p->price,p->discount,p->total,p->start);printf("n请按任意键返回");getch();显示函数流程图prlntH'n青痘白面强追回图7显示函数流程图六、测试分析1.数据测试主菜单界面1)录入信息QI &
35、#39;T:Oocurrients and EetzintMAdministrEcirQebLiQTCciE.exe"Gllell长上 fl V ! I ! s05 y- 0 M 6 4 128 6 2 2"点点数地番不 班飞达飞达IM后机排 爵到起乱机制 不入入A-入入入入入入 是 mlfi! i一| x2) 查询B "二A口CKurr白nts wnd £ertirgs' Ac:nnrierriTct' PmbjgTCppLmxf"孽牖蠢3-息出请输入航班号L1TG12200眇-Z海-5长10二11麻6421点问点何数世第香k
36、飞飞达端后机余 起起金至机折上心此沅孤已满,请呼、 ,1 .发航班号查询2 .法起营城市查询3 一息出国'2:'Jocunert5 and Settnai' AdmniFtratcir. DebloCpr 1.exe"此航租已加:专航班笈查询,强运落城市查询.显出IS人起飞地点,长沙3)订票5 0 04 8 67 116 S 沙必京刈 箕1B北11达点间点间数 到地Br±*Br4J 香 k 人飞飞达达器机余因 C:Docunnent5 and 5ettinq5.AdmirrisUat&r'-,DebugCppl.exe您想预定哪趟航班
37、LVG1W2 且前此航班还者2B8张票 姓名;SUD身份证号招:220航班号:LYG12:2订票数量”2曲”2酗您的讶单号是1 是否生续? y"4)退票S3 'C:'Documents and Settinos' Adrnristrator' DebuG2ppl.exe"BUD您想退订哪趟航班工LYG122扁人身份记号?220想退几张机票m 49处名=£UD异桥记号弼出白 再理手中设方 订祟费量:20日真的滨返订吗7四力0 是否维维? iF/n-腔狗拼音举:国,rC:!|,DDCjmant5 rind Settings' A
38、dmin stntor'.Dbugrpp 1.exe输入姓名;BUD您想退订班?巡航班,LVG122 输入身份心号 221您输入的身份证号犯有误5)修改航班信息219 "C:Doajrrients and SettingslA dmiostratorXOeb u gCp n 1. exe0 01S .V4/ 000B1012长广打46310n翌K咸叼, 飞达因四票后计余息缜 起到起招数心熟B信继 Ar入入入入入入入:1改否18像是326)显示客户信息2 .测试评价:该测试结果完全符合预计的结果,载入航班数据库信息,进而预订机票, 仍后输出预订后航班信息。相应的信息应是原来的出
39、去被预订的。由测试结 果来看,输出结果完全真确。3 .遇到的问题及解决方法(1)在输出数据时出现乱码,后来发现输出的参数个数与前面预想输出个数 不同。保持个数一致就可以解决。(2)存盘时发现路径错误,输入真确的存盘路径即可。(3)最初完成程序的时候功能里的错误提示功能很弱,输入信息出错时不能 很好的提示错误,在谨慎全面的考虑到出错情况之后经反复修改终于达 到功能要求。七、数据结构实习心得体会经过短短两个星期的上机实践学习,使我对数据结构有了更进一步的认识和 了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它。这次实践的三个任务我全部是用链表来完成的, 自己以前对链表和指针这部 分
40、的知识掌握不是很扎实,所以在实践中给自己设定了一个很大的挑战。 用连表 来实现功能方便又高效,但同时也复杂,更容易出错,从函数结构体的定义到调 用,每个细节都要认真谨慎的编写程序, 地址和数值的传递也非常重要,理解不 透,运用不好就会出现很多奇怪的问题, 无从下手。通过动手操作编程也确实让 我对这部分的知识更深刻的理解、更好的掌握了。不在象以前那样害怕接触这方 面的程序了。由于这次的任务都是设计一些实用性很强的应用系统,对各方面要求都比较 高,不仅是可以简单的实现要求的功能, 同时要十分重要出错提示,即输入错误 信息或者不存在想要查询的信息时候, 系统要能够灵敏的报错,并且提供相关参 考信息。
41、这在以前的编程实习中是没有注意的强调的。 虽然错误提示只是简单的 几句控制语句和输出语句,但是却对系统的严密性非常重要,所以这次的实习还 让我懂得要想让程序更有生命力一定要在功能实现的同时更加完善,综合全面的考虑各种可能的情况,并做出相应的提示信息和解决办法,尤其是飞机定票系统 的定票功能,要求在满航的时候给出其他参考航班, 这就提示我们不要满足于可 以实现功能,而要追求全面和完善,编程与其他工作一样要精益求精。通过实践,还提高了我的自信心。从开始的害怕紧张到后来熟练应用程序, 我对C语言和数据结构知识的了解进一步加深了。 它使我认识到每个功能强大的系统都是由简单的小程序、子函数构成的,只要把
42、层次关系弄清楚,调用关系弄 明白,系统的框架就清晰的展现出来了,层层分析,层层编写,最后发现原来最 简单的排序,输入,输出函数组合到一起就可以是功能强大的应用系统。 所以我 懂得了要用平和的心态去接受每个任务,自信可以完成,然后认真对待,是可以获得自己满意的结果的。在实践中提高了自己的动手能力,以前总是看别人的程序,很少自己真的动 手去编程,所以在刚开始编程的时候经常犯一些不应该的错误,比如忘记;,输入不加&,缺少等等。同时还增强了计算机方面的基础知识,比如一些软件操作 和使用。学习在于实践,在学习过程中,我会更加注视实践操作,将理论知识与 实践相结合,使自己更好地学好编程语言,各方面
43、的知识都更加扎实和牢固。八、参考文献:11严蔚敏、吴伟民数据结构2008.721严蔚敏数据结构题集2008.931王曙燕C语言程序设计2007.841耿国华数据结构一一C语言描述2008.10九、附录:源程序#include <stdio.h>#include <string.h>#include <conio.h>#include<dos.h>#include <ctype.h>#include <math.h>#include <stdlib.h>#include <malloc.h>typed
44、ef struct Plane/*航班信息*/char planeNo10;/*航班号*/char start30;/*起飞时间 */char end_time30;/*到达时间*/char startplace30;/*char end_place30;/*int price;/*int discount;/*起飞城市*/到达城市*/机票价格*/折后价格*/int total;/*机票总数*/剩余票数*/printf("n保存n");int tamount;/*struct Plane *next;Plane;typedef struct customer/*客户资料*/
45、char name30;/*客户姓名*/char ID30;/*证件号码*/int tamount;/*订票数量*/char planeNo30;/*航班号*/int no;/*定单号*/struct customer *next;customer;Plane *head=NULL;customer *glist=NULL;int num=1;/*/*保存航班信息*/void save1(Plane *L) FILE *fp;Plane *p;if(fp=fopen("plane","wb")=NULL)printf("不能打开此文件!!n&q
46、uot;);exit(1);p=L;while(p!=NULL)fwrite(p,sizeof(Plane),1,fp);p=p->next;fclose(fp);printf("保存成功 n");/*/*保存客户信息*/void save2(customer *L) FILE *fp;customer *p;if(fp=fopen("customer","wb")=NULL)printf("不能打开此文件!!n");exit(1);printf("nSaving'n");p=L;
47、while(p!=NULL)fwrite(p,sizeof(customer),1,fp);p=p->next;fclose(fp);printf("保存成功 n");*/*录入航班信息*/void *creat()Plane *info;while(1)info=(Plane*)malloc(sizeof(Plane); /*创建新结点 */if(!info)printf("EMS has been full!n");return NULL;printf("n输入航班号:");scanf("%s",info
48、->planeNo);printf("输入起飞时间:");scanf("%s",info->start);printf("输入到达时间:");scanf("%s",info->end_time);printf("输入起飞地点:");scanf("%s",info->startplace);printf("输入到达地点:”);scanf("%s",info->end_place);printf("输入机票价格
49、:");scanf("%d",&info->price);printf("输入折后价格:");scanf("%d",&info->discount);printf("输入总机票数:");scanf("%d",&info->total);printf("输入剩余票数:");scanf("%d",&info->tamount);info->next=head;head=info;syste
50、m("cls");printf("是否继续? y/n");/*一个信息输入结束,是否继续输入 */if(getchO='n'|getchO='N') break;savel(head);/*/*查询航班信息*/void search()char s130,s230;Plane *p;int i=0,ch;while(1)p=head;printf("请选择 n");printf("1.按航班号查询n");printf("2.按起落城市查询n");printf(&q
51、uot;3.退出 n");scanf("%d",&ch);if(ch=1) printf("n请输入人班号n");scanf("%s",s1);while(p)if(!strcmp(s1,p->planeNo)printf("n起飞地点:%s",p->startplace);printf("n起飞时间:s",p->start);printf("n到达地点:s",p->end_place);printf("n到达时间:s&qu
52、ot;,p->end_time);printf("n机票价格:d",p->price);printf("n折后价格:d",p->discount);printf("n总机票数:d",p->total);printf("n剩余票数:dnn",p->tamount);if(p->tamount=0)printf("n此航班已满!n");/*满航判定 */p=p->next;i+;else p=p->next;if(!i) printf("无此
53、航班 n"); i=0; /* 错误提示 */if(ch=2)printf("输入起飞地点:");scanf("%s",s1);printf("n 输入到达地点:");scanf("%s",s2);while(p) if(!strcmp(s1,p->startplace)&&!strcmp(s2,p->end_place)printf("起飞地点:%s",p->startplace);printf("n起飞时间:s",p->s
54、tart);printf("n 到达地点:s",p->end_place);printf("n到达时间:s",p->end_time);printf("n机票价格:d",p->price);printf("n折后价格:d",p->discount);printf("n总机票数:%d",p->total);printf("n剩余票数:%dnn",p->tamount);if(p->tamount=0)printf("n此航班已
55、满!n");p=p->next;i+;else p=p->next;if(!i) printf("无此航班 n"); i=0;if(ch=3) break; /*/*订票函数*/void order()customer *info;Plane *p,*q;char s30; int flag=0;while(1)p=q=head;printf("您想预定哪趟航班");scanf("%s",&s);if(strcmp(p->planeNo,s)!=0)printf("无此航班");
56、p=p->next;getch();break;if(p->tamount=0)printf("此航班已满.n是否需要预定其他到达该城市的航班:y/nn");if(getch()='n'|getch()='N') break;elsewhile(q)if(!strcmp(p->end_place,q->end_place)&&p!=q)printf("您可以预定s号航班到达该城市n",q->planeNo);flag=1;q=q->next;if(flag=0)print
57、f("没有到打该城市的其他航班");getch();break;elseprintf("目前此航班还有 %d张票",p->tamount);/* 订票数量控制*/info=(customer*)malloc(sizeof(customer);if(!info)printf("EMS has been full!n");exit(0);姓名:"); printf("nscanf("%s",info->name);printf("n身份证号码:");scanf("%s",info->ID);printf("n航班号:");scanf("%s",info->planeNo);printf("n订票数量(<=%d):",p->tamount);scanf("%d",&info->tamount);if(info->tamount>p->tamount)printf("此航班剩余机票不够");/* 出错提示*/break;elsep->tamount=p->tamoun
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年篮球运动场地安全设施安装与检修合同3篇
- 2025版土地整治工程土方运输居间代理协议3篇
- 2025版教育培训投资入股合同范本大全3篇
- 2025年度个人与个人车辆购置借款合同2篇
- 2025版教职工宿舍分配与使用管理合同3篇
- 二零二五版留置车辆维修工程借款协议4篇
- 2024金融科技支付系统集成与运营合同
- 二零二五年度体育赛事官方运动服赞助合同示例3篇
- 渣土运输及循环经济承包合同(二零二五年度)3篇
- 2025年达人带货直播平台合作协议书2篇
- 2024企业答谢晚宴会务合同3篇
- 《客舱安全管理与应急处置》课件-第14讲 应急撤离
- 中华人民共和国文物保护法
- 节前物业安全培训
- 高甘油三酯血症相关的器官损伤
- 手术室护士考试题及答案
- 牙膏项目创业计划书
- 单位食堂供餐方案
- DB42-T 2204-2024 湖沼湿地温室气体通量监测技术规范
- 急性会厌炎的护理
- 七年级下册《Reading 1 A brave young man》优质课教案牛津译林版-七年级英语教案
评论
0/150
提交评论