首页 电影票订票

电影票订票

举报
开通vip

电影票订票#include#include#include#include#defineseat10//影片结构typedefstructnodeMovie{intnumber;charname[20];inttotalSeat;intfreeSeat;structnodeMovie*next;}ListNodeMovie,*LinkListMovie;//观众结构typedefstructnodeViewer{charname[10];intnumber;intsetSeat;structnodeViewer*next;}...

电影票订票
#include#include#include#include#defineseat10//影片结构typedefstructnodeMovie{intnumber;charname[20];inttotalSeat;intfreeSeat;structnodeMovie*next;}ListNodeMovie,*LinkListMovie;//观众结构typedefstructnodeViewer{charname[10];intnumber;intsetSeat;structnodeViewer*next;}ListNodeViewer,*LinkListViewer;voidmain(){chara[20];intn=4,select,selectError,s0Temp,flag=0,flag1=0;//初始化影片链表LinkListMovieL;ListNodeMovie*p;L=(ListNodeMovie*)malloc(sizeof(ListNodeMovie));p=L;//初始化观众链表LinkListViewerL1;ListNodeViewer*p1,*p2;L1=(ListNodeViewer*)malloc(sizeof(ListNodeViewer));p1=L1;ListNodeMovie*s1=(ListNodeMovie*)malloc(sizeof(ListNodeMovie));ListNodeMovie*s2=(ListNodeMovie*)malloc(sizeof(ListNodeMovie));ListNodeMovie*s3=(ListNodeMovie*)malloc(sizeof(ListNodeMovie));ListNodeMovie*s=(ListNodeMovie*)malloc(sizeof(ListNodeMovie));//初始化三部影片链表s1->number=1;s1->freeSeat=seat;strcpy(s1->name,"蝙蝠侠");s1->next=NULL;p->next=s1;p=p->next;s2->number=2;s2->freeSeat=seat;strcpy(s2->name,"超人");s2->freeSeat=seat;s2->next=NULL;p->next=s2;p=p->next;s3->number=3;s3->freeSeat=seat;strcpy(s3->name,"指环王");s3->freeSeat=seat;s3->next=NULL;p->next=s3;p=p->next;p->next=NULL;//输出初始影片链表printf("目前已有影片:\n");printf("放映厅影片名空座位数\n");p=L;while(p->next!=NULL){p=p->next;printf("%3d%13s%7d\n",p->number,p->name,p->freeSeat);}//输入新增影片,加至影片链表pprintf("输入新增影片,以#结束:\n");scanf("%s",a);while(strcmp(a,"#")!=0){ListNodeMovie*s=(ListNodeMovie*)malloc(sizeof(ListNodeMovie));s->number=n;n++;s->freeSeat=seat;strcpy(s->name,a);s->next=NULL;p->next=s;p=p->next;scanf("%s",a);}//输出初始影片链表START:printf("目前已有影片:\n");printf("放映厅影片名空座位数\n");p=L;while(p->next!=NULL){p=p->next;printf("%3d%13s%7d\n",p->number,p->name,p->freeSeat);}//程序主界面printf("\n\n");printf("电影院订票系统\n");printf("------------------------------------\n");printf("订票---------1\n");printf("取消---------2\n");printf("查找---------3\n");printf("退出---------4\n");printf("------------------------------------\n");//输入选择选项scanf("%d",&select);//订票功能(选项1)if(select==1){ListNodeViewer*s0=(ListNodeViewer*)malloc(sizeof(ListNodeViewer));printf("\n请输入您所选电影的放映厅编号:\n");scanf("%d",&s0->number);REINPUT:printf("请输入您订购电影票的张数:\n");scanf("%d",&s0->setSeat);//检查订购票数是否大于5if(s0->setSeat>5){printf("对不起,每人限购5张以下票\n");printf("重输票数---------1\n");printf("返回系统---------2\n");scanf("%d",&selectError);if(selectError==1)gotoREINPUT;elseif(selectError==2)gotoSTART;}//检查订购票数是否超出放映厅空座位数(3部初始影片)elseif(s0->number==1){//如果不超出则对应空座位数=空座位数-订购票数s1->freeSeat=s1->freeSeat-s0->setSeat;if(s1->freeSeat<0){//如果超出则把刚才减的再加上s1->freeSeat=s1->freeSeat+s0->setSeat;printf("对不起,票数不够\n");printf("重输票数---------1\n");printf("返回系统---------2\n");scanf("%d",&selectError);if(selectError==1)gotoREINPUT;elseif(selectError==2)gotoSTART;}}elseif(s0->number==2){s2->freeSeat=s2->freeSeat-s0->setSeat;if(s2->freeSeat<0){s2->freeSeat=s2->freeSeat+s0->setSeat;printf("对不起,票数不够\n");printf("重输票数---------1\n");printf("返回系统---------2\n");scanf("%d",&selectError);if(selectError==1)gotoREINPUT;elseif(selectError==2)gotoSTART;}}elseif(s0->number==3){s3->freeSeat=s3->freeSeat-s0->setSeat;if(s3->freeSeat<0){s3->freeSeat=s3->freeSeat+s0->setSeat;printf("对不起,票数不够\n");printf("重输票数---------1\n");printf("返回系统---------2\n");scanf("%d",&selectError);if(selectError==1)gotoREINPUT;elseif(selectError==2)gotoSTART;}}else{//通过输入的观众链表中的放映厅编号定位影片链表(新增影片)p=L;s0Temp=s0->number;while(s0Temp>0){p=p->next;s0Temp--;}p->freeSeat=p->freeSeat-s0->setSeat;if(p->freeSeat<0){p->freeSeat=p->freeSeat+s0->setSeat;printf("对不起,票数不够\n");printf("重输票数---------1\n");printf("返回系统---------2\n");scanf("%d",&selectError);if(selectError==1)gotoREINPUT;elseif(selectError==2)gotoSTART;}}//没有错误,订票成功printf("请输入您的名字:\n");scanf("%s",&s0->name);//创建观众链表p1s0->next=NULL;p1->next=s0;p1=p1->next;printf("恭喜您,%s,您成功的在第%d放映厅订购了%d张票\n",p1->name,p1->number,p1->setSeat);gotoSTART;}//取消功能(选项2)elseif(select==2){printf("请输入您的姓名:\n");scanf("%s",a);p1=L1;//如果姓名在观众链表中查找不到且链表未结束,则移至下一结点while(strcmp(a,p1->name)!=0&&p1->next!=NULL){p2=p1;p1=p1->next;}//查找到姓名if(strcmp(a,p1->name)==0){//如果查找的姓名是头结点,则头结点链至下一结点if(p1==L1)L1=p1->next;//不是头结点elsep2->next=p1->next;//退票成功,标记flagflag=1;printf("恭喜您%s,成功的在第%d放映厅退票%d张\n",p1->name,p1->number,p1->setSeat);//定位影片链表并将退票数加到对应放映厅空座位数p=L;s0Temp=p1->number;while(s0Temp>0){p=p->next;s0Temp--;}p->freeSeat=p->freeSeat+p1->setSeat;}//根据标记flag判断是否退票成功if(flag!=1)printf("查无此人!\n");gotoSTART;}//查找功能(选项3)elseif(select==3){printf("请输入您要查找的影片名称:\n");scanf("%s",a);p=L;//根据输入影片名输出对应影片信息while(p!=NULL){if(strcmp(a,p->name)==0){printf("影片%s在第%d放映厅,有%d个空座位\n",p->name,p->number,p->freeSeat);flag1=1;}p=p->next;}//根据标记flag判断是否退票成功if(flag1!=1)printf("没有这部电影!\n");gotoSTART;}//退出功能(选项4)else{printf("欢迎下次再来!\n");exit(0);}}
本文档为【电影票订票】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
saw5189
暂无简介~
格式:doc
大小:51KB
软件:Word
页数:9
分类:
上传时间:2023-02-28
浏览量:0