語(yǔ)言課程設(shè)計(jì)食堂就餐餐費(fèi)管理系統(tǒng)_第1頁(yè)
語(yǔ)言課程設(shè)計(jì)食堂就餐餐費(fèi)管理系統(tǒng)_第2頁(yè)
語(yǔ)言課程設(shè)計(jì)食堂就餐餐費(fèi)管理系統(tǒng)_第3頁(yè)
語(yǔ)言課程設(shè)計(jì)食堂就餐餐費(fèi)管理系統(tǒng)_第4頁(yè)
語(yǔ)言課程設(shè)計(jì)食堂就餐餐費(fèi)管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)任務(wù)書題目題目題目題目:食堂就餐餐費(fèi)管理系統(tǒng)食堂就餐餐費(fèi)管理系統(tǒng)食堂就餐餐費(fèi)管理系統(tǒng)食堂就餐餐費(fèi)管理系統(tǒng)(1)(1)(1)(1)一一一一、課程設(shè)計(jì)時(shí)間課程設(shè)計(jì)時(shí)間課程設(shè)計(jì)時(shí)間課程設(shè)計(jì)時(shí)間共計(jì)1周,20學(xué)時(shí)。二二二二、課程設(shè)計(jì)內(nèi)容課程設(shè)計(jì)內(nèi)容課程設(shè)計(jì)內(nèi)容課程設(shè)計(jì)內(nèi)容用C語(yǔ)言編寫軟件完成以下任務(wù):1添加學(xué)生信息;2添加菜譜信息;3菜譜查詢;4按學(xué)號(hào)添加餐費(fèi);三三三三、課程設(shè)計(jì)要求課程設(shè)計(jì)要求課程設(shè)計(jì)要求課程設(shè)計(jì)要求1.程序質(zhì)量:貫徹結(jié)構(gòu)化的程序設(shè)計(jì)思想。用戶界面友好,功能明確,操作方便。用戶界面中的菜單至少應(yīng)包括“添加學(xué)生信息”、“添加菜譜信息”

2、、“菜譜查詢”、“按學(xué)號(hào)添加餐費(fèi)”、“退出”5項(xiàng)。代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋,以增強(qiáng)程序的可讀性。2.課程設(shè)計(jì)說(shuō)明書:課程結(jié)束后,上交課程設(shè)計(jì)說(shuō)明書和源程序。課程設(shè)計(jì)說(shuō)明書的格式和內(nèi)容參見提供的模板。四四四四、指導(dǎo)教師和學(xué)生簽字指導(dǎo)教師和學(xué)生簽字指導(dǎo)教師和學(xué)生簽字指導(dǎo)教師和學(xué)生簽字指導(dǎo)教師指導(dǎo)教師指導(dǎo)教師指導(dǎo)教師:_學(xué)生簽名學(xué)生簽名學(xué)生簽名學(xué)生簽名:_五五五五、說(shuō)明書成績(jī)說(shuō)明書成績(jī)說(shuō)明書成績(jī)說(shuō)明書成績(jī)六六六六、教師評(píng)語(yǔ)教師評(píng)語(yǔ)教師評(píng)語(yǔ)教師評(píng)語(yǔ)I目目目目錄錄錄錄一、需求分析.1二、程序流程圖.1三、核心技術(shù)的實(shí)現(xiàn)說(shuō)明及相應(yīng)程序段.6四、課設(shè)總結(jié).9五、參考文獻(xiàn).9六、源程序.91一一一一、

