您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么用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語言實現餐飲結賬管理系統”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。