您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > C语言餐饮结账管理系统设计
C语言程序设计课程设计报告设计题目:餐饮结账管理系统设计11设计任务1.1设计题目的描述功能:餐饮结账信息包括:编号、时间、台面号、顾客数量、接待服务生、实收金额。试设计一餐饮结账管理系统,使之能提供以下功能:1结账信息录入、修改、删除功能;2查询浏览功能:按台面号查询、按接待服务生查询;3按照实收金额排序。4统计总收入、顾客总数等功能。1.2设计要求(1)仔细审题,明确题目要求。(2)按照结构化的程序设计思想,将程序模块化,将相对独立的功能写成函数。(3)要求编程、调试通过并演示;程序编写规范,添加适当注释。(4)按照课程设计报告的内容和格式要求,撰写课程设计报告,并且打印。2设计方案说明2.1数据的存储结构餐饮结账信息包括:编号、时间、台面号、顾客数量、接待服务生、实收金额。因此需要使用结构体,而结账信息又不止是一个,所以使用结构体数组,这里定义结构体structbill,定义数组bill[M]。structbill{intnum;//编号inttime[4];//时间inttable;//台面号intcount;//顾客数量2charname[20];//服务生姓名intmoney;//实收金额}bill[M];2.2函数之间的调用关系说明2.3函数说明1)函数voidmenu()voidmenu()菜单函数此函数为主菜单,从此处进入其他模块。变量c:使用c选择进入其它功能。mainmenuInputmodifydeletersearchsearch2sortincomenumbermodify_asaveDisplay_allreadFromFiledisplay32)函数voidinput()voidinput()信息录入,将录入的信息存入文件bill中此函数将从键盘输入的信息录入文件bill中。使用scanf输入结构体中各个量;3)函数voidreadFromFile()voidreadFromFile()从文件中读取信息并存入数组bill[30]此函数将文件bill中信息读出并存入bill[]C=1?是否C=2?执行是否Input执行C=…………Modify打开文件bill成功选择输入的信息个数N输入第i个信息直到i=N保存并关闭文件打开文件读第i个文件直到i=N关闭文件44)函数voidsave()voidsave()/*保存函数*/此函数用于在修改与删除后保存数据。5)函数voiddisplay_all()voiddisplay_all()信息全部显示通过此函数可显示所有输入信息。6)函数voiddisplay(inti)voiddisplay(inti)单个信息显示i为要修改的信息号从modify函数中读入此函数用于在修改等功能后显示第i个信息,用于核对。7)函数intmodify_a(inti)intmodify_a(inti)修改主函数时调用此函数此函数用于修改其中一个或多个信息,并返回一个数值用于确定是否修改。变量c用于确定修改项目打开文件写入第i个文件直到i=N关闭文件readFromFile()读取文件中信息printf显示第i个信息直到i=N用printf显示第i个信息的所有数据58)函数voidmodify()voidmodify()修改信息主函数此函数用于修改其中一个信息并保存从文件bill中读入数据w0==1k==-1输入n的值循环判断bill[i].num-n==0?是否k=ik=-1输出无记录w1=modify_a(k);w1=1?是否保存输入w0值结束从键盘输入一个C的值c7||c1是否错误w1==2重试c=1是否输入新信息c=…………显示修改后第i个信息输入w1的值返回值w169)函数voiddeleter()voiddeleter()删除记录此函数用于删除记录中的一条信息。10)函数voidsearch1()voidsearch1()台面号查询此函数用于按台面号查询信息并输出信息。从文件bill中读入信息w1==1k==-1输入n循环判断n-bill[i].num==0?是否k=ik=-1无记录display(i)输入w0w0=1?是否bill[i]=bill[i+1];save();结束输入w1值从文件bill中读入信息w0==1输入number循环判断number==bill[i].table?是否j=ij=-1display(j)无此号输入w0的值711)函数voidsearch2()voidsearch2()接待服务生查询此函数用于按接待服务生姓名查询信息并显示。12)函数voidsort()voidsort()金额排序此函数用于按金额对所有信息进行排序并输出。关键变量structbillt为中间变量,用于交换bill[i]与bill[i+1]的值。从文件bill中读入信息w0==1输入a[20]循环判断strcmp(bill[i].name,a)==0?是否j=ij=-1display(j)无此姓名输入w0的值813)函数voidincome()voidincome()总收入统计此函数用于统计总收入并输出。关键变量sum用于统计总收入14)函数voidnumber()voidnumber()顾客总数统计此函数用于统计顾客总数。关键变量number用于统计顾客总数从文件bill中读取文件bill[i].moneybill[i+1].money)是否t=bill[i];bill[i]=bill[i+1];bill[i+1]=t;不变i=0iN-1-ji++j=0jN-1j++display(i)i=0iNi++w0==2输入w0的值判断是否返回从文件bill中读取文件sum=sum+bill[i].moneyi=0;iN;i++输出sumw0==2输入w0的值判断是否返回93设计题目源代码清单#includestdio.h#includestring.h#includestdlib.h#defineM30structbill{intnum;//编号inttime[4];//时间inttable;//台面号intcount;//顾客数量charname[20];//服务生姓名intmoney;//实收金额}bill[M];intN;/*菜单*/voidmenu()从文件bill中读取文件number=number+bill[i].count;i=0;iN;i++输出numberw0==2输入w0的值判断是否返回10{charc;voidinput();voidmodify();voiddeleter();voidsearch1();voidsearch2();voidsort();voidincome();voidnumber();do{printf(\n\n\n);printf(餐饮结账管理系统\n);printf(----------------------------------------------------\n);printf(\n\n);printf(---1录入2修改3删除----\n\n);printf(---4台面号查询5接待服务生查询----\n\n);printf(---6金额排序7总收入8顾客总数----\n\n);printf(---0退出----\n\n);printf(---------------------------------------------------\n);printf(\n\n);printf(请选择服务(0-8));c=getchar();switch(c){11case'1':{input();getchar();break;}case'2':{modify();getchar();break;}case'3':{deleter();getchar();break;}case'4':{search1();getchar();break;}case'5':{search2();getchar();break;}case'6':{sort();getchar();break;}case'7':{income();getchar();break;}case'8':{number();getchar();break;}case'0':{printf(\n谢谢使用,再见!);exit(0);printf(\n);}default:{printf(\n输入有误,重试!:);c=getchar();}}}while(1);}/*信息录入,将录入的信息存入文件bill中*/voidinput(){12FILE*fp;inti;if((fp=fopen(bill,w))==NULL){printf(cannotopenthefile\n);return;}printf(输入信息个数(0-%d)?:,M-1);scanf(%d,&N);printf(请输入数据:\n);for(i=0;iN;i++){printf(输入账单%d信息:\n,i+1);printf(编号:);scanf(%d,&bill[i].num);printf(时间(月.日时:分):);scanf(%d%d%d%d,&bill[i].time[0],&bill[i].time[1],&bill[i].time[2],&bill[i].time[3]);printf(台面号:);scanf(%d,&bill[i].table);printf(顾客数量:);scanf(%d,&bill[i].count);printf(接待服务生:);scanf(%s,bill[i].name);printf(实收金额:);13scanf(%d,&bill[i].money);}for(i=0;iN;i++){if(fwrite(&bill[i],sizeof(structbill),1,fp)!=1){printf(filewriteerror\n);return;}}fclose(fp);}/*从文件中读取信息并存入数组sbill[N]*/voidreadFromFile(){inti;FILE*fp;if((fp=fopen(bill,rb))==NULL){printf(cannotopenthefile\n);return;}for(i=0;iN;i++)fread(&bill[i],sizeof(structbill),1,fp);fclose(fp);}14/*保存函数*/voidsave(){FILE*fp;inti;if((fp=fopen(bill,w))==NULL){printf(cannotopenthefile\n);return;}for(i=0;iN;i++){if(bill[i].num!='\0')if(fwrite(&bill[i],sizeof(structbill),1,fp)!=1){printf(filewriteerror\n);return;}}fclose(fp);}/*信息全部显示*/voiddisplay_all(){inti;readFromFile();15printf(全部信息:\n);for(i=0;iN;i++){printf(编号:%d时间:%d.%d%d:%d台面号:%d顾客数量:%d接待服务生:%s实施金额:%d,bill[i].num,bill[i].time[0],bill[i].time[1],bill[i].time[2],bill[i].time[3],bill[i].table,bill[i].count,bill[i].name,bill[i].money);printf(\n);}}/*单个信息显示*/voiddisplay(inti){printf(编号:%d时间:%d%d%d%d台面号:%d顾客数量:%d接待服务生:%s实施金额:%d,bill[i].num,bill[i].time[0],bill[i].time[1
本文标题:C语言餐饮结账管理系统设计
链接地址:https://www.777doc.com/doc-340103 .html