秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計報告書-簡單的小學(xué)生做題系統(tǒng)的設(shè)計和實現(xiàn).doc

上傳人:good****022 文檔編號:116482439 上傳時間:2022-07-05 格式:DOC 頁數(shù):25 大?。?72.54KB
收藏 版權(quán)申訴 舉報 下載
《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計報告書-簡單的小學(xué)生做題系統(tǒng)的設(shè)計和實現(xiàn).doc_第1頁
第1頁 / 共25頁
《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計報告書-簡單的小學(xué)生做題系統(tǒng)的設(shè)計和實現(xiàn).doc_第2頁
第2頁 / 共25頁
《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計報告書-簡單的小學(xué)生做題系統(tǒng)的設(shè)計和實現(xiàn).doc_第3頁
第3頁 / 共25頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計報告書-簡單的小學(xué)生做題系統(tǒng)的設(shè)計和實現(xiàn).doc》由會員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計報告書-簡單的小學(xué)生做題系統(tǒng)的設(shè)計和實現(xiàn).doc(25頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、懷 化 學(xué) 院 計 算 機 系數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告書 學(xué)生姓名: 學(xué) 號:0806401042年級專業(yè)及班級:2008級01班指導(dǎo)老師及職稱:專 業(yè):計算機科學(xué)與技術(shù)專業(yè)湖南懷化提交日期:2010年06月 目 錄摘 要II關(guān)鍵詞II1 前言22 設(shè)計分析23 實現(xiàn)方法23.1 函數(shù)功能介紹2 3.1.1定義全局變量.2 3.1.2 函數(shù)功能的描述.23.2函數(shù)功能的實現(xiàn)2 3.2.1源碼與分析.2 3.2.2被調(diào)用的函數(shù).23.3程序演示.24 系統(tǒng)使用說明書25 結(jié)論2參考文獻2致 謝.2附 錄.2 簡單的小學(xué)生做題系統(tǒng)的設(shè)計和實現(xiàn)學(xué)生: 指導(dǎo)老師: (懷化學(xué)院計算機系:懷化 418008)

2、摘 要:本次課程設(shè)計的目的是設(shè)計一個簡單的小學(xué)生做題系統(tǒng),要求利用棧求表達式的值,可供小學(xué)生作業(yè),并能給出分?jǐn)?shù),限1人完成。本次設(shè)計主要采用的語言是C和C+語言,編程環(huán)境是VC.6。系統(tǒng)由若干個函數(shù)構(gòu)成,用到了棧、函數(shù)調(diào)用、文件的開閉和讀寫和常見的循環(huán)等手法,經(jīng)過多次的調(diào)試與修改,終于實現(xiàn)了設(shè)計所要求的各項要求,做成了一個簡單的能供小學(xué)生選題、做題并能打出分?jǐn)?shù)與歷史成績相比較的簡單系統(tǒng),很好的完成了這一次的課程設(shè)計任務(wù)。通過這一次的作業(yè),我學(xué)到了很多知識,明白了親自實踐和動手能力的重要性。關(guān)鍵詞:棧 VC.6 循環(huán) 函數(shù)調(diào)用 文件 一、 前言本次課程設(shè)計的目的是設(shè)計一個簡單的小學(xué)生做題系統(tǒng),設(shè)

3、計要求能建立試題庫文件,隨機產(chǎn)生n個題目;題目涉及加減乘除,帶括弧的混合運算;隨時可以退出;保留歷史分?jǐn)?shù),能回顧歷史,給出與歷史分?jǐn)?shù)比較后的評價。針對題目的各項要求,我運用C語言工具在VC.6的環(huán)境中,通過結(jié)構(gòu)體數(shù)組、函數(shù)的調(diào)用、循環(huán)的使用以及文件的開閉和讀寫等常用方法來解決在編程過程中遇到的問題,編寫出了一個符合設(shè)計要求的簡單系統(tǒng)。二、 設(shè)計分析根據(jù)題目的要求,我根據(jù)題目要求實現(xiàn)的功能,首先確定了8個大的子函數(shù),分別用來實現(xiàn)輸出目錄表、提取題目、對系統(tǒng)的說明、存儲所有成績、輸出所有成績、存儲最近一次成績、輸出最近一次成績、開始作業(yè)等功能。由于其中涉及了能回顧歷史成績以及隨機做題等問題,所以就

