




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧職業(yè)學(xué)院《趣談中國(guó)古典文學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 西安信息職業(yè)大學(xué)《視光學(xué)導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 河北司法警官職業(yè)學(xué)院《紙樣設(shè)計(jì)與工藝(三)》2023-2024學(xué)年第一學(xué)期期末試卷
- 黑龍江工程學(xué)院《人力資源測(cè)評(píng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 四川工業(yè)科技學(xué)院《電視文稿寫作》2023-2024學(xué)年第一學(xué)期期末試卷
- 山西工程科技職業(yè)大學(xué)《經(jīng)典影視作品鑒賞》2023-2024學(xué)年第一學(xué)期期末試卷
- 小區(qū)節(jié)日福利活動(dòng)方案
- 小公司燒烤活動(dòng)方案
- 射箭騎馬活動(dòng)方案
- 小學(xué)對(duì)換幣活動(dòng)方案
- 陜西省專業(yè)技術(shù)人員繼續(xù)教育2025公需課《黨的二十屆三中全會(huì)精神解讀與高質(zhì)量發(fā)展》20學(xué)時(shí)題庫(kù)及答案
- 學(xué)習(xí)通《科研誠(chéng)信與學(xué)術(shù)規(guī)范》課后及考試答案
- 百詞斬雅思核心詞匯
- PFMEA模板完整版文檔
- 道路交通安全法律法規(guī)知識(shí)測(cè)試題
- 國(guó)際籃聯(lián)記錄表
- 大學(xué)生親社會(huì)行為量表(前測(cè))問(wèn)卷正式版
- 煤礦培訓(xùn):自救器課件
- 空心玻璃微珠項(xiàng)目資金申請(qǐng)報(bào)告寫作模板+
- 藥品管理學(xué)概論(藥品管理學(xué))
- 重復(fù)測(cè)量資料統(tǒng)計(jì)分析
評(píng)論
0/150
提交評(píng)論