C語言程序課程設(shè)計(jì)報(bào)告餐飲結(jié)賬管理系統(tǒng)設(shè)計(jì)_第1頁
C語言程序課程設(shè)計(jì)報(bào)告餐飲結(jié)賬管理系統(tǒng)設(shè)計(jì)_第2頁
C語言程序課程設(shè)計(jì)報(bào)告餐飲結(jié)賬管理系統(tǒng)設(shè)計(jì)_第3頁
C語言程序課程設(shè)計(jì)報(bào)告餐飲結(jié)賬管理系統(tǒng)設(shè)計(jì)_第4頁
C語言程序課程設(shè)計(jì)報(bào)告餐飲結(jié)賬管理系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論