当前位置:文档之家› 饭店管理系统实验报告(c语言)

饭店管理系统实验报告(c语言)

饭店管理系统一.需求分析设计一个饭店的系统用来实现预约订餐等基本功能。

饭店管理系统的主要功能:1.餐饮管理包括提前预约、点菜的功能;通过这项功能从而能够使得客户在到饭店以前就可以提前预约好,从而可以使客户能够在未到饭店以前就可以约定好了.2.收银管理为结账.3.查询管理包括账单查询和预约查询。

预约查询可以查询客户已经预约的情况。

从而当预约的客户过来时能够方便的验证。

账单查询能够方便的显示出各个桌子的消费情况。

二.思路分析首先编写一个程序用来存储本店的菜单以及菜的价格,这样就可以快捷方便的调用出来,接下来开始编写主要的程序。

本系统总共有三个模块,分辨是餐饮管理,查询管理,以及收银管理,餐饮管理用来存储顾客的预约信息和点菜的信息,查询管理用来查看顾客的预约信息,从而来确认以及每个桌子上的消费信息,最后收银管理用来结账。

三.概要设计四.详细设计菜单设定程序代码#include<stdio.h>#define size 15struct caidan_type{char cainame[15];int jiage;}caidan[10000];void save(){FILE *fp;int i;if((fp=fopen("caidan_list","wb"))==NULL) {printf("cannot open file");return;}for(i=0;i<size;i++){if( fwrite(&caidan[i],sizeof(struct caidan_type),1,fp)!=1) printf ("file write error\n");}fclose(fp);}void main(){int i;for(i=0;i<size;i++){scanf("%s%d",caidan[i].cainame,&caidan[i].jiage);save();}}饭店系统代码#include<stdio.h>#define size 10000struct yuyuexitong_type//定义顾客的预约信息{char name[10];int mobilenum;int time;}yuyue[10000];struct caidan_type//定义菜单的信息{char cainame[15];int jiage;}caidan[10000];struct diancai_type//定义每个桌子点菜的信息{int zhuoweihao;char caiming[15];int jiage;}dian[1000];void save(int i,int f)//储存预约人信息{FILE *fp;if((fp=fopen("yuyu_list","wb"))==NULL){printf("cannot open file");return;}for(i=0;i<f;i++){if( fwrite(&yuyue[i],sizeof(struct yuyuexitong_type),1,fp)!=1) printf ("file write error\n");}fclose(fp);}void savedian(int g,int e)//储存每个桌子的点菜的信息{FILE *fp;if((fp=fopen("diancai_list","wb"))==NULL){printf("cannot open file");return;}for(g=0;g<e;g++){if( fwrite(&dian[g],sizeof(struct diancai_type),1,fp)!=1)printf ("file write error\n");}fclose(fp);}void caidanxianshi()//显示菜单{int i;FILE *fp;fp=fopen("caidan_list","rb");for(i=0;i<15;i++){fread(&caidan[i],sizeof(struct caidan_type),1,fp);printf("%-12s %-12d\n",caidan[i].cainame,caidan[i].jiage);}fclose(fp);}void xianshi(int f)//显示预约者的信息{int i;FILE *fp;fp=fopen("yuyu_list","rb");//显示每个桌子的点菜的信息for(i=0;i<f;i++){fread(&yuyue[i],sizeof(struct yuyuexitong_type),1,fp);printf("%-12s %-12d %-12d\n",yuyue[i].name,yuyue[i].mobilenum,yuyue[i].time);}fclose(fp);}void diancaixianshi(int h){int i;FILE *fp;fp=fopen("diancai_list","rb");for(i=0;i<h;i++){fread(&dian[i],sizeof(struct diancai_type),1,fp);printf("%-12d %-12s %-12d\n",dian[i].zhuoweihao,dian[i].caiming,dian[i].jiage);}fclose(fp);}void main()//主函数{int i=0,n,f,nn,m,a=0,b,d,e,g,h=0,j,k,l;long z;re: printf("请输入6位密码进入系统\n");//输入密码用来组织非本店人员的进入scanf("%d",&z);if(z==695730){ printf("进入饭店管理系统\n");kaishi: printf("功能选项1.餐饮管理 2.查询管理3.收银管理4.退出系统\n");scanf("%d",&nn);if(nn==1)//进入餐饮管理功能{ss: printf("餐饮管理选项1.预约记录2.桌台点菜3.退出\n");scanf("%d",&n);f=i;b=a;if(n==1){printf("记录预约信息\n");printf("姓名手机后四位时间(点)\n");scanf("%s%d%d",yuyue[i].name,&yuyue[i].mobilenum,&yuyue[i].time);save(i,f);printf("记录完毕\n");i++;goto ss;}if(n==2){ printf("分配桌位号为(总共有35个桌子)\n");scanf("%d",&d);printf("显示菜单\n");printf("菜名价格(元)\n");caidanxianshi();printf("记录客人点的菜\n");printf("所点菜的数目:");scanf("%d",&e);printf("桌位号菜名价格(元)\n");for(g=h;g<h+e;g++){scanf("%d%s%d",&dian[g].zhuoweihao,dian[g].caiming,&dian[g].jiage);savedian(g,e);}printf("记录完毕\n");h=h+e;goto ss;}if(n==3){goto kaishi;}else{printf("输入有误请重新输入\n");goto ss;}}if(nn==2)//进入查询管理功能{mm: printf("功能选项1.预约信息查询 2.消费查询3.退出\n");scanf("%d",&m);if(m==1){printf("显示预约信息\n");printf("姓名手机后四位时间(点)\n");xianshi(f);goto mm;}if(m==2){printf("显示消费信息\n");printf("桌位号菜名价格(元)\n");diancaixianshi(h);goto mm;}if(m==3){goto kaishi;}else{printf("输入有误请重新输入\n");goto mm;}}if(nn==3)//进入收银管理功能{l=0;printf("请输入要结账的桌位号\n");scanf("%d",&j);for(k=0;k<g;k++){if(j==dian[k].zhuoweihao){l=dian[k].jiage+l;}}printf("%d",l);printf("元\n");printf("收银成功\n");goto kaishi;}if(nn==4){printf("退出系统\n");}else{printf("输入有误请重新输入\n");goto kaishi;}}else{printf("输入有误请重新输入\n");goto re;}}五.测试数据及其结果分析总体测试中基本能够符合要求主要不好的原因还是界面太难看以及操作有点繁琐。

相关主题