首页 电影票订票

电影票订票

举报
开通vip

电影票订票电影票订票 #include #include #include #include #define seat 10 //影片结构 typedef struct nodeMovie { int number; char name[20]; int totalSeat; int freeSeat; struct nodeMovie *next; }ListNodeMovie,*LinkListMovie; //观众结构 typedef struct nodeViewer { cha...

电影票订票
电影票订票 #include #include #include #include #define seat 10 //影片结构 typedef struct nodeMovie { int number; char name[20]; int totalSeat; int freeSeat; struct nodeMovie *next; }ListNodeMovie,*LinkListMovie; //观众结构 typedef struct nodeViewer { char name[10]; int number; int setSeat; struct nodeViewer *next; }ListNodeViewer,*LinkListViewer; void main() { char a[20]; int n=4,select,selectError,s0Temp,flag=0,flag1=0; //初始化影片链表 LinkListMovie L; ListNodeMovie *p; L=(ListNodeMovie *)malloc(sizeof(ListNodeMovie)); p=L; //初始化观众链表 LinkListViewer L1; 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); } //输入新增影片,加至影片链表p printf("输入新增影片,以#结束:\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); //检查订购票数是否大于5 if(s0->setSeat>5) { printf("对不起,每人限购5张以下票\n"); printf("重输票数---------1\n"); printf("返回系统---------2\n"); scanf("%d",&selectError); if(selectError==1) goto REINPUT; else if(selectError==2) goto START; } //检查订购票数是否超出放映厅空座位数(3部初始影片) else if(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) goto REINPUT; else if(selectError==2) goto START; } } else if(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) goto REINPUT; else if(selectError==2) goto START; } } else if(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) goto REINPUT; else if(selectError==2) goto START; } } 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) goto REINPUT; else if(selectError==2) goto START; } } //没有错误,订票成功 printf("请输入您的名字:\n"); scanf("%s",&s0->name); //创建观众链表p1 s0->next=NULL; p1->next=s0; p1=p1->next; printf("恭喜您,%s,您成功的在第%d放映厅订购了%d张票 \n",p1->name,p1->number,p1->setSeat); goto START; } //取消功能(选项2) else if(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; //不是头结点 else p2->next=p1->next; //退票成功,标记flag flag=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"); goto START; } //查找功能(选项3) else if(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"); goto START; } //退出功能(选项4) else { printf("欢迎下次再来~\n"); exit(0); } }
本文档为【电影票订票】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_281650
暂无简介~
格式:doc
大小:29KB
软件:Word
页数:12
分类:初中语文
上传时间:2017-09-02
浏览量:47