ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:64.54KB ,
资源ID:9770475      下载积分:6 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9770475.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(航空客运订票系统数据结构课程设计.doc)为本站上传会员【精***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

航空客运订票系统数据结构课程设计.doc

1、 #include #include #include #include #define ok 1 typedef struct Yidingkehu {//单链表 char name[15];//已订票的客户姓名 int dingpiaoshu;//已订票数量 struct Yidingkehu *next1; }Yidingkehu,*Link; typedef struct Weidingkehu{//单链队 char name[15];//预订票

2、的客户姓名 int yudingpiao;// 要订票数量 struct Weidingkehu *next2;//下一个链队结点指针 }Weidingkehu,*Qptr; typedef struct { Qptr front;//单链队头结点 Qptr rear;//单链队尾结点 }linkQueue; typedef struct Hangxian{//创建一个航线的结构体 char hangbanhao[15];//航班号- char feijihao[15];//飞机号 int feixingriqi;//起飞时间 int

3、level;//仓位 int yupiao;//余票 char zhongdianzhan[15];//降落城市 struct Hangxian *next;//指向下一个链结点的指针 struct Yidingkehu *yiding;//定义一个指向已订票客户的头结点指针 struct Weidingkehu *yudingqueue; }Hangxian,*Linklist; struct Hangxian *L=NULL;//定义全局量 struct Yidingkehu *H;//为已订票客户链队来申请空间 linkQueue Q;/

4、/linkQueue类型的来申请空间 Linklist InitLinklist();//声明 int InsertLinklist(Linklist &head1);//声明 void hbhchaxun();//通过航班号查询 void mddchaxun();//通过目的地查询 void lurugongneng();//初始化录入功能 void chaxungongnen();//查询功能 void dingpiaogongnen();//订票功能 void tuipiaogongnen();//退票功能 void main() { H=(str

5、uct Yidingkehu*)malloc(sizeof(Yidingkehu)); Q.front=Q.rear=(Qptr)malloc(sizeof(Weidingkehu)); InitLinklist(); int n; do{ //打印主界面 printf("\t 欢迎使用航空客运订票系统\n"); printf("\t+++++++++++++++++++++++++++++\n"); printf("\t==>1. 录入功能 ==\n"); printf("\t==>

6、2. 查询功能 ==\n"); printf("\t==>3. 订票功能 ==\n"); printf("\t==>4. 退票功能 ==\n"); printf("\t==>5. 退出 ==\n"); printf("\t+++++++++++++++++++++++++++++\n"); printf("\t请选择:"); scanf("%d",&n);printf("\n");

7、 switch(n) { case 1: lurugongneng();//录入功能 break; case 2: chaxungongnen();//查询功能 break; case 3: dingpiaogongnen();//订票功能 break; case 4:tuipiaogongnen();//退票功能 break; default :exit(0);//退出 } }while(n==1||n==2||n==3||n==4); } void lurugongneng()//初始化的单链表*

8、录入功能 { int j=1,m; do{ if(!InsertLinklist((Linklist) L)) //向其中加入航班信息 { printf("内存已满\n"); exit(OVERFLOW); }//向链表中加一结点 printf("\t是否要输入下一个航线记录?\n"); printf("\t是请输入1\n"); printf("\t否请输入2\n\t"); scanf(

9、"%d",&m); //在这里依靠人来决定是否输入下一条航线记 }while(m==1); } Linklist InitLinklist() { L=(Linklist)malloc(sizeof(Hangxian)); if(!L) exit(OVERFLOW); L->next=NULL;//建立一个带有头结点的单链表 return (L); } int InsertLinklist(Linklist &L)//向航线链表添加新的结点 { Linklist p; p=(Linklist)malloc(sizeof(Hangxian)

10、);//为一个新的结点分配空间 if(!p) exit(OVERFLOW); printf("\t请依次输入下面几项内容:\n\n");//这里的输入采用一个个单独输入,避免了乱赋值的现象 printf("航班号\n"); scanf("%s",p->hangbanhao); printf("飞机号\n"); scanf("%s",p->feijihao); printf("终点站\n"); scanf("%s",p->zhongdianzhan); printf("飞行日期\n"); scanf("%d",&p->feixing

11、riqi); printf("仓位\n"); scanf("%d",&p->level); printf("余票数\n"); scanf("%d",&p->yupiao); p->yiding=(Yidingkehu*)malloc(sizeof(Yidingkehu));//为它申请空间 p->yudingqueue=Q.front=Q.rear=(Qptr)malloc(sizeof(Weidingkehu));//为它申请空间 p->next=L->next; L->next=p;//这二句是链表中的插入一个结点

12、 return (ok); } void chaxungongnen()//******************************************************************查询功能 { int n; printf("\t 查 找 航 线 信 息 \n"); printf("\t+++++++++++++++++++++++++++++\n"); printf("\t==>1. 通过目的地查询 ==\n"); printf("\t==>2. 通过航班号查询 ==\n"

