怎么用C语言实现餐饮结账管理系统

本篇内容主要讲解“怎么用C语言实现餐饮结账管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C语言实现餐饮结账管理系统”吧!

黔西网站建设公司成都创新互联,黔西网站设计制作,有大型网站制作公司丰富经验。已为黔西上千多家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的黔西做网站的公司定做!

使用C语言编写餐饮结账管理系统课程设计,包含设计报告,源代码.

#include<stdio.h>#include<string.h>#include<stdlib.h>#define M 30struct bill{ int num;       //编号 int time[4];     //时间 int table;      //台面号 int count;      //顾客数量 char name[20];    //服务生姓名 int money;      //实收金额}bill[M];int N;/*菜单*/void menu(){  char c; void input(); void modify(); void deleter(); void search2(); void search3(); void sort(); void income();  void number(); 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) {    case '1': {input();getchar();break;}    case '2': {modify();getchar();break;}    case '3': {deleter();getchar();break;}      case '4': {search2();getchar();break;}    case '5': {search3();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中*/void input()     {  FILE *fp;  int i;  if((fp=fopen("bill","w"))==NULL)  {   printf("cannot open the file\n");   return;  }  printf("输入信息个数(0-%d)?:",M-1);  scanf("%d",&N);  printf("请输入数据:\n");  for(i=0;i<N;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("实收金额:");  scanf("%d",&bill[i].money);  }   for(i=0;i<N;i++)  {   if(fwrite(&bill[i],sizeof(struct bill),1,fp)!=1)  {  printf("file write error\n");  return;  }  }  fclose(fp);}/*从文件中读取信息并存入数组sbill[N]*/void readFromFile(){  int i; FILE *fp;  if((fp=fopen("bill","rb"))==NULL)  {   printf("cannot open the file\n");   return;  }  for(i=0;i<N;i++)  fread(&bill[i],sizeof(struct bill),1,fp);  fclose(fp);}/*保存函数*/void save(){ FILE *fp;  int i;  if((fp=fopen("bill","w"))==NULL)  {   printf("cannot open the file\n");   return;  }  for(i=0;i<N;i++)  {  if(bill[i].num!='')    if(fwrite(&bill[i],sizeof(struct bill),1,fp)!=1)  {   printf("file write error\n");   return;  }  }  fclose(fp);}/*信息全部显示*/void display_all(){ int i;  readFromFile(); printf("全部信息:\n"); for(i=0;i<N;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"); }}/*单个信息显示*/void display(int 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);}/* 修改函数调用函数*/int modify_a(int i){  int c,w1;  printf("\n修改选项=>\n\n 1).编号 2).时间 3).台面号 4).顾客数量 5).接待服务生 6).实收金额 7).取消并返回");  printf("请选择?: [ ]");  scanf("%d",&c);  if(c>7||c<1)  {  printf("\n选择错误,请重试");  getchar(); } do  { switch(c)  { case 1: printf("编号:"); scanf("%d",&bill[i].num); break; case 2:printf("时间:") ; scanf("%d.%d%d:%d",&bill[i].time[0],&bill[i].time[1],&bill[i].time[2],&bill[i].time[3]);break;case 3: printf("台面号:"); scanf("%d",&bill[i].table); break;   case 4: printf("顾客数量:"); scanf("%d",&bill[i].count); break;   case 5: printf("接待服务生:"); scanf("%s",bill[i].name); break;   case 6: printf("实收金额:"); scanf("%d",&bill[i].money); break;  case 7: menu();   } printf("\n现在:\n");  display(i);  printf("\n确定?\n 1).是 2).不,重新修改 3).返回不保存 [ ");  scanf("%d",&w1); }while(w1==2);  return(w1);}/*修改信息*/void modify(){  int i,n,k,w0=1,w1;   readFromFile();  do {  k=-1;    display_all();   do {   printf("\n输入要修改的编号数\n编号:");      scanf("%d",&n);      for(i=0;i<N;i++)      if(bill[i].num-n==0)   {   k=i;   }     if(k==-1)    printf("\n\n没有记录请重新输入!"); }while(k==-1); w1=modify_a(k);  if(w1==1)  { printf("\n 修改成功 \n是否继续? 1).是 2).保存返回 [");    save();     scanf("%d",&w0);  }  }while(w0==1);  }/*删除记录*/void deleter(){ int i,k,n,w0,w1;  readFromFile();   do { k=-1; display_all(); do {   printf("\n输入要删除的编号:\n");   scanf("%d",&n);      for(i=0;i<N;i++)    if(n-bill[i].num==0)  {    k=i;  }   if(k==-1)  printf("\n无记录,请重新输入!\n");   }while(k==-1);    display(i); printf("\n确定删除? 1)是 2)返回\n ["); scanf("%d",&w0);  if(w0==1) {  for(i=k;i<N;i++)  {  bill[i]=bill[i+1];    save();  } } else break;    display_all(); printf("\n删除成功,是否继续? 1)是 2)返回 [ "); scanf("%d",&w1); }while(w1==1);}/*台面号查询*/void search2(){  int i,j,w0;  int number;  readFromFile();  do  {  j=-1;  printf("\n请输入台面号查询:");    scanf("%d",&number);    for(i=0;i<N;i++)  {      if(number==bill[i].table)   {   j=i;        display(j);   printf("\n");   }  }     if(j==-1)    printf("无此号!");    printf("\n继续? 1)是 2)返回 [");    scanf("%d",&w0);  }while(w0==1);}/*接待服务生查询*/void search3(){  char a[20];  int i,j,w0;  do  {  j=-1;  printf("\n请输入接待服务生姓名查询:");    scanf("%s",a);    for(i=0;i<N;i++)  {      if(strcmp(bill[i].name,a)==0)   {    j=i;        display(j);   printf("\n");   }   }     if(j==-1)    printf("无此姓名!");    printf("\n继续? 1)是 2)返回 [ ");    scanf("%d",&w0);  }while(w0==1);}/*金额排序*/void sort(){ int i,j,w0; struct bill t;  readFromFile();  printf("\n\n"); for(j=0;j<N-1;j++) for(i=0;i<N-1-j;i++)  if(bill[i].money<bill[i+1].money)  {  t=bill[i];        bill[i]=bill[i+1];     /*调换bill[i]与bill[i+1]的值*/        bill[i+1]=t;  }  printf("由大到小为:\n"); for(i=0;i<N;i++) { display(i); printf("\n"); }  do { printf("\n返回? 1)是 2)否"); scanf("%d",&w0); }while(w0==2);}/*总收入统计*/void income(){ int i,sum=0,w0;  readFromFile(); for(i=0;i<N;i++)   sum=sum+bill[i].money;  printf("\n\n"); printf("总收入:%d",sum); do { printf("\n返回? 1)是 2)否"); scanf("%5d",&w0); }while(w0==2);}/*顾客总数统计*/void number(){  int i,number=0,w0;  readFromFile(); for(i=0;i<N;i++)   number=number+bill[i].count; printf("\n\n"); printf("顾客总数:%d",number); do { printf("\n返回? 1)是 2)否"); scanf("%5d",&w0); }while(w0==2);}/*主函数*/void main(){ menu();}

到此,相信大家对“怎么用C语言实现餐饮结账管理系统”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

网站栏目:怎么用C语言实现餐饮结账管理系统
文章起源:https://www.cdcxhl.com/article48/jsdihp.html

成都网站建设公司_创新互联,为您提供全网营销推广营销型网站建设网站维护建站公司网站设计品牌网站设计

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

微信小程序开发