4、考慮用到了文件的打開與關(guān)閉以及文件的讀寫功能。由于此設(shè)計要實現(xiàn)多個功能,所以為了源代碼清晰明了,所有的函數(shù)不是用的嵌套方式,而是對每個功能都用一個子程序來實現(xiàn),然后通過對子程序的調(diào)用來達到設(shè)計的要求。三、 實現(xiàn)方法本程序通過C和C+語言來實現(xiàn),在VC6.0下運行3.1 函數(shù)功能介紹3.1.1 由于此系統(tǒng)設(shè)計的變量較多,為了使程序清晰明了,首先定義了一些有關(guān)的全局變量:float answer50;float myAnswer50;int count;int Right;char filename120=所有成績.txt; char filename220=最近一次的成績.txt; /char

5、ti20050; int tiliang; int *record; struct tm *tblock; time_t timer;char s50;int tops;float d100;int topd;char c;int r;3.1.2 函數(shù)功能的描述1.char menu() 菜單界面 ;2.void Title() 提取題目,并返回題目個數(shù);3.void EXIT () 對系統(tǒng)的說明;4.void save_all_achievment() 存儲所有成績;5.void out_all_achievment() 輸出所有成績;6.void save_latest_achievmen

6、t() 存儲最近一次成績;7.void out_latest_achievment() 輸出最近一次成績;8.void expression() 隨機抽提;9.void do_homework() 開始作業(yè);10.void main() 主函數(shù)。3.2 函數(shù)功能的實現(xiàn)3.2.1 源碼分析程序預(yù)處理: #include #include#include#include3.2.2 被調(diào)用函數(shù)char menu()char item;/選項;coutendlendlendl;cout 小學(xué)生測試系統(tǒng) endl;coutendl;cout 1.介紹 4.歷史記錄 endl;cout endl;cout

7、 2.開始測試 5.最后一次記錄 endl;cout endl;cout 3.退出 6.刪除所有記錄 endl;cout endl;coutendlendl;coutitem)if(item!=1 & item!=2 & item !=3 & item !=4 & item!=5 & item!=6)cout 菜單選項不正確,請重新選擇! ;elsebreak;return item;void save_all()/-存儲所有成績FILE *fp;char ch;fp=fopen(filename1,a);fprintf(fp,nnnn *本次測試情況總結(jié)* n); fprintf(fp, -

8、 n);fprintf(fp, 題目 正確答案 您的答案 結(jié)果 n);for(int i=0;icount;i+)fprintf(fp, %-12s %-6.2f %-6.2f %s n,tirecordi,answeri,myAnsweri,answeri=myAnsweri?正確!:錯誤!);fprintf(fp, - n);fprintf(fp, 解答題目總共為%d道,其中n,count);fprintf(fp, 正確解答%d道題,錯誤解答%d道題。nn *最后得分為%d分!*n,Right,count-Right,Right*100/count); fprintf(fp, -n);fp

