




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
結(jié)賬管理系統(tǒng)設(shè)計(jì)1計(jì)任務(wù)1.1設(shè)計(jì)題目的描述功能:餐飲結(jié)賬信息包括:編號(hào)、時(shí)間、臺(tái)面號(hào)、顧客數(shù)量、接待服務(wù)生、實(shí)收金額。試設(shè)計(jì)一餐飲結(jié)賬管理系統(tǒng),使之能提供以下功能:2查詢?yōu)g覽功能:按臺(tái)面號(hào)查詢、按接待服務(wù)生查詢;4統(tǒng)計(jì)總收入、顧客總數(shù)等功能。1.2設(shè)計(jì)要求(1)仔細(xì)審題,明確題目要求。(2)按照結(jié)構(gòu)化的程序設(shè)計(jì)思想,將程序模塊化,將相對(duì)獨(dú)立的功能寫(xiě)成函數(shù)。(3)要求編程、調(diào)試通過(guò)并演示;程序編寫(xiě)規(guī)范,添加適當(dāng)注釋。(4)按照課程設(shè)計(jì)報(bào)告的內(nèi)容和格式要求,撰寫(xiě)課程設(shè)計(jì)報(bào)告,并且打印。2設(shè)計(jì)方案說(shuō)明餐飲結(jié)賬信息包括:編號(hào)、時(shí)間、臺(tái)面號(hào)、顧客數(shù)量、接待服務(wù)生、實(shí)收金額。因此需要使用結(jié)構(gòu)體,而結(jié)賬信息又不止是一個(gè),所以使用結(jié)構(gòu)體數(shù)組,這里定義結(jié)structbill{minttime[4];inttable;intcount;//顧客數(shù)量2charname[20];intmoney;}bill[M];//服務(wù)生姓名//實(shí)收金額此函數(shù)為主菜單,從此處進(jìn)入其他模塊。3否否C=…………是執(zhí)行Modify是執(zhí)行voidinput()信息錄入,將錄入的信息存入文件bill中此函數(shù)將從鍵盤(pán)輸入的信息錄入文件bill中。保存并關(guān)閉文件voidreadFromFile()從文件中讀取信息并存入數(shù)組bill[30]此函數(shù)將文件bill中信息讀出并存入bill[]打打開(kāi)文件關(guān)閉文件44)函數(shù)voidsave()voidsave()/*保存函數(shù)*/此函數(shù)用于在修改與刪除后保存數(shù)據(jù)。打打開(kāi)文件關(guān)閉文件5)函數(shù)voiddisplay_all()voiddisplayall顯示通過(guò)此函數(shù)可顯示所有輸入信息。6)函數(shù)voiddisplay(inti)voiddisplay(inti)單個(gè)信息顯示i為要修改的信息號(hào)從modify函數(shù)中讀入此函數(shù)用于在修改等功能后顯示第i個(gè)信息,用于核對(duì)。7)函數(shù)intmodify_a(inti)intmodify_a(inti)修改主函數(shù)時(shí)調(diào)用此函數(shù)此函數(shù)用于修改其中一個(gè)或多個(gè)信息,并返回一個(gè)數(shù)值用于確定是否修改。5錯(cuò)誤重試是否否輸入新信息c=…………voidmodify()修改信息主函數(shù)此函數(shù)用于修改其中一個(gè)信息并保存bill入數(shù)據(jù)n輸出無(wú)記錄是是k=i否69)函數(shù)voiddeleter()此函數(shù)用于刪除記錄中的一條信息。bill入信息um是無(wú)記錄display(i)是bill[i]=bill[i+1];save();k=i否否oidsearch此函數(shù)用于按臺(tái)面號(hào)查詢信息并輸出信息。bill入信息是無(wú)此號(hào)j=idisplay(j)否7此函數(shù)用于按接待服務(wù)生姓名查詢信息并顯示。bill信息是無(wú)此姓名j=idisplay(j)否12)函數(shù)voidsort()voidsort()金額排序此函數(shù)用于按金額對(duì)所有信息進(jìn)行排序并輸出。關(guān)鍵變量structbillt為中間變量,用于交換bill[i]與bill[i+1]的值。8bill文件bill[i].money>bill[i+1].money)是否t=bill[i];bill[i]=bill[i+1];bill[i+1]=t;不變i=0i<N-1-ji++j=0j<N-1j++i=0i<Ni++income此函數(shù)用于統(tǒng)計(jì)總收入并輸出。bill取文件i=0;i<N;i++14)函數(shù)顧客總數(shù)統(tǒng)計(jì)此函數(shù)用于統(tǒng)計(jì)顧客總數(shù)。9bill取文件i=0;i<N;i++#include<stdio.h>#include<string.h>#include<stdlib.h>#defineM30structbill{minttime[4];inttable;intcount;charname[20];intmoney;}bill[M];/*菜單*/voidmenu()//顧客數(shù)量//服務(wù)生姓名//實(shí)收金額{voidvoidvoidvoidvoidvoidvoidvoid{utmodify();deleter();search1();search2();sort;incomenumber();printf("\n\n\n");printf("<<<<餐飲結(jié)賬管理系統(tǒng)>>>>\n");printf("----------------------------------------------------\n");printf("\n\n");printf0退出----\n\n");----\n\n");printf("---------------------------------------------------\n");printf("\n\n");printf("請(qǐng)選擇服務(wù)(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':{exit(0);printf("\n");}default:{c=getchar();}}}while(1);}voidinput(){FILE*fp;inti;if((fp=fopen("bill","w"))==NULL){printf("cannotopenthefile\n");return;}printf("輸入信息個(gè)數(shù)(0-%d)?:",M-1);scanf("%d",&N);printf("請(qǐng)輸入數(shù)據(jù):\n");for(i=0;i<N;i++){printf("輸入賬單%d信息:\n",i+1);printf("編號(hào):");scanf("%d",&bill[i].num);printf("時(shí)間(月.日時(shí):分):");scanf("%d%d%d%d",&bill[i].time[0],&bill[i].time[1],&bill[i].time[2],&bill[i].time[3]);printf("臺(tái)面號(hào):");scanf("%d",&bill[i].table);printf("顧客數(shù)量:");scanf("%d",&bill[i].count);printf("接待服務(wù)生:");scanf("%s",bill[i].name);printf("實(shí)收金額:");scanf("%d",&bill[i].money);}for(i=0;i<N;i++){if(fwrite(&bill[i],sizeof(structbill),1,fp)!=1){printf("filewriteerror\n");return;}}fclose(fp);}/*從文件中讀取信息并存入數(shù)組sbill[N]*/voidreadFromFile(){inti;FILE*fp;if((fp=fopen("bill","rb"))==NULL){printf("cannotopenthefile\n");return;}for(i=0;i<N;i++)fread(&bill[i],sizeof(structbill),1,fp);fclose(fp);}/*保存函數(shù)*/voidsave(){FILE*fp;inti;if((fp=fopen("bill","w"))==NULL){printf("cannotopenthefile\n");return;}for(i=0;i<N;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();for(i=0;i<N;i++){生:%s實(shí)施金額:%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");}}/*單個(gè)信息顯示*/voiddisplay(inti){額:%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);}/*修改函數(shù)調(diào)用函數(shù)*/intmodify_a(inti){intcw;printf("\n修改選項(xiàng)=>\n\n1).編號(hào)2).時(shí)間3).臺(tái)面號(hào)4).顧客數(shù)量5).接待服務(wù)生6).實(shí)收金額7).取消并返回");printf("請(qǐng)選擇?:[]");scanf("%d",&c);{printfn擇錯(cuò)誤,請(qǐng)重試");getchar();}{switch(c){case1:printf("編號(hào):");scanf("%d",&bill[i].num);break;case2:printf("時(shí)間:");scanf("%d.%d%d:%d",&bill[i].time[0],&bill[i].time[1],&bill[i].time[2],&bill[i].time[3]);break;case3:printf("臺(tái)面號(hào):");scanf("%d",&bill[i].table);break;case4:printf("顧客數(shù)量:");scanf("%d",&bill[i].count);break;case5:printf("接待服務(wù)生:");scanf("%s",bill[i].name);break;case6:printf("實(shí)收金額:");scanf("%d",&bill[i].money);break;case7:menu();}display(i);printf("\n確定?\n1).是2).不,重新修改3).返回不保存[");scanf("%d",&w1);}while(w1==2);return(w1);}/*修改信息*/voidmodify(){inti,n,k,w0=1,w1;readFromFile();{k=-1;display_all();{scanf("%d",&n);for(i=0;i<N;i++)if(bill[i].num-n==0){k=i;}if(k==-1)printf("\n\n沒(méi)有記錄請(qǐng)重新輸入!");}while(k==-1);w1=modify_a(k);ifw=1){printf("\n修改成功\n是否繼續(xù)?1).是2).保存返回[");save;scanf("%d",&w0);}}while(w0==1);}/*刪除記錄*/voiddeleter(){inti,k,n,w0,w1;readFromFile();{k=-1;display_all();{scanf("%d",&n);for(i=0;i<N;i++)if(n-bill[i].num==0){k=i;}if(k==-1)}while(k==-1);display(i);scanf("%d",&w0);ifw=1){for(i=k;i<N;i++){bill[i]=bill[i+1];save;}}elsebreak;display_all();nscanf("%d",&w1);}while(w1==1);}/*臺(tái)面號(hào)查詢*/voidsearch1(){inti,j,w0;intnumber;readFromFile();{j=-1;printfn請(qǐng)輸入臺(tái)面號(hào)查詢:");scanf("%d",&number);for(i=0;i<N;i++){if(number==bill[i].table){display(j);printf("\n");}}if(j==-1)printf("無(wú)此號(hào)!");printf("\n繼續(xù)?1)是2)返回[");scanf("%d",&w0);}while(w0==1);}/*接待服務(wù)生查詢*/voidsearch2(){chara[20];inti,j,w0;{j=-1;printf("\n請(qǐng)輸入接待服務(wù)生姓名查詢:");scanf("%s",a);for(i=0;i<N;i++){if(strcmp(bill[i].name,a)==0){display(j);printf("\n");}}if(j==-1)printf("無(wú)此姓名!");printf("\n繼續(xù)?1)是2)返回[");scanf("%d",&w0);}while(w0==1);}/*金額排序*/voidsort(){inti,j,w0;structbillt;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+1]=t;}printf("由大到小為:\n");for(i=0;i<N;i++){display(i);printf("\n");}{printfn1)是2)否");scanf("%d",&w0);}while(w0==2);}/*總收入統(tǒng)計(jì)*/voidincome(){inti,sum=0,w0;readFromFile();for(i=0;i<N;i++)sum=sum+bill[i].money;printf("\n\n");printf("總收入:%d",sum);{printfn1)是2)否");scanf("%5d",&w0);}while(w0==2);}/*顧客總數(shù)統(tǒng)計(jì)*/voidnumber(){inti,number=0,w0;readFromFile();for(i=0;i<N;i++)number=number+bill[i].count;printf("\n\n");printf("顧客總數(shù):%d",number);{printfn1)是2)否");scanf("%5d",&w0);}while(w0==2);}/*主函數(shù)*/voidmain(){menu();}4程序測(cè)試4.1測(cè)試數(shù)據(jù)說(shuō)明測(cè)試數(shù)據(jù)包括:編號(hào)、時(shí)間、臺(tái)面號(hào)、顧客數(shù)量、接待服務(wù)生、實(shí)收金額。接接待服務(wù)生lili(int數(shù)組)實(shí)收金額Int顧客數(shù)量Int26835Int53241號(hào)123454.2輸出結(jié)果說(shuō)明1)菜單界面,進(jìn)入系統(tǒng)首先顯示主菜單,之后可通過(guò)選擇不同的數(shù)字來(lái)運(yùn)用此餐飲結(jié)各項(xiàng)功能。2)錄入界面,選擇1后根據(jù)提示輸入需要輸入的信息個(gè)數(shù),之后可依次錄入幾條不同5)按服務(wù)生姓名查詢,選擇5后查詢服務(wù)生li,之后返回。6)按金額排序,選擇6后可按金額從大到小排序顯示,之后返回。7)求總收入,選擇7后可
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司生活活動(dòng)策劃方案
- 公司聚會(huì)生日活動(dòng)方案
- 公司短跑比賽活動(dòng)方案
- 公司瑜伽興趣班策劃方案
- 公司文明誠(chéng)信活動(dòng)方案
- 2025年藥品安全管理考試試題及答案
- 2025年醫(yī)療衛(wèi)生系統(tǒng)綜合能力考試試卷及答案
- 2025年心理治療師認(rèn)證考試試卷及答案
- 2025年現(xiàn)代職業(yè)教育理論與實(shí)踐考試試卷及答案
- 2025年特殊教育教師資格考試卷及答案
- 2024年秋兒童發(fā)展問(wèn)題的咨詢與輔導(dǎo)終考期末大作業(yè)案例分析1-5答案
- 公安輔警合同模板
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)教育(2023秋學(xué)期)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 中建2024裝配式建筑+鋁模一體化施工技術(shù)手冊(cè)
- 農(nóng)作物四級(jí)種子生產(chǎn)技術(shù)規(guī)程 第1部分:小麥DB41-T 293.1-2014
- TSG ZF001-2006《安全閥安全技術(shù)監(jiān)察規(guī)程》
- 自動(dòng)尋優(yōu)控制系統(tǒng)在生料立磨中的應(yīng)用實(shí)踐
- 土地延期合同范本
- 四川省綿陽(yáng)市涪城區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期開(kāi)學(xué)考試語(yǔ)文試題(解析版)
- DL∕T 796-2012 風(fēng)力發(fā)電場(chǎng)安全規(guī)程
- 部編版八年級(jí)升九年級(jí)歷史暑假預(yù)習(xí)知識(shí)清單(填空+答案)
評(píng)論
0/150
提交評(píng)論