




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、文檔供參考,可復(fù)制、編制,期待您的好評與關(guān)注! 1課程設(shè)計任務(wù)書課程設(shè)計任務(wù)書課程設(shè)計任務(wù)書課程設(shè)計任務(wù)書題目題目題目題目:食堂就餐餐費(fèi)管理系統(tǒng)食堂就餐餐費(fèi)管理系統(tǒng)食堂就餐餐費(fèi)管理系統(tǒng)食堂就餐餐費(fèi)管理系統(tǒng)(1)(1)(1)(1)一一一一、課程設(shè)計時間課程設(shè)計時間課程設(shè)計時間課程設(shè)計時間共計1周,20學(xué)時。二二二二、課程設(shè)計內(nèi)容課程設(shè)計內(nèi)容課程設(shè)計內(nèi)容課程設(shè)計內(nèi)容用C語言編寫軟件完成以下任務(wù):1添加學(xué)生信息;2添加菜譜信息;3菜譜查詢;4按學(xué)號添加餐費(fèi);三三三三、課程設(shè)計要求課程設(shè)計要求課程設(shè)計要求課程設(shè)計要求1.程序質(zhì)量:貫徹結(jié)構(gòu)化的程序設(shè)計思想。用戶界面友好,功能明確,操作方便。用戶界面中的
2、菜單至少應(yīng)包括“添加學(xué)生信息”、“添加菜譜信息”、“菜譜查詢”、“按學(xué)號添加餐費(fèi)”、“退出”5項(xiàng)。代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋,以增強(qiáng)程序的可讀性。2.課程設(shè)計說明書:課程結(jié)束后,上交課程設(shè)計說明書和源程序。課程設(shè)計說明書的格式和內(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é)生簽名:_五五五五、說明書成績說明書成績說明書成績說明書成績六六六六、教師評語教師評語教師評語教師評語I目目目目錄錄錄錄一、需求分析.1二、程序流程圖.1三、核心技術(shù)的實(shí)現(xiàn)說明及相應(yīng)程序段.6四、課設(shè)總
3、結(jié).9五、參考文獻(xiàn).9六、源程序.91一一一一、需求分析需求分析需求分析需求分析經(jīng)過對程序設(shè)計題目的分析可知,整個程序的設(shè)計實(shí)現(xiàn)大致分為十一個模塊,每一個模塊對應(yīng)一個函數(shù)。在這些函數(shù)當(dāng)中,添加學(xué)生數(shù)據(jù)函數(shù),添加食譜函數(shù),就餐買單函數(shù),餐費(fèi)查詢函數(shù)的實(shí)現(xiàn)嚴(yán)格按照題目的要求,而更改數(shù)據(jù)函數(shù)和顯示函數(shù)屬于附加功能。讀取文件函數(shù)和保存信息函數(shù)對其它函數(shù)的實(shí)現(xiàn)起輔助作用,主函數(shù)及菜單函數(shù)控制程序的整體運(yùn)行。1.添加學(xué)生數(shù)據(jù)函數(shù)主要實(shí)現(xiàn)程序最初運(yùn)行時學(xué)生數(shù)據(jù)的錄入以及其后的運(yùn)行中學(xué)生數(shù)據(jù)的追加功能;2.添加食譜數(shù)據(jù)函數(shù)主要實(shí)現(xiàn)程序最初運(yùn)行時食譜數(shù)據(jù)的錄入以及其后的運(yùn)行中食譜數(shù)據(jù)的追加功能;3.刪除學(xué)生數(shù)據(jù)
4、函數(shù)實(shí)現(xiàn)的功能是按照學(xué)號對學(xué)生的數(shù)據(jù)記錄進(jìn)行刪除;4.菜譜查詢函數(shù)按照題目的具體要求實(shí)現(xiàn)的是學(xué)生就餐及每次餐費(fèi)累加的更新。5.餐費(fèi)查詢函數(shù)允許按照學(xué)號對學(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í)行。每一個學(xué)生記錄都包含學(xué)號、姓名,以及餐費(fèi),在程序當(dāng)中,將學(xué)生(食譜)記錄類型定義為結(jié)構(gòu)體類型,添加以及追加的學(xué)生(食譜)信息直接寫入E盤的student(caipu).txt文件中,其它函數(shù)每次
5、對學(xué)生(食譜)記錄的訪問,其數(shù)據(jù)來源都是student(caipu).txt文件,這樣做不但可以保證學(xué)生(食譜)數(shù)據(jù)的一致性,而且可以對學(xué)生(食譜)數(shù)據(jù)進(jìn)行永久保存,保證每次運(yùn)行程序都可以采用原來的數(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?真假顯示食
6、譜函數(shù)sho()退出n=7?真假3以追加方式打開E盤student.txt(caipu.txt)文件成功?真假以追加方式打開E盤student.txt真(caipu.txt)文件成功假?輸入添加學(xué)生(食譜)數(shù)量n循環(huán)變量i=1輸出文件失敗當(dāng)i<=n時輸入學(xué)號(編碼)、姓名(名稱)和餐費(fèi)(價格)返回學(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é)束時輸出文件打開失敗讀取學(xué)生(食譜)信息到數(shù)組元素stui(cai)中i+關(guān)閉文件
7、返回返回學(xué)生(食譜)數(shù)i圖3讀取學(xué)生(食譜)數(shù)據(jù)(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)說明及相應(yīng)程序段核心技術(shù)的實(shí)現(xiàn)說明及相應(yīng)程序段核心技術(shù)的實(shí)現(xiàn)說明及相應(yīng)程序段核心技術(shù)的實(shí)現(xiàn)說明及相應(yīng)程序段本程序主要由十一個自定義函數(shù)和一個主函數(shù)組成,其中主函數(shù)以菜單的形式調(diào)用其它函數(shù)來實(shí)現(xiàn)要求的所有功能。在這些函數(shù)
8、當(dāng)中,添加學(xué)生數(shù)據(jù)函數(shù)、添加食譜數(shù)據(jù)函數(shù)、就餐買單函數(shù)和查詢餐費(fèi)函數(shù)是程序中較為核心的部分,下面分別進(jìn)行說明。1.添加學(xué)生數(shù)據(jù)函數(shù)添加數(shù)據(jù)分為兩種情況,其一是在學(xué)生文件(student.txt)不存在的情況下,首先由程序創(chuàng)建一個新文件,并將錄入的學(xué)生信息寫入該文件當(dāng)中;其二是在學(xué)生文件(student.txt)已經(jīng)存在的情況下,此時文件以追加的方式打開,這樣才可以保證以前已經(jīng)存在的數(shù)據(jù)不丟失。具體的程序段如下:if(fp=fopen("e:student.txt","a")=NULL)/如果文件已經(jīng)存在,可以追加學(xué)生信息if(fp=fopen("
9、;e:student.txt","w")=NULL)/文件不存在時,創(chuàng)建新文件,輸入學(xué)生信息printf("文件打開失敗!n");7return;printf("請輸入要添加的學(xué)生數(shù)量,按回車鍵確認(rèn):");scanf("%d",&n);for(i=1;i<=n;i+)printf("n請輸入第%d個學(xué)生的學(xué)號、姓名、餐費(fèi),用空格分開,并按回車鍵確認(rèn):n",i);scanf("%d%s%f",&j,,&stu.A);if(
10、j=0)break;stu.num=j;fprintf(fp,"%d%s%fn",stu.num,,stu.A);2.添加食譜數(shù)據(jù)函數(shù)添加數(shù)據(jù)分為兩種情況,其一是在食譜文件(caipu.txt)不存在的情況下,首先由程序創(chuàng)建一個新文件,并將錄入的食譜信息寫入該文件當(dāng)中;其二是在食譜文件(caipu.txt)已經(jīng)存在的情況下,此時文件以追加的方式打開,這樣才可以保證以前已經(jīng)存在的數(shù)據(jù)不丟失。具體的程序段如下:if(fp=fopen("e:caipu.txt","a")=NULL)/如果文件已經(jīng)存在如果文件已經(jīng)存在如果文件
11、已經(jīng)存在如果文件已經(jīng)存在,可以追加食可以追加食可以追加食可以追加食譜譜譜譜信息信息信息信息if(fp=fopen("e:caipu.txt","w")=NULL)/文件不存在時文件不存在時文件不存在時文件不存在時,創(chuàng)建新創(chuàng)建新創(chuàng)建新創(chuàng)建新文文文文件件件件,輸入食譜信息輸入食譜信息輸入食譜信息輸入食譜信息printf("文件打開失敗文件打開失敗文件打開失敗文件打開失??!n");return;printf("請輸入要添加的食譜數(shù)量請輸入要添加的食譜數(shù)量請輸入要添加的食譜數(shù)量請輸入要添加的食譜數(shù)量,按回車鍵確認(rèn)按回車鍵確認(rèn)按回車鍵
12、確認(rèn)按回車鍵確認(rèn):");scanf("%d",&n);for(i=1;i<=n;i+)printf("n請輸入第請輸入第請輸入第請輸入第%d個食譜的編碼個食譜的編碼個食譜的編碼個食譜的編碼、名稱名稱名稱名稱,價格價格價格價格,用空格分開用空格分開用空格分開用空格分開,并并并并按回車鍵確認(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
13、%s%fn",ca.number,ca.nam,ca.price);3.菜譜查詢函數(shù)對于就餐買單函數(shù),這部分程序調(diào)用了reads和read函數(shù),整個程序的實(shí)現(xiàn)是在結(jié)構(gòu)體數(shù)組stu和ca中實(shí)現(xiàn)的。由于這個程序的實(shí)現(xiàn)涉及到兩個數(shù)組元素的信息交換,因此還需要定義一個中間變量來協(xié)助。就餐買單函數(shù)使學(xué)生數(shù)據(jù)發(fā)生了變化,因此也需要對源文件進(jìn)行更新,將更新的學(xué)生信息寫入信息源。具體的程序段如下:structstudentstuN;structcaipucaN;intnum1,num2,n,i,m;floatq;printf("n請輸入食譜編碼n");scanf("%d
14、",&num2);m=read(ca);for(i=0;i<m;i+)if(num2=cai.number)q=cai.price;printf("請輸入學(xué)生卡號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ù)中,這個程序仍然調(diào)用了reads函數(shù),整個過程是在結(jié)構(gòu)體數(shù)組stu中實(shí)現(xiàn)。實(shí)現(xiàn)了對學(xué)生
15、的餐費(fèi)按學(xué)號查詢的功能。具體的程序段如下:intd;inti,n;n=reads(stu);printf("n請輸入待查詢的學(xué)生學(xué)號,按回車鍵確認(rèn):n");scanf("%d",&d);for(i=0;i<n;i+)9if(d=stui.num)break;if(i>=n)printf("沒有找到該學(xué)生信息!n");return;elseprintf("n%d%s%fn",stui.num,,stui.A);四四四四、課設(shè)總結(jié)課設(shè)總結(jié)課設(shè)總結(jié)課設(shè)總結(jié)五五五五、參考文獻(xiàn)參考文獻(xiàn)參
16、考文獻(xiàn)參考文獻(xiàn)1譚浩強(qiáng)C程序設(shè)計北京:清華大學(xué)出版社,2005六六六六、源程序源程序源程序源程序#include<stdio.h>#include<stdlib.h>#include"conio.h"#defineN20structstudentcharnum20;charname10;floatcanfei;structfoodcharnum20;charname10;floatprice;10voidmenu();intreads(structstudentstuN);voidsave(structstudentstuN,intn);intrea
17、ds2(structfoodfoN);voidsave2(structfoodfoN,intn);voidadd();voidadd2();voidquery();voidshow();voidmain()intn;while(1)menu();printf("n請輸入您要選擇的操作序號,按回車鍵確認(rèn):");scanf("%d",&n);switch(n)case1:add();break;case2:add2();break;case3:show();break;case4:query();break;case5:exit(0);default
18、:printf("輸入錯誤,請輸入列表中存在的序號!n");voidmenu()printf("*食堂就餐餐費(fèi)管理系統(tǒng)*");11printf("n1添加學(xué)生信息");printf("n2添加菜譜信息");printf("n3菜譜查詢");printf("n4按學(xué)號添加餐費(fèi)");printf("n5退出");intreads(structstudentstuN)/讀取學(xué)生文件中的內(nèi)容FILE*fp;inti=0;if(fp=fopen("e:st
19、udent.txt","r")=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
20、)printf("文件打開失敗!n");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("文件打開失?。");return0;elsefor(i=0;!feof(fp);i
21、+)fscanf(fp,"%s%s%fn",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,
22、,foi.price);13fclose(fp);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)/文件不存在時,創(chuàng)建新文件,輸入學(xué)生信息printf("文件打開失??!n");return;printf("請輸入要添加的學(xué)生數(shù)量,按回車鍵確認(rèn):&q
23、uot;);scanf("%d",&n);for(i=1;i<=n;i+)printf("n請輸入第%d個學(xué)生的學(xué)號、姓名,用空格分開,并按回車鍵確認(rèn):n",i);scanf("%s%s",stu.num,);printf("n請輸入第%d個學(xué)生的餐費(fèi),并按回車鍵確認(rèn):n",i);scanf("%f",&stu.canfei);fprintf(fp,"%s%s%fn",stu.num,,stu.canfei);fclose
24、(fp);voidadd2()/*添加菜譜信息*/FILE*fp;intn,i;structfoodfo;14if(fp=fopen("e:food.txt","a")=NULL)/如果文件已經(jīng)存在,可以追加菜譜信息if(fp=fopen("e:food.txt","w")=NULL)/文件不存在時,創(chuàng)建新文件,輸入菜譜信息printf("文件打開失?。");return;printf("請輸入要添加的菜譜數(shù)量,按回車鍵確認(rèn):");scanf("%d",&n);for(i=1;i<=n;i+)printf("n請輸入第%d個菜的編號、名稱,用空格分開,并按回車鍵確認(rèn):n",i);scanf("%s%s",fo.num,);printf("n請輸入第%d個菜的價格,并按回車鍵確認(rèn):n",i);scanf("%f",
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度購物中心商鋪使用權(quán)轉(zhuǎn)讓合同
- 軌道交通企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 二零二五年度工傷事故賠償協(xié)議(含生活護(hù)理費(fèi))
- 環(huán)保船企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 二零二五年度學(xué)校聘請代課教師校園文化活動策劃合同
- 二零二五年度傳媒公司數(shù)字營銷與推廣合作協(xié)議
- 二零二五年度珠寶首飾銷售業(yè)務(wù)員勞動合同及銷售渠道管理
- 賓館客房管家服務(wù)與勞務(wù)派遣合同(2025年度)
- 2025年度淘寶時尚博主肖像權(quán)授權(quán)及內(nèi)容合作合同
- 2025年度足療養(yǎng)生館轉(zhuǎn)讓及區(qū)域保護(hù)合同
- 2024年環(huán)北部灣廣西水資源配置有限公司招聘考試真題
- 【2025新教材】教科版一年級科學(xué)下冊全冊教案【含反思】
- 2023-2024年演出經(jīng)紀(jì)人之演出經(jīng)紀(jì)實(shí)務(wù)考前沖刺模擬試卷附答案(研優(yōu)卷)
- 第16課《有為有不為 》課件-2024-2025學(xué)年統(tǒng)編版語文七年級下冊
- 律師執(zhí)業(yè)風(fēng)險防范研究-深度研究
- 2025年無錫職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2025年北京戲曲藝術(shù)職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 2025年春新人教版語文一年級下冊教學(xué)課件 語文園地二
- 2025年青海西寧廣播電視臺招聘20人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年內(nèi)蒙古興安盟突泉縣選聘生態(tài)護(hù)林員450人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 胸腔閉式引流護(hù)理
評論
0/150
提交評論