9、rintf(fp, 本次測試時間: %s,asctime(tblock);fclose(fp);void EXIT()/-退出系統(tǒng)coutendlendlendlendlendlendlendlendl;cout 謝謝使用!endl;void show_all()/-輸出所有成績FILE *fp;char ch;if(fp=fopen(filename1,r)=NULL)coutendlendlendl 沒有任何記錄endl;coutendl 請按回車鍵返回。;elsewhile(!feof(fp)ch=fgetc(fp);coutch;fclose(fp);coutendlendl 請按回車

10、鍵返回:;getchar();getchar();system(cls);void save_current()/-存儲最近一次的成績 FILE *fp;char ch;fp=fopen(filename2,w);ch=getchar();fprintf(fp,nnnn *上一次測試情況總結(jié)* n); fprintf(fp, - n);fprintf(fp, 題目 正確答案 您的答案 結(jié)果 n);for(int i=0;icount;i+)fprintf(fp, %-12s %-6.2f %-6.2f %s n,tirecordi,answeri,myAnsweri,answeri=myAns

11、weri?正確!:錯誤!);fprintf(fp, - n);fprintf(fp, 解答題目總共為%d道,其中n,count);fprintf(fp, 正確解答%d道題,錯誤解答%d道題。nn *最后得分為%d分!*n,Right,count-Right,Right*100/count); fprintf(fp, -n);fprintf(fp, 測試時間: %s,asctime(tblock);fclose(fp);void out_latest_achievment()/-輸出最近一次的成績;FILE *fp;char ch;if(fp=fopen(filename2,r)=NULL)co

12、utendlendlendl 沒有任何記錄endl;coutendl 請按回車鍵返回。;elsewhile(!feof(fp)ch=fgetc(fp);coutch;fclose(fp);coutendlendl=0&c=0&c=9);numbernum=0;dtopd+=atof(number);elsej=change(c);i=change(stops-1);switch(tokenij)case -1: stops+=c;c=tirk+;break;case 0: tops-;c=tirk+;break;case 1: calculate();break;answercount=dto

13、pd-1;void start_test()/-開始測試char Save;char l=q;char con;int i,n,j,e,q;loop:count=0;Right=0;r=0; coutn)if(ntiliang)cout少做點吧,等會做不完哦!endl;continue;elsebreak;system(cls);cout你選擇題目的個數(shù)為:nendl;e=0;q=1; record=new intn; /正在做第幾道題目;while(en)if(l=#)break;r=rand()%tiliang;for(j=0;je;j+) /篩選去掉重復(fù)的題目;if(r=recordj)

14、break;if(j=e)recorde+=r;exercise();cout第q+道題:endl;couttir; scanf(%f,&myAnswercount+); if(answercount-1=myAnswercount-1) Right+;l=getchar();coutendlendl 本次測試已經(jīng)完成,請按回車鍵查看結(jié)果!endl;getchar();getchar();system(cls); printf(nnnn *本次測試情況總結(jié)* n);printf( - n);printf( 題目 正確答案 您的答案 結(jié)果 n);for(i=0;icount;i+)printf(

15、 %-12s %-6.2f %-6.2f %s n,tirecordi,answeri,myAnsweri,answeri=myAnsweri?正確!:錯誤!);printf( - n);printf( 解答題目總共為%d道,其中n,count);printf( 正確解答%d道題,錯誤解答%d道題。nn *最后得分為%d分!*n,Right,count-Right,Right*100/count); printf( -n); timer=time(NULL); tblock=localtime(&timer); printf( 本次測試時間: %s,asctime(tblock);couten

16、dlSave)if(Save!=Y & Save!=N)cout 選項不對:;continue;elseif(Save=Y)save_all();save_current();coutcon)if(con!=Y & con!=N)cout 選項不對:;continue;elseif(con=Y)system(cls);goto loop;elsebreak;free(record);break;elsebreak;system(cls);3.3 程序演示選16這幾項將出項相應(yīng)的界面,按照提示進行操作,即可完成目的。下面分別看看幾個子菜單的功能界面:當(dāng)輸入“1”時出現(xiàn)如下界面:按回車鍵返回后,輸

17、入“2” 并輸入選題個數(shù):輸入“4”:輸入“5”:輸入“6”:四、系統(tǒng)使用說明書本系統(tǒng)所需數(shù)據(jù)必須嚴(yán)格按照要求輸入,本系統(tǒng)適合與公共場所使用。五、結(jié)論雖然學(xué)了這么久的數(shù)據(jù)結(jié)構(gòu),但是做這種題型的時候還是感到非常吃力,對棧和函數(shù)調(diào)用等這些常用的東西卻還是不能夠靈活運用。這次的課程設(shè)計讓我獲益匪淺,不僅學(xué)到了以前從未接觸過的知識,更重要的是培養(yǎng)了自己獨立思考問題和動手解決問題的能力。參考文獻1 數(shù)據(jù)結(jié)構(gòu)(C語言版) 嚴(yán)蔚敏 吳偉民 編著(第七章:頁碼 4447)2 C程序設(shè)計(第三版) 譚浩強 著作致 謝 此報告是在黃隆華老師的悉心指導(dǎo)和熱情幫助下完成的,在此表示衷心的感謝!附錄附錄 1 源碼#in

18、clude #include#include #include stdlib.husing namespace std;struct tm *tblock; time_t timer;char s50;int tops;float d100;int topd;char c;int r;float ans50;float yours50;int count;int Right;char filename120=所有成績.txt;/存儲所有成績的 文件名;char filename220=最近一次的成績.txt;/存儲最近一次成績的 文件名;char ti20050;/將文件中的題庫題目提取出來存

19、入數(shù)組;int ti_len;/題目總量;int *jilu;/記錄所選題目的下標(biāo);char menu()char item;/項目;coutendlendlendl;cout 小學(xué)生作業(yè)系統(tǒng) endl;cout endl;cout 1.說明 4.歷史成績 endl;cout endl;cout 2.開始作業(yè) 5.最后一次成績 endl;cout endl;cout 3.退出 6.刪除所有歷史 endl;cout endl;coutendlendl;coutitem)if(item!=1 & item!=2 & item !=3 & item !=4 & item!=5 & item!=6)c

20、out 菜單項目不正確,請重新選擇! ;elsebreak;return item;void Title()/-提取題目,并返回題目個數(shù);FILE *fp;int i=0;fp=fopen(題庫.txt,r);while(!feof(fp) fscanf(fp,%s,tii+);ti_len=i-1;/最后一個空格不算題目;void EXIT()/-退出系統(tǒng)coutendlendlendlendlendlendlendlendl;cout 謝謝使用!endl;void INSTRUCTION()/-說明char c;FILE *fp;fp=fopen(說明.txt,r);while(!feof

21、(fp)c=fgetc(fp);coutc;fclose(fp);coutendlendl 請按回車鍵返回:;getchar();getchar();system(cls);void save_all_achievment()/-存儲所有成績FILE *fp;char ch;fp=fopen(filename1,a);fprintf(fp,nnnn *本次作業(yè)情況總結(jié)* n); fprintf(fp, - n);fprintf(fp, 題目 正確答案 您的答案 結(jié)果 n);for(int i=0;icount;i+)fprintf(fp, %-12s %-6.2f %-6.2f %s n,ti

22、jilui,ansi,yoursi,ansi=yoursi?正確!:錯誤!);fprintf(fp, - n);fprintf(fp, 解答題目總共為%d道,其中n,count);fprintf(fp, 正確解答%d道題,錯誤解答%d道題。nn *最后得分為%d分!*n,Right,count-Right,Right*100/count); fprintf(fp, -n);fprintf(fp, 本次作業(yè)時間: %s,asctime(tblock);fclose(fp);void out_all_achievment()/-輸出所有成績FILE *fp;char ch;if(fp=fopen(

23、filename1,r)=NULL)coutendlendlendl 沒有任何記錄endl;coutendl 請按回車鍵返回。;elsewhile(!feof(fp)ch=fgetc(fp);coutch;fclose(fp);coutendlendl 請按回車鍵返回:;getchar();getchar();system(cls);void save_latest_achievment()/-存儲最近一次的成績 FILE *fp;char ch;fp=fopen(filename2,w);ch=getchar();fprintf(fp,nnnn *上一次作業(yè)情況總結(jié)* n); fprintf

24、(fp, - n);fprintf(fp, 題目 正確答案 您的答案 結(jié)果 n);for(int i=0;icount;i+)fprintf(fp, %-12s %-6.2f %-6.2f %s n,tijilui,ansi,yoursi,ansi=yoursi?正確!:錯誤!);fprintf(fp, - n);fprintf(fp, 解答題目總共為%d道,其中n,count);fprintf(fp, 正確解答%d道題,錯誤解答%d道題。nn *最后得分為%d分!*n,Right,count-Right,Right*100/count); fprintf(fp, -n);fprintf(fp

25、, 作業(yè)時間: %s,asctime(tblock);fclose(fp);void out_latest_achievment()/-輸出最近一次的成績;FILE *fp;char ch;if(fp=fopen(filename2,r)=NULL)coutendlendlendl 沒有任何記錄endl;coutendl 請按回車鍵返回。;elsewhile(!feof(fp)ch=fgetc(fp);coutch;fclose(fp);coutendlendl=0&c=0&c=9); /判斷是否是數(shù)字numbernum=0; /將數(shù)字字符轉(zhuǎn)換成整數(shù)dtopd+=atof(number); /

26、將數(shù)字進棧elsej=change(c); /j為讀取到的符號i=change(stops-1); /i為符號棧的棧頂符號switch(tokenij) /判斷優(yōu)先級case -1: stops+=c;c=tirk+;break;case 0: tops-;c=tirk+;break;case 1: calculate();break;anscount=dtopd-1;/printf(%d,dtopd-1);/getchar();void do_homework()/-開始作業(yè)char Save;char l=q;char con;int i,n,j,e,q;jixu:count=0;Righ

27、t=0;r=0; coutn)if(nti_len)cout少做點吧,等會做不完哦!endl;continue;elsebreak;system(cls);cout你選擇題目的個數(shù)為:nendl;e=0;q=1; jilu=new intn; /正在做第幾道題目;while(en)if(l=#)break; /當(dāng)l=#表示結(jié)束做題r=rand()%ti_len; /rand為隨機產(chǎn)生的數(shù),與題數(shù)的模式為了避免選到重復(fù)的題目for(j=0;je;j+) /篩選去掉重復(fù)的題目;if(r=jiluj)break;if(j=e)jilue+=r; /r題目下標(biāo),e為當(dāng)前題目量expression();

28、cout第q+道題:endl;couttir; scanf(%f,&yourscount+); if(anscount-1=yourscount-1) Right+;l=getchar();coutendlendl 本次作業(yè)已經(jīng)完成,請按回車鍵查看結(jié)果!endl;getchar();/getchar();system(cls); printf(nnnn *本次作業(yè)情況總結(jié)* n);printf( - n);printf( 題目 正確答案 您的答案 結(jié)果 n);for(i=0;icount;i+)printf( %-12s %-6.2f %-6.2f %s n,tijilui,ansi,your

29、si,ansi=yoursi?正確!:錯誤!);printf( - n);printf( 解答題目總共為%d道,其中n,count);printf( 正確解答%d道題,錯誤解答%d道題。nn *最后得分為%d分!*n,Right,count-Right,Right*100/count); printf( -n); timer=time(NULL); tblock=localtime(&timer); printf( 本次作業(yè)時間: %s,asctime(tblock);coutendlSave)if(Save!=Y & Save!=N)cout 選項不對:;continue;elseif(Sa

30、ve=Y)save_all_achievment();save_latest_achievment();coutcon)if(con!=Y & con!=N)cout 選項不對:;continue;elseif(con=Y)system(cls);goto jixu;elsebreak;free(jilu);break;elsebreak;system(cls); void main() int i; char menuitem;Title();loop:menuitem=menu();system(cls);if(menuitem=3)EXIT();return ;elseif(menuit

31、em=1)INSTRUCTION();goto loop;/ 返回菜單界面;elseif(menuitem=4)out_all_achievment();goto loop;/ 返回菜單界面;elseif(menuitem=2)do_homework();goto loop;/ 返回菜單界面;elseif(menuitem=5)out_latest_achievment();goto loop;/ 返回菜單界面;elseif(menuitem=6)char del;system(cls);coutendlendlendldel)if(del!=Y & del!=N)cout 選項不正確:;continue;

展開閱讀全文
溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!