3、需求分析需求分析需求分析需求分析經(jīng)過(guò)對(duì)程序設(shè)計(jì)題目的分析可知,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為十一個(gè)模塊,每一個(gè)模塊對(duì)應(yīng)一個(gè)函數(shù)。在這些函數(shù)當(dāng)中,添加學(xué)生數(shù)據(jù)函數(shù),添加食譜函數(shù),就餐買單函數(shù),餐費(fèi)查詢函數(shù)的實(shí)現(xiàn)嚴(yán)格按照題目的要求,而更改數(shù)據(jù)函數(shù)和顯示函數(shù)屬于附加功能。讀取文件函數(shù)和保存信息函數(shù)對(duì)其它函數(shù)的實(shí)現(xiàn)起輔助作用,主函數(shù)及菜單函數(shù)控制程序的整體運(yùn)行。1.添加學(xué)生數(shù)據(jù)函數(shù)主要實(shí)現(xiàn)程序最初運(yùn)行時(shí)學(xué)生數(shù)據(jù)的錄入以及其后的運(yùn)行中學(xué)生數(shù)據(jù)的追加功能;2.添加食譜數(shù)據(jù)函數(shù)主要實(shí)現(xiàn)程序最初運(yùn)行時(shí)食譜數(shù)據(jù)的錄入以及其后的運(yùn)行中食譜數(shù)據(jù)的追加功能;3.刪除學(xué)生數(shù)據(jù)函數(shù)實(shí)現(xiàn)的功能是按照學(xué)號(hào)對(duì)學(xué)生的數(shù)據(jù)記錄進(jìn)行刪除

4、;4.菜譜查詢函數(shù)按照題目的具體要求實(shí)現(xiàn)的是學(xué)生就餐及每次餐費(fèi)累加的更新。5.餐費(fèi)查詢函數(shù)允許按照學(xué)號(hào)對(duì)學(xué)生的總餐費(fèi)進(jìn)行查詢;6.顯示學(xué)生數(shù)據(jù)函數(shù)實(shí)現(xiàn)的是顯示目前所有的有效學(xué)生記錄信息。7.顯示食譜信息函數(shù)實(shí)現(xiàn)的是顯示目前所有的有效食譜記錄信息。除上面介紹的功能之外,程序還具有退出功能,可以在程序的一次運(yùn)行當(dāng)中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。每一個(gè)學(xué)生記錄都包含學(xué)號(hào)、姓名,以及餐費(fèi),在程序當(dāng)中,將學(xué)生(食譜)記錄類型定義為結(jié)構(gòu)體類型,添加以及追加的學(xué)生(食譜)信息直接寫入E盤的student(caipu).txt文件中,其它函數(shù)每次對(duì)學(xué)生(食譜)記錄的訪問(wèn),其數(shù)據(jù)來(lái)源都是stud

5、ent(caipu).txt文件,這樣做不但可以保證學(xué)生(食譜)數(shù)據(jù)的一致性,而且可以對(duì)學(xué)生(食譜)數(shù)據(jù)進(jìn)行永久保存,保證每次運(yùn)行程序都可以采用原來(lái)的數(shù)據(jù)。二二二二、程序流程圖程序流程圖程序流程圖程序流程圖1.程序總體結(jié)構(gòu)圖2圖1程序總體結(jié)構(gòu)圖2.具體功能框圖(1)添加學(xué)生(食譜)數(shù)據(jù)函數(shù)add(ad) 當(dāng)1輸入值 n=1?真假添加學(xué)生信息函數(shù) add()n=2?真假顯示學(xué)生信息函數(shù) show()n=3?真假刪除函數(shù) del()真假n=4?添加食譜信息函數(shù) ad()n=5?真假就餐買單函數(shù) all()菜譜查詢函數(shù) query()n=6?真假顯示食譜函數(shù)sho()退出n=7?真假3以追加方式打開

6、E盤student.txt(caipu.txt)文件成功?真假以追加方式打開E盤student.txt真(caipu.txt)文件成功假?輸入添加學(xué)生(食譜)數(shù)量n循環(huán)變量i=1輸出文件失敗當(dāng)i<=n時(shí)輸入學(xué)號(hào)(編碼)、姓名(名稱)和餐費(fèi)(價(jià)格)返回學(xué)生(食譜)信息寫入文件i+關(guān)閉文件圖2添加學(xué)生(食譜)數(shù)據(jù)函數(shù)(2)讀取學(xué)生(食譜)數(shù)據(jù)函數(shù)reads(read)4以讀方式打開E盤student.txt(caipu.txt)文件成功?真假循環(huán)變量i=0文件未結(jié)束時(shí)輸出文件打開失敗讀取學(xué)生(食譜)信息到數(shù)組元素stui(cai)中i+關(guān)閉文件返回返回學(xué)生(食譜)數(shù)i圖3讀取學(xué)生(食譜)數(shù)據(jù)

