国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言實現餐飲結賬管理系統

2020-01-26 11:44:32
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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 search1(); void search2(); 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': {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中*/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!='/0')    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 search1(){  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 search2(){  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語言餐飲結賬管理系統

更多學習資料請關注專題《管理系統開發》。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 都江堰市| 屏山县| 佛坪县| 诸暨市| 固安县| 温宿县| 丰县| 叶城县| 商南县| 舒兰市| 郯城县| 龙游县| 新民市| 安阳县| 金阳县| 和平区| 阿瓦提县| 丁青县| 垫江县| 新疆| 平乐县| 满城县| 颍上县| 逊克县| 乌拉特前旗| 夏津县| 米脂县| 金湖县| 杭州市| 肇源县| 太原市| 葵青区| 合阳县| 罗江县| 克什克腾旗| 泰州市| 新乡市| 奉新县| 平顶山市| 科技| 尚义县|