电影院管理系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

#defineSINFOR_LENsizeof(SINFOR)#defineIFILM_LENsizeof(IFILM)#defineN1000#defineK20intg_monthdays[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};typedefstructtime//时间类型{inthour;//小时intminute;//分钟}STIME;typedefstructinformation//售票信息类型{charfname[20];//影片名称intfnumber;//放映厅编号intfbuy[K];//每个放映厅所对应的购票数SDATEf_date;//放映日期SDATEbor_time;STIMEf_time;//放映时间intinmoney;//票房总收入}SINFOR;SINFORffilm[N];//电影信息数组(全局变量)voidpeopleLogin(intfn,intm){intselect;while(1){printf(--------------------);printf(1.输出影片信息);printf(2.买票);printf(3.退票);printf(0.返回主菜单);printf(--------------------);printf(\n请选择您需要的服务(0-3):);scanf(%d,&select);getchar();switch(select){case1:outputmovies(fn);break;case2:buyticket(fn);break;case3:returnticket(fn,m);break;case0:return;}}}voidinputonemovie(inti){printf(请输入影片名称:);scanf(%s,ffilm[i].fname);printf(请输入放映日期:);scanf(%4hd.%4hd.%4hd,&ffilm[i].f_date.year,&ffilm[i].f_date.month,&ffilm[i].f_date.day);printf(请输入放映时间:\n);scanf(%4d.%4d,&ffilm[i].f_time.hour,&ffilm[i].f_time.minute);//printf(请输入放映厅%d售票数:);//ffilm[i].fnumber;charc='y';intn=0;while(c=='y'||c=='Y'){printf(请输入放映厅%d售票数:,n);scanf(%d,&ffilm[i].fbuy[n++]);getchar();printf(继续输入下一个放映厅的售票数吗(y/n):\n);c=getchar();getchar();}ffilm[i].fbuy[i]=0;//getchar();}intloadmovie(void){FILE*fm;intfn=0;if((fm=fopen(sales.txt,r+))==NULL){printf(can'topenfilesales.txt\n);return(fn);}while(!feof(fm))if(fread(&ffilm[fn],SINFOR_LEN,1,fm))fn++;fclose(fm);return(fn);}voidsaveonemovie(inti){FILE*fm;if((fm=fopen(sales.txt,r+))==NULL){printf(can'topenfilesales.txt\n);exit(1);}fseek(fm,SINFOR_LEN*i,0);fwrite(&ffilm[i],SINFOR_LEN,1,fm);fclose(fm);}//*************************************************************//功能:将全部电影信息保存到sales.txt文件中//参数:m表示电影数//返回:无//主要思路:用fwrite函数将数组film中的信息写入文件//*****************************************************voidsaveallmovie(intfn){FILE*fm;if((fm=fopen(sales.txt,w))==NULL){printf(can'topenfilesales.txt\n);exit(1);}fwrite(ffilm,SINFOR_LEN,fn,fm);fclose(fm);}//*************************************************************//功能:实现初始化//参数:无//返回:影片数量//主要思路:用for循环实现输入信息,并写入文件//************************************************intoriginalmovie(void){intn;charc='y';for(n=0;c=='Y'||c=='y';n++){printf(\n输入电影%d的信息:\n,n+1);inputonemovie(n);printf(\n继续输入请按'y',停止请输入'n':);c=getchar();getchar();}saveallmovie(n);return(n);}voidoutputonemovie(inti){intn;printf(\n请输出影片名称:);puts(ffilm[i].fname);printf(请输出放映日期:);printf(%4d.%4d.%4d\n,ffilm[i].f_date.year,ffilm[i].f_date.month,ffilm[i].f_date.day);printf(请输出放映时间:\n);printf(%4d:%4d,ffilm[i].f_time.hour,ffilm[i].f_time.minute);printf(请输出放映厅编号:);printf(%4d,ffilm[i].fnumber);n=ffilm[i].fnumber;printf(请输出购票人数:);printf(%4d,ffilm[i].fbuy[n-1]);}voidoutputallmovie(intfn){inti;printf(\n全部影片的信息:\n);for(i=0;ifn;i++){outputonemovie(i);printf(按任意键继续!\n);getch();}printf(全部影片信息输出完毕。\n);printf(按任意键返回。);getch();}voidoutputmovies(intfn){inti,n;printf(全部影片的简要信息:\n);for(i=0;ifn;i++){printf(影片名称\n);printf(%s\n,ffilm[i].fname);printf(放映厅编号\n);printf(%4d\n,ffilm[i].fnumber);printf(放映日期\n);printf(%hd.%hd.%hd\n,ffilm[i].f_date.year,ffilm[i].f_date.month,ffilm[i].f_date.day);printf(放映时间\n);printf(%d.%d\n,ffilm[i].f_time.hour,ffilm[i].f_time.minute);n=ffilm[i].fnumber;printf(购票数\n);printf(%5d\n,ffilm[i].fbuy[n-1]);}}//*****************************************************************//功能:实现买票操作//参数:fn表示购得票数m表示第m个人买票//返回:无//主要思路:先输入要购买电影票的名称,找到后进行买票操作//**************************************************************voidbuyticket(intfn){inti,k=-1,n;structtmd;charfna[20],c='y';while(c=='y'||c=='Y'){printf(以下是近期电影的详细信息:\n);printf(--------------------------\n);outputmovies(fn);printf(请输入要购买票的影片名称:);gets(fna);for(i=0;iN;i++)if(strcmp(ffilm[i].fname,fna)==0){k=i;break;}if(k=0){printf(请输入所选择的放映厅:);scanf(%d,&n);if(ffilm[i].fbuy[n-1]M){ffilm[i].fbuy[n-1]++;_getsystime(&d);if(d.tm_year/100=1)ffilm[i].bor_time.year=2000+d.tm_year%100;else{ffilm[i].bor_time.year=1999+d.tm_year;ffilm[i].bor_time.month=d.tm_mon+1;ffilm[i].bor_time.day=d.tm_mday;saveonemovie(i);}printf(您已成功购票!);}elseprintf(\n您输入的影片已无票!);}elseprintf(\n无此影片!);printf(\n继续买票吗?(y\n));c=getchar();getchar();}printf(\n按任意键继续!\n);getch();}//***************************************************************//功能:实现退票操作//参数:a[]表示电影名称m表示第m部影片//主要思路:先输入要退电影票的名称,找到后进行退票操作//**************************************************************voidreturnticket(intfn,intm){inti,k=-1,n;structtmd;charfna[20],c='y';while(c=='y'||c=='Y'){printf(请输入要退票的影片名称:);gets(fna);for(i=0;iN;i++)if(strcmp(ffilm[i].fname,fna)==0){k=i;break;}if(k=0){printf(请输入所选择的放映厅:);scanf(%d,&n);ffilm[i].fbuy[n-1]--;_getsystime(&d);if(d.tm_year/100=1)ffilm[i].bor_time.year=2000+d.tm_year%100;else{ffilm[i].bor_time.year=1999+d.tm_year;ffilm[i].bor_time.month=d.tm_mon+1;ffilm[i].bor_time.day=d.tm_mday;saveonemovie(i);}printf(您已成功退票!);}elseprintf(\n无此影片!);printf(\n继续退票吗?(y\n));c=getchar();getchar();}printf(\n按任意键继续\n);getch();}/*intsearchnamemovie(inti){intj,s=0;printf(观看人数);for(j=0;jN;j++)s=s+ffilm[i].fbuy[j];printf(%4d,s);return(s);}intsearchdatemovie(inti){intj,s=0,p;

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功