13、); printf("\t+++++++++++++++++++++++++++++\n"); printf("\t请选择:\n"); scanf("%d",&n); switch(n) { case 1:mddchaxun(); break; case 2:hbhchaxun(); break; default :break; } } void mddchaxun()//通过目的地查询 { char c[15]; Linklist p=L; int m; printf("\t请

14、输入要查询的目的地:\n"); scanf("%s",c); do{ p=p->next; if(p) { if(strcmpi((*p).zhongdianzhan,c)==0) { printf("\t航班信息:\n"); printf("\t航班号:%s\n",p->hangbanhao); printf("\t飞机号:%s\n",p->feijihao); printf("\t飞行时间:周%d

15、\n",p->feixingriqi); printf("\t余票量:%d\n",p->yupiao); } } else {//如果不匹配的话就做 printf("\t对不起没有你要找的目的地:\n\n"); m=0; } }while(m!=0); } void hbhchaxun()//通过目的地查询 { char c[15]; Linklist p=L; int m; printf("\t请输入要查询的航班号:\n");

16、scanf("%s",c); do{ p=p->next; if(p) { if(strcmpi((*p).hangbanhao,c)==0) { printf("\t航班信息:\n"); printf("\t航班号:%s\n",p->hangbanhao); printf("\t飞机号:%s\n",p->feijihao); printf("\t飞行时间:周%d\n",p->feixingriqi); pr

17、intf("\t余票量:%d\n\n",p->yupiao); } } else {//如果不匹配的话就做 printf("\t对不起没有你要找的航班号:\n"); m=0; } }while(m!=0); } void dingpiaogongnen()//***************************************************************订票功能 { Linklist p=L;//Linklist类型的L来指向链表头 Yidingkehu *h=H,*h

18、1;//Yidingkehu 定义客户的结点,方便插入与删除 linkQueue q=Q;//linkQueue类型的来 ,方便插入与删除 struct Weidingkehu *q3; char c[15]; int m=1,piao,n; int ydpiao=0,yd=0; printf("请输入终点站名:\n"); scanf("%s",c); p=L->next; if(p) { do{//查找一下,是否有这个航班 if(!p) { printf("对不起,

19、没有你要找的航班:\n\n"); //goto loop1; } m=strcmpi(p->zhongdianzhan,c); //通过比较来判定 if(m==0) { printf("航班信息:\n"); printf("航班号:%s\n",p->hangbanhao); printf("飞机号:%s\n",p->feijihao); printf("飞行时间:周%d\n",

20、p->feixingriqi); printf("余票量:%d\n",p->yupiao); } else p=p->next; }while(m!=0); if(m==0) {//当有该航班时,进行订票 do{ printf("\n请输入你要订的票数:\n"); scanf("%d",&piao); if(piao<=p->yupiao) { h=p->yiding; if(h)

21、 { h1=h; h=h->next1; h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu)); printf("请输入你的名字:\n"); scanf("%s",h->name); h->dingpiaoshu=piao;

