版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、c語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目:餐飲結(jié)賬管理系統(tǒng)設(shè)計(jì) 1 設(shè)計(jì)任務(wù)1.1 設(shè)計(jì)題目的描述功能:餐飲結(jié)賬信息包括:編號(hào)、時(shí)間、臺(tái)面號(hào)、顧客數(shù)量、接待服務(wù)生、實(shí)收金額。試設(shè)計(jì)一餐飲結(jié)賬管理系統(tǒng),使之能提供以下功能:1結(jié)賬信息錄入、修改、刪除功能;2查詢?yōu)g覽功能:按臺(tái)面號(hào)查詢、按接待服務(wù)生查詢;3 按照實(shí)收金額排序。4統(tǒng)計(jì)總收入、顧客總數(shù)等功能。1.2 設(shè)計(jì)要求(1)仔細(xì)審題,明確題目要求。(2)按照結(jié)構(gòu)化的程序設(shè)計(jì)思想,將程序模塊化,將相對(duì)獨(dú)立的功能寫成函數(shù)。(3)要求編程、調(diào)試通過并演示;程序編寫規(guī)范,添加適當(dāng)注釋。(4)按照課程設(shè)計(jì)報(bào)告的內(nèi)容和格式要求,撰寫課程設(shè)計(jì)報(bào)告,并且打印。2 設(shè)計(jì)
2、方案說明2.1 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)餐飲結(jié)賬信息包括:編號(hào)、時(shí)間、臺(tái)面號(hào)、顧客數(shù)量、接待服務(wù)生、實(shí)收金額。因此需要使用結(jié)構(gòu)體,而結(jié)賬信息又不止是一個(gè),所以使用結(jié)構(gòu)體數(shù)組,這里定義結(jié)構(gòu)體struct bill,定義數(shù)組billm。struct billint num; /編號(hào)int time4; /時(shí)間int table; /臺(tái)面號(hào)int count; /顧客數(shù)量char name20; /服務(wù)生姓名int money; /實(shí)收金額billm;2.2函數(shù)之間的調(diào)用關(guān)系說明 main menuinputmodifydeletersearchsearch2sortincomenumbermodify_as
3、avedisplay_allreadfromfiledisplay2.3函數(shù)說明1)函數(shù) void menu() void menu() 菜單函數(shù) 此函數(shù)為主菜單,從此處進(jìn)入其他模塊。 變量 c :使用c選擇進(jìn)入其它功能。c=1?是 否 c=2?執(zhí)行 是 否input 執(zhí)行 c= modify 2)函數(shù)void input()void input() 信息錄入,將錄入的信息存入文件bill中此函數(shù)將從鍵盤輸入的信息錄入文件bill中。使用scanf輸入結(jié)構(gòu)體中各個(gè)量;打開文件bill成功選擇輸入的信息個(gè)數(shù)n輸入第i個(gè)信息直到i=n保存并關(guān)閉文件3)函數(shù) void readfromfile()v
4、oid readfromfile() 從文件中讀取信息并存入數(shù)組bill30此函數(shù)將文件bill中信息讀出并存入bill打開文件讀第i個(gè)文件直到i=n關(guān)閉文件4)函數(shù) void save()void save() /*保存函數(shù)*/此函數(shù)用于在修改與刪除后保存數(shù)據(jù)。打開文件寫入第i個(gè)文件直到i=n關(guān)閉文件5)函數(shù) void display_all() void display_all() 信息全部顯示通過此函數(shù)可顯示所有輸入信息。readfromfile()讀取文件中信息printf顯示第i個(gè)信息直到i7|cbilli+1.money)是 否t=billi;billi=billi+1;billi
5、+1=t; 不變i=0 in-1-j i+j=0 jn-1 j+display(i)i=0 in i+w0=2輸入w0的值判斷是否返回13)函數(shù) void income()void income() 總收入統(tǒng)計(jì)此函數(shù)用于統(tǒng)計(jì)總收入并輸出。關(guān)鍵變量sum用于統(tǒng)計(jì)總收入從文件bill中讀取文件sum=sum+billi.moneyi=0;in;i+輸出sumw0=2輸入w0的值判斷是否返回14)函數(shù) void number()void number() 顧客總數(shù)統(tǒng)計(jì)此函數(shù)用于統(tǒng)計(jì)顧客總數(shù)。關(guān)鍵變量number用于統(tǒng)計(jì)顧客總數(shù)從文件bill中讀取文件number=number+billi.count
6、;i=0;in;i+輸出numberw0=2輸入w0的值判斷是否返回3設(shè)計(jì)題目源代碼清單#include#include#include#define m 30struct billint num; /編號(hào)int time4; /時(shí)間int table; /臺(tái)面號(hào)int count; /顧客數(shù)量char name20; /服務(wù)生姓名int money; /實(shí)收金額billm;int n;/*菜單*/void menu() char c;void input();void modify();void deleter();void search1();void search2();void sor
7、t();void income(); void number();doprintf(nnn); printf( n); printf(-n); printf(nn); printf(-1錄入 2修改 3刪除 -nn); printf(-4臺(tái)面號(hào)查詢 5接待服務(wù)生查詢-nn); printf(-6金額排序 7總收入 8顧客總數(shù) -nn); printf(- 0退出 -nn); printf(-n); printf(nn); printf(請(qǐng)選擇服務(wù)(0-8); c=getchar(); switch(c) case 1: input();getchar();break; case 2: modi
8、fy();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輸入有誤,重試!:
9、); c=getchar(); while(1); /*信息錄入,將錄入的信息存入文件bill中*/void input() file *fp; int i; if(fp=fopen(bill,w)=null) printf(cannot open the filen); return; printf(輸入信息個(gè)數(shù)(0-%d)?:,m-1); scanf(%d,&n); printf(請(qǐng)輸入數(shù)據(jù):n); for(i=0;in;i+) printf(輸入賬單 %d 信息:n,i+1); printf(編號(hào):); scanf(%d,&billi.num); printf(時(shí)間(月.日 時(shí):分):)
10、; scanf(%d%d%d%d,&billi.time0,&billi.time1,&billi.time2,&billi.time3); printf(臺(tái)面號(hào):); scanf(%d,&billi.table); printf(顧客數(shù)量:); scanf(%d,&billi.count); printf(接待服務(wù)生:); scanf(%s,); printf(實(shí)收金額:); scanf(%d,&billi.money); for(i=0;in;i+) if(fwrite(&billi,sizeof(struct bill),1,fp)!=1) printf(file w
11、rite errorn); return; fclose(fp);/*從文件中讀取信息并存入數(shù)組sbilln*/void readfromfile() int i;file *fp; if(fp=fopen(bill,rb)=null) printf(cannot open the filen); return; for(i=0;in;i+) fread(&billi,sizeof(struct bill),1,fp); fclose(fp);/*保存函數(shù)*/void save()file *fp; int i; if(fp=fopen(bill,w)=null) printf(cannot
12、open the filen); return; for(i=0;in;i+) if(billi.num!=0) if(fwrite(&billi,sizeof(struct bill),1,fp)!=1) printf(file write errorn); return; fclose(fp);/*信息全部顯示*/void display_all()int i; readfromfile();printf(全部信息:n);for(i=0;inn 1).編號(hào) 2).時(shí)間 3).臺(tái)面號(hào) 4).顧客數(shù)量 5).接待服務(wù)生 6).實(shí)收金額 7).取消并返回); printf(請(qǐng)選擇?: ); sc
13、anf(%d,&c); if(c7|c1) printf(n選擇錯(cuò)誤,請(qǐng)重試); getchar();do switch(c) case 1: printf(編號(hào):); scanf(%d,&billi.num); break; case 2:printf(時(shí)間:) ; scanf(%d.%d%d:%d,&billi.time0,&billi.time1,&billi.time2,&billi.time3);break;case 3: printf(臺(tái)面號(hào):); scanf(%d,&billi.table); break; case 4: printf(顧客數(shù)量:); scanf(%d,&bil
14、li.count); break; case 5: printf(接待服務(wù)生:); scanf(%s,); break; case 6: printf(實(shí)收金額:); scanf(%d,&billi.money); break; case 7: menu(); printf(n現(xià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
15、(); do k=-1; display_all(); do printf(n輸入要修改的編號(hào)數(shù)n編號(hào):); scanf(%d,&n); for(i=0;in;i+) if(billi.num-n=0) k=i; if(k=-1) printf(nn沒有記錄請(qǐng)重新輸入!);while(k=-1);w1=modify_a(k); if(w1=1) printf(n 修改成功 n是否繼續(xù)? 1).是 2).保存返回 ); save(); scanf(%d,&w0); while(w0=1); /*刪除記錄*/void deleter()int i,k,n,w0,w1; readfromfile()
16、; dok=-1;display_all();do printf(n輸入要?jiǎng)h除的編號(hào):n); scanf(%d,&n); for(i=0;in;i+) if(n-billi.num=0) k=i; if(k=-1)printf(n無記錄,請(qǐng)重新輸入!n); while(k=-1); display(i);printf(n確定刪除? 1)是 2)返回n );scanf(%d,&w0); if(w0=1)for(i=k;in;i+)billi=billi+1; save();else break; display_all();printf(n刪除成功,是否繼續(xù)? 1)是 2)返回 );scanf(
17、%d,&w1);while(w1=1);/*臺(tái)面號(hào)查詢*/void search1() int i,j,w0; int number; readfromfile(); do j=-1; printf(n請(qǐng)輸入臺(tái)面號(hào)查詢:); scanf(%d,&number); for(i=0;in;i+) if(number=billi.table) j=i; display(j); printf(n); if(j=-1) printf(無此號(hào)!); printf(n繼續(xù)? 1)是 2)返回 ); scanf(%d,&w0); while(w0=1);/*接待服務(wù)生查詢*/void search2() ch
18、ar a20; int i,j,w0; do j=-1; printf(n請(qǐng)輸入接待服務(wù)生姓名查詢:); scanf(%s,a); for(i=0;in;i+) if(strcmp(,a)=0) j=i; display(j); printf(n); if(j=-1) printf(無此姓名!); printf(n繼續(xù)? 1)是 2)返回 ); scanf(%d,&w0); while(w0=1);/*金額排序*/void sort()int i,j,w0;struct bill t; readfromfile(); printf(nn);for(j=0;jn-1;j+)f
19、or(i=0;in-1-j;i+)if(billi.moneybilli+1.money)t=billi; billi=billi+1; /*調(diào)換billi與billi+1的值*/ billi+1=t; printf(由大到小為:n);for(i=0;in;i+)display(i);printf(n); doprintf(n返回? 1)是 2)否);scanf(%d,&w0);while(w0=2);/*總收入統(tǒng)計(jì)*/void income()int i,sum=0,w0; readfromfile();for(i=0;in;i+) sum=sum+billi.money; printf(n
20、n);printf(總收入:%d,sum);doprintf(n返回? 1)是 2)否);scanf(%5d,&w0);while(w0=2);/*顧客總數(shù)統(tǒng)計(jì)*/void number() int i,number=0,w0; readfromfile();for(i=0;in;i+) number=number+billi.count;printf(nn);printf(顧客總數(shù):%d,number);doprintf(n返回? 1)是 2)否);scanf(%5d,&w0);while(w0=2);/*主函數(shù)*/void main()menu();4 程序測(cè)試4.1 測(cè)試數(shù)據(jù)說明測(cè)試數(shù)據(jù)
21、包括:編號(hào)、時(shí)間、臺(tái)面號(hào)、顧客數(shù)量、接待服務(wù)生、實(shí)收金額。編號(hào)時(shí)間(int 數(shù)組)臺(tái)面號(hào)int顧客數(shù)量int接待服務(wù)生char數(shù)組實(shí)收金額int17.2 12:1252li3227.2 12:2236wang12837.2 12:3228zhao18647.2 12:4243zhang9557.2 12:5215li1054.2 輸出結(jié)果說明1)菜單界面,進(jìn)入系統(tǒng)首先顯示主菜單,之后可通過選擇不同的數(shù)字來運(yùn)用此餐飲結(jié)賬系統(tǒng)的各項(xiàng)功能。 圖1 菜單2)錄入界面,選擇1后根據(jù)提示輸入需要輸入的信息個(gè)數(shù),之后可依次錄入幾條不同信息。 圖2 錄入3)修改界面,選擇2后依次輸入修改編號(hào)1, 與項(xiàng)目6,并更改為35,保存返回。 圖3 修改信息4)按臺(tái)面號(hào)查詢信息,選擇4后依次查詢臺(tái)面號(hào)3與6,之后返回。 圖4 臺(tái)面號(hào)查詢5)按服務(wù)生姓名查詢,選擇5后查詢服務(wù)生li,之后返回。 圖5 服務(wù)生查詢6)按金額排序,選擇6后可按金額從大到小排序顯示,之后返回。 圖6 按金額排序7)求總收入,選擇7后可求出總收入,之后返回。 圖7 總收入8)求顧客總數(shù),選擇8后可求出顧客總數(shù),之后返回。 圖8 顧客總數(shù)9)刪除信息,選擇3后輸入要?jiǎng)h除的編號(hào)3,刪除后顯示,并返回。 圖9 刪除信息10)退出程序,選擇0后退出餐飲結(jié)賬管理系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024芒果種植基地?zé)o人機(jī)噴灑農(nóng)藥服務(wù)合同3篇
- 儀器設(shè)備采購合同5篇
- 經(jīng)濟(jì)法關(guān)于大學(xué)生就業(yè)維權(quán)方面
- 贊助合同模板(5篇)
- 山東特殊教育職業(yè)學(xué)院《醫(yī)學(xué)基本技能》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度政府投資項(xiàng)目財(cái)務(wù)監(jiān)管代理合同3篇
- 鐘山職業(yè)技術(shù)學(xué)院《商務(wù)英語視聽說(4)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年礦山石料直供采購協(xié)議綱要版B版
- 2025年度新疆棉花采摘機(jī)械化作業(yè)合同范本3篇
- 南京師范大學(xué)泰州學(xué)院《口腔臨床醫(yī)學(xué)概論(口腔修復(fù)學(xué))》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024-2025學(xué)年初中七年級(jí)上學(xué)期數(shù)學(xué)期末綜合卷(人教版)含答案
- 2024-2025學(xué)年北京市朝陽區(qū)高三上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 四年級(jí)數(shù)學(xué)(除數(shù)是兩位數(shù))計(jì)算題專項(xiàng)練習(xí)及答案
- 辦理落戶新生兒委托書模板
- 四川省綿陽市涪城區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期1月期末歷史試卷(含答案)
- 2025年山東水發(fā)集團(tuán)限公司社會(huì)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年計(jì)算機(jī)二級(jí)WPS考試題庫(共380題含答案)
- 《湖南省房屋建筑和市政工程消防質(zhì)量控制技術(shù)標(biāo)準(zhǔn)》
- 施工現(xiàn)場(chǎng)環(huán)境因素識(shí)別、評(píng)價(jià)及環(huán)境因素清單、控制措施
- 2024年醫(yī)藥行業(yè)年終總結(jié).政策篇 易聯(lián)招采2024
- 《工業(yè)園區(qū)節(jié)水管理規(guī)范》
評(píng)論
0/150
提交評(píng)論