7、(3)刪除學(xué)生記錄函數(shù)del5圖4刪除學(xué)生記錄(4)就餐買單函數(shù)all6m=read(ca)循環(huán)變量i=0當(dāng)num2=cai.numberq=cai.pricen=reads(stu)循環(huán)變量i=0當(dāng)num1=stui.numStui.A=q+stui.Asave(stu,n)更新文件輸出就餐成功圖5就餐買單三三三三、核心技術(shù)的實(shí)現(xiàn)說(shuō)明及相應(yīng)程序段核心技術(shù)的實(shí)現(xiàn)說(shuō)明及相應(yīng)程序段核心技術(shù)的實(shí)現(xiàn)說(shuō)明及相應(yīng)程序段核心技術(shù)的實(shí)現(xiàn)說(shuō)明及相應(yīng)程序段本程序主要由十一個(gè)自定義函數(shù)和一個(gè)主函數(shù)組成,其中主函數(shù)以菜單的形式調(diào)用其它函數(shù)來(lái)實(shí)現(xiàn)要求的所有功能。在這些函數(shù)當(dāng)中,添加學(xué)生數(shù)據(jù)函數(shù)、添加食譜數(shù)據(jù)函數(shù)、就餐買

8、單函數(shù)和查詢餐費(fèi)函數(shù)是程序中較為核心的部分,下面分別進(jìn)行說(shuō)明。1.添加學(xué)生數(shù)據(jù)函數(shù)添加數(shù)據(jù)分為兩種情況,其一是在學(xué)生文件(student.txt)不存在的情況下,首先由程序創(chuàng)建一個(gè)新文件,并將錄入的學(xué)生信息寫入該文件當(dāng)中;其二是在學(xué)生文件(student.txt)已經(jīng)存在的情況下,此時(shí)文件以追加的方式打開,這樣才可以保證以前已經(jīng)存在的數(shù)據(jù)不丟失。具體的程序段如下:if(fp=fopen("e:student.txt","a")=NULL)/如果文件已經(jīng)存在,可以追加學(xué)生信息if(fp=fopen("e:student.txt",&qu

9、ot;w")=NULL)/文件不存在時(shí),創(chuàng)建新文件,輸入學(xué)生信息printf("文件打開失敗!n");7return;printf("請(qǐng)輸入要添加的學(xué)生數(shù)量,按回車鍵確認(rèn):");scanf("%d",&n);for(i=1;i<=n;i+)printf("n請(qǐng)輸入第%d個(gè)學(xué)生的學(xué)號(hào)、姓名、餐費(fèi),用空格分開,并按回車鍵確認(rèn):n",i);scanf("%d%s%f",&j,,&stu.A);if(j=0)break;stu.num=j;fpri

10、ntf(fp,"%d%s%fn",stu.num,,stu.A);2.添加食譜數(shù)據(jù)函數(shù)添加數(shù)據(jù)分為兩種情況,其一是在食譜文件(caipu.txt)不存在的情況下,首先由程序創(chuàng)建一個(gè)新文件,并將錄入的食譜信息寫入該文件當(dāng)中;其二是在食譜文件(caipu.txt)已經(jīng)存在的情況下,此時(shí)文件以追加的方式打開,這樣才可以保證以前已經(jīng)存在的數(shù)據(jù)不丟失。具體的程序段如下:if(fp=fopen("e:caipu.txt","a")=NULL)/如果文件已經(jīng)存在如果文件已經(jīng)存在如果文件已經(jīng)存在如果文件已經(jīng)存在,可以追加食可以追加食可

11、以追加食可以追加食譜譜譜譜信息信息信息信息if(fp=fopen("e:caipu.txt","w")=NULL)/文件不存在時(shí)文件不存在時(shí)文件不存在時(shí)文件不存在時(shí),創(chuàng)建新創(chuàng)建新創(chuàng)建新創(chuàng)建新文文文文件件件件,輸入食譜信息輸入食譜信息輸入食譜信息輸入食譜信息printf("文件打開失敗文件打開失敗文件打開失敗文件打開失敗!n");return;printf("請(qǐng)輸入要添加的食譜數(shù)量請(qǐng)輸入要添加的食譜數(shù)量請(qǐng)輸入要添加的食譜數(shù)量請(qǐng)輸入要添加的食譜數(shù)量,按回車鍵確認(rèn)按回車鍵確認(rèn)按回車鍵確認(rèn)按回車鍵確認(rèn):");scanf(&

12、quot;%d",&n);for(i=1;i<=n;i+)printf("n請(qǐng)輸入第請(qǐng)輸入第請(qǐng)輸入第請(qǐng)輸入第%d個(gè)食譜的編碼個(gè)食譜的編碼個(gè)食譜的編碼個(gè)食譜的編碼、名稱名稱名稱名稱,價(jià)格價(jià)格價(jià)格價(jià)格,用空格分開用空格分開用空格分開用空格分開,并并并并按回車鍵確認(rèn)按回車鍵確認(rèn)按回車鍵確認(rèn)按回車鍵確認(rèn):n",i);scanf("%d%s%f",&j,ca.nam,&ca.price);if(j=0)8break;ca.number=j;fprintf(fp,"%d%s%fn",ca.number,ca

13、.nam,ca.price);3.菜譜查詢函數(shù)對(duì)于就餐買單函數(shù),這部分程序調(diào)用了reads和read函數(shù),整個(gè)程序的實(shí)現(xiàn)是在結(jié)構(gòu)體數(shù)組stu和ca中實(shí)現(xiàn)的。由于這個(gè)程序的實(shí)現(xiàn)涉及到兩個(gè)數(shù)組元素的信息交換,因此還需要定義一個(gè)中間變量來(lái)協(xié)助。就餐買單函數(shù)使學(xué)生數(shù)據(jù)發(fā)生了變化,因此也需要對(duì)源文件進(jìn)行更新,將更新的學(xué)生信息寫入信息源。具體的程序段如下:structstudentstuN;structcaipucaN;intnum1,num2,n,i,m;floatq;printf("n請(qǐng)輸入食譜編碼n");scanf("%d",&num2);m=read

14、(ca);for(i=0;i<m;i+)if(num2=cai.number)q=cai.price;printf("請(qǐng)輸入學(xué)生卡號(hào)n");scanf("%d",&num1);n=reads(stu);for(i=0;i<n;i+)if(num1=stui.num)stui.A=q+stui.A;save(stu,n);printf("就餐成功!nn");4餐費(fèi)查詢函數(shù)在餐費(fèi)查詢函數(shù)中,這個(gè)程序仍然調(diào)用了reads函數(shù),整個(gè)過(guò)程是在結(jié)構(gòu)體數(shù)組stu中實(shí)現(xiàn)。實(shí)現(xiàn)了對(duì)學(xué)生的餐費(fèi)按學(xué)號(hào)查詢的功能。具體的程序段如下:int

15、d;inti,n;n=reads(stu);printf("n請(qǐng)輸入待查詢的學(xué)生學(xué)號(hào),按回車鍵確認(rèn):n");scanf("%d",&d);for(i=0;i<n;i+)9if(d=stui.num)break;if(i>=n)printf("沒(méi)有找到該學(xué)生信息!n");return;elseprintf("n%d%s%fn",stui.num,,stui.A);四四四四、課設(shè)總結(jié)課設(shè)總結(jié)課設(shè)總結(jié)課設(shè)總結(jié)五五五五、參考文獻(xiàn)參考文獻(xiàn)參考文獻(xiàn)參考文獻(xiàn)1譚浩強(qiáng)C程序設(shè)計(jì)北京:清華大學(xué)出

16、版社,2005六六六六、源程序源程序源程序源程序#include<stdio.h>#include<stdlib.h>#include"conio.h"#defineN20structstudentcharnum20;charname10;floatcanfei;structfoodcharnum20;charname10;floatprice;10voidmenu();intreads(structstudentstuN);voidsave(structstudentstuN,intn);intreads2(structfoodfoN);voids

17、ave2(structfoodfoN,intn);voidadd();voidadd2();voidquery();voidshow();voidmain()intn;while(1)menu();printf("n請(qǐng)輸入您要選擇的操作序號(hào),按回車鍵確認(rèn):");scanf("%d",&n);switch(n)case1:add();break;case2:add2();break;case3:show();break;case4:query();break;case5:exit(0);default:printf("輸入錯(cuò)誤,請(qǐng)輸入列表

18、中存在的序號(hào)!n");voidmenu()printf("*食堂就餐餐費(fèi)管理系統(tǒng)*");11printf("n1添加學(xué)生信息");printf("n2添加菜譜信息");printf("n3菜譜查詢");printf("n4按學(xué)號(hào)添加餐費(fèi)");printf("n5退出");intreads(structstudentstuN)/讀取學(xué)生文件中的內(nèi)容FILE*fp;inti=0;if(fp=fopen("e:student.txt","r&

19、quot;)=NULL)printf("文件打開失敗!n");return0;elsefor(i=0;!feof(fp);i+)fscanf(fp,"%s%s%fn",stui.num,,&stui.canfei);fclose(fp);returni;voidsave(structstudentstuN,intn)/學(xué)生信息改變后更新文件FILE*fp;inti=0;if(fp=fopen("e:student.txt","w")=NULL)printf("文件打開失敗!n&q

20、uot;);return;else12for(i=0;i<n;i+)fprintf(fp,"%s%s%fn",stui.num,,stui.canfei);fclose(fp);intreads2(structfoodfoN)/讀取菜譜文件中的內(nèi)容FILE*fp;inti=0;if(fp=fopen("e:food.txt","r")=NULL)printf("文件打開失敗!n");return0;elsefor(i=0;!feof(fp);i+)fscanf(fp,"%s%s%f

21、n",foi.num,,&foi.price);fclose(fp);returni;voidsave2(structfoodfoN,intn)/菜譜信息改變后更新文件FILE*fp;inti=0;if(fp=fopen("e:food.txt","w")=NULL)printf("文件打開失敗!n");return;elsefor(i=0;i<n;i+)fprintf(fp,"%s%s%fn",foi.num,,foi.price);13fclose(fp)

22、;voidadd()/*添加學(xué)生信息*/FILE*fp;intn,i;structstudentstu;if(fp=fopen("e:student.txt","a")=NULL)/如果文件已經(jīng)存在,可以追加學(xué)生信息if(fp=fopen("e:student.txt","w")=NULL)/文件不存在時(shí),創(chuàng)建新文件,輸入學(xué)生信息printf("文件打開失敗!n");return;printf("請(qǐng)輸入要添加的學(xué)生數(shù)量,按回車鍵確認(rèn):");scanf("%d&quo

23、t;,&n);for(i=1;i<=n;i+)printf("n請(qǐng)輸入第%d個(gè)學(xué)生的學(xué)號(hào)、姓名,用空格分開,并按回車鍵確認(rèn):n",i);scanf("%s%s",stu.num,);printf("n請(qǐng)輸入第%d個(gè)學(xué)生的餐費(fèi),并按回車鍵確認(rèn):n",i);scanf("%f",&stu.canfei);fprintf(fp,"%s%s%fn",stu.num,,stu.canfei);fclose(fp);voidadd2()/*添加菜譜信息*

24、/FILE*fp;intn,i;structfoodfo;14if(fp=fopen("e:food.txt","a")=NULL)/如果文件已經(jīng)存在,可以追加菜譜信息if(fp=fopen("e:food.txt","w")=NULL)/文件不存在時(shí),創(chuàng)建新文件,輸入菜譜信息printf("文件打開失敗!n");return;printf("請(qǐng)輸入要添加的菜譜數(shù)量,按回車鍵確認(rèn):");scanf("%d",&n);for(i=1;i<=n;i+)printf("n請(qǐng)輸入第%d個(gè)菜的編號(hào)、名稱,用空格分開,并按回車鍵確認(rèn):n",i);scanf("%s%s",fo.num,);printf("n請(qǐng)輸入第%d個(gè)菜的價(jià)格,并按回車鍵確認(rèn):n",i);scanf("%f&qu

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論