22、 h->next1=h1->next1; h1->next1=h; p->yupiao=p->yupiao-piao; printf("订票成功:\n"); m=2; } } else //余票量不足时 { printf("余票量:%d\n",p->yupiao); printf("对不起,余票 %d 张不足,不能完成订票\n",p->yu

23、piao); printf(" 是否要重新订票?\n"); printf("需要请输入1 否则请按2 预订请输入3 : \n"); scanf("%d",&m); while(m==3) { printf("对不起,该航班的票已售完\n"); q.front=p->yudingqueue; if(q.front==q.rear)

24、 printf("没有人预订票,是否要预订?\n"); else if(q.front!=q.rear) printf("已有人预订票,是否要预订?\n"); printf("预订请输入1 否则输入2 : \n"); scanf("%d",&n); if(n==1) { q3=(Qptr)malloc(sizeof(Weidingkehu)); printf("请输入你的姓名\n");

25、 scanf("%s",q3->name); printf("请输入订票数\n"); scanf("%d",&q3->yudingpiao); q3->next2=NULL; q.rear->next2=q3; q.rear=q3;

26、 printf(" 你已经预订了 !\n"); } } } }while(m==1); } } } void tuipiaogongnen()//***************************************************************退票功能 { Linklist p=L; Yidingkehu *h=H,*h1,*h2; linkQueue q=Q; char c[15],name1[15]; int m=1,piao,n;//定义

27、相应变量 printf("请输入航班号:\n"); scanf("%s",c); p=L->next; if(p) { do{ //使用do while来查找是否有此航班 if(!p) {//如果是到了表尾且没有匹配, printf("\n对不起,没有你要找的航班:\n"); } if(strcmpi(p->hangbanhao,c)==0)//比较航班号 输出信息 { printf("\t航班信息:\n"); prin

28、tf("航班号:%s\n",p->hangbanhao); printf("飞机号:%s\n",p->feijihao); printf("飞行时间:周%d\n",p->feixingriqi); printf("余票量:%d\n",p->yupiao); m=0; } else p=p->next; }while(m!=0); if(m==0) {//如果找到了,就来给他退票 do{ h=p->yiding; if(h

29、) { printf("请输入你的姓名:\n"); scanf("%s",name1); printf("请输入你订的票数:\n"); scanf("%d",&piao); h1=h; h=h->next1; if(strcmpi(h->name,name1)==0&&h->dingpiaoshu==piao)//如果

30、名字和订的票数相等,则就给他取消订票 { p->yupiao+=h->dingpiaoshu; h2=h; h1->next1=h->next1; free(h2); printf("你取消订票成功\n"); struct Weidingkehu *q3; q.front

31、p->yudingqueue; if(q.front==q.rear) { printf("没有人预订票:\n"); } if((p->yupiao)>=(q.front->next2->yudingpiao)) { h2=(Yidingkehu*)malloc(sizeof(Yidingkehu)); strcpy(h2->name,q.front->next

32、2->name); h2->dingpiaoshu=q.front->next2->yudingpiao; n=p->yupiao-q.front->next2->yudingpiao; p->yupiao=n; q3=Q.front->next2;// q.front->next2=q3->next2;//

33、这二语句来删除结点 if(q.rear==q3) q.rear=q.front; free(q3);//释放空间 printf("链队中删除成功\n"); h2->next1=h->next1; h->next1=h2;//为之插入进已订票客户链表中

34、 printf("为预订的客户订票成功\n"); } else printf("余票数不够,不能为预订客户订票!\n"); } else { //如果没有找到,即系统中没有该人的信息,提示是否来重新查找 printf("对不起,该航班没有人订票或者是你没有订该航班的票\n"); printf("是否要重新查找并取消订票?\n"); printf("需要请输入1 否则请按2 \n"); scanf("%d",&m); } } }while(m==1); } } }

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服