單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)_第1頁
單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)_第2頁
單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)_第3頁
單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)_第4頁
單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系課程設(shè)計(jì)任務(wù)書20102011學(xué)年第二學(xué)期課程C+課程設(shè)計(jì)課 程設(shè)計(jì) 名稱 單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)專業(yè)班級計(jì)算機(jī)科學(xué)與技術(shù)嵌入式(2)指導(dǎo)教師華姍姍20 11年6月29日一、課程設(shè)計(jì)目的將理論教學(xué)中涉及到的知識點(diǎn)貫穿起來, 對不同的數(shù)據(jù)類型、 程序控制結(jié)構(gòu)、 數(shù)據(jù) 結(jié)構(gòu)作一比較和總結(jié), 結(jié)合設(shè)計(jì)題目進(jìn)行綜合性應(yīng)用, 對所學(xué)知識達(dá)到融會貫通的程度。 通過課程設(shè)計(jì),學(xué)生在下述各方面的能力應(yīng)該得到鍛煉:(1)進(jìn)一步鞏固、加深學(xué)生所學(xué)專業(yè)課程 C+ 程序設(shè)計(jì)語言的基本理論知識, 理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力。(2)全面考核學(xué)生所掌握的基本理論知識

2、及其實(shí)際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生 素質(zhì)的最終目的。(3)利用所學(xué)知識,開發(fā)小型應(yīng)用系統(tǒng),掌握運(yùn)用 C+ 語言編寫調(diào)試應(yīng)用系統(tǒng)程 序,訓(xùn)練獨(dú)立開發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力。(4)對于給定的設(shè)計(jì)題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。(5)掌握結(jié)構(gòu)化程序設(shè)計(jì)方法,熟悉面向?qū)ο蟪绦蛟O(shè)計(jì)方法。(6)熟練掌握C+語言的基本語法,靈活運(yùn)用各種數(shù)據(jù)類型。( 7)進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序和修改程序。二、課程設(shè)計(jì)名稱及內(nèi)容課程設(shè)計(jì)名稱: 單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)設(shè)計(jì)內(nèi)容: 設(shè)計(jì)并實(shí)現(xiàn)一個(gè)單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)。該系統(tǒng)可以完成試題錄入、 試題抽取、自動判卷等功能。三、任務(wù)和要求(

3、一)功能要求:(1)用文件保存試題庫。(每個(gè)試題包括題干、 4 個(gè)備選答案、標(biāo)準(zhǔn)答案)( 2 ) 試題錄入:可隨時(shí)增加試題到試題庫中(3)試題抽?。好看螐脑囶}庫中可以隨機(jī)抽出 N道題(N由鍵盤輸入)( 4) 答題:用戶可實(shí)現(xiàn)輸入自己的答案(5) 自動判卷:系統(tǒng)可根據(jù)用戶答案與標(biāo)準(zhǔn)答案的對比實(shí)現(xiàn)判卷并給出成績。(二)其它要求:(1)只能使用C/C+語言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀( 2) 至少采用文本菜單界面(如果能采用圖形菜單界面更好)( 3) 學(xué)生可自動增加新功能模塊(視情況可另外加分)四、 主要知識點(diǎn)面向?qū)ο蟪绦蛟O(shè)計(jì)方法 界面制作, switch 的應(yīng)用 類和對象。動態(tài)數(shù)組(鏈表

4、)類模板。文件的讀寫。五、 其他程序設(shè)計(jì)可在 Microsoft VC+6.0 、 Borland C+ Builder 環(huán)境下進(jìn)行。六、 參考資料1 鄭莉等編著C+語言程序設(shè)計(jì)(第三版)北京:清華大學(xué)出版社2 鄭莉等編著C+語言程序設(shè)計(jì)(第三版)學(xué)生用書北京:清華大學(xué)出版社3 李春葆等編著C+程序設(shè)計(jì)學(xué)習(xí)與上機(jī)實(shí)驗(yàn)指導(dǎo)北京:清華大學(xué)出版社4 范輝 等編著 Visual C+6.0 程序設(shè)計(jì)簡明教程 高等教育出版社李龍澍C+程序設(shè)計(jì)實(shí)訓(xùn)教程北京:清華大學(xué)出版社6 洪國勝 等編著 C+ Builder 程序設(shè)計(jì)輕松上手北京:清華大學(xué)出版社7 嚴(yán)蔚敏等 數(shù)據(jù)結(jié)構(gòu)( c 語言版) 北京:清華大學(xué)出版

5、社, 1997年 4 月第 1 版。8 胡學(xué)鋼等數(shù)據(jù)結(jié)構(gòu)算法設(shè)計(jì)指導(dǎo)北京:清華大學(xué)出版社, 1999年 第1版。1 目的與要求一 目的: 設(shè)計(jì)一個(gè)單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng),方便考試時(shí)試題的錄入與批改。二 要求:(1) 用文件保存試題庫。(每個(gè)試題包括題干、 4個(gè)備選答案、標(biāo)準(zhǔn)答案) ;(2) 試題錄入:可隨時(shí)增加試題到試題庫中;(3) 試題抽?。好看螐脑囶}庫中可以隨機(jī)抽出 N道題(N由鍵盤輸入);(4) 答題:用戶可實(shí)現(xiàn)輸入自己的答案;(5) 自動判卷:系統(tǒng)可根據(jù)用戶答案與標(biāo)準(zhǔn)答案的對比實(shí)現(xiàn)判卷并給出成績。2 總體設(shè)計(jì)總的概敘:1 、用來保存試題庫 , 可以用到” Struct TestNod

6、e Testquestions ”結(jié)構(gòu)體數(shù)組 ,將試 題一一對應(yīng)的保留下來 , 放在相應(yīng)的文件里;2、 試題 的錄入,可以定義一個(gè)” void In putTitle(i ntN)”和” Status InsertNode(int &N) ”函數(shù)將試題錄入;3、試題的抽取 , 可以定義一個(gè)” void printNode(TestNode p,int n) ”的函數(shù) ,用 至Ranc”函數(shù)進(jìn)行隨機(jī)抽??;4、答題方面 , 則定義一個(gè)” void answer(int sum) ”函數(shù)用于答題者的輸入答案;5、自動判卷 ,則可以定義一個(gè)” Status Match(TestNode p,c

7、har m) ”函數(shù),用來對 比答題者答案和正確答案 , 給出判斷正確與否;6、用一個(gè) main 函數(shù)將上述各個(gè)函數(shù)功能塊連接起來 , 實(shí)現(xiàn)”單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系 統(tǒng)”的各個(gè)方面的功能 ,完成設(shè)計(jì) . 。二、大概流程圖3詳細(xì)設(shè)計(jì)3.1功能模塊設(shè)計(jì)3.1.1保存文件功能模塊:3.1.2輸出文件功能模塊:進(jìn)入函數(shù) ReadNode(int N)成功打開文件?_Retur nERRORN+1Retu判斷條件成立i+讀出數(shù)據(jù)rn ture3.1.3答題功能模塊:3.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)程序中主要用到了結(jié)構(gòu)體數(shù)組,定義類型,如typedef int Status等,用結(jié)構(gòu)體數(shù)組可以使得程序比較簡便,易于讀懂

8、,免去頻繁的賦值,而用定義類型,可以使得程序具有 移植性,健壯性好。-、操作界面4調(diào)試分析c < *C t Dn rruaent s fuid SeX 1: inslLAdwi 11 st r at n r W YDehwgSELiftilh 件宜 ft單項(xiàng)選揮題標(biāo)茶化考試系 姣容卷內(nèi)在件 行賓n出選 進(jìn)顯滁1R請UNISPTI15*1進(jìn)行答題并判卷請輸入你想要的笞題數(shù)目:2<1> if int ni=2,ri=3 F which is the riqht +m=n a 2b 1C 3D用請輸入警案汨答案正確豊<2> whirli !? the EBinnyy 白

9、 1111 1111 1111C 0009 0090 000請輸入答案汩1Q009&&Q-H in C?B 1Q00 100F)10M 1000D 1111 1111 ltll 0111禰的總成績?yōu)椋篫單項(xiàng)選擇題標(biāo)淮化考試系統(tǒng)容 卷內(nèi) 來件 題張題文統(tǒng)=. 行貢番選 過顯籐退請12 3 4 5UNRFIF15.在這一部分我發(fā)現(xiàn)如果題庫中沒有試題的話, 程序依然會讓你答題,顯示的題 目和選項(xiàng)都是空白的,操作起來很費(fèi)神。后來再程序中加了一個(gè)判斷題庫中題目數(shù)量顯示和比較答題數(shù)和試題數(shù)多少 的判斷語句,重新運(yùn)行得以解決。容卷內(nèi) 胃件 題張題文統(tǒng) 趁整試景:. 行一嘆存岀擇退選12 3

10、4 5讐中役有試題,請?zhí)砹υ嵲诘K備標(biāo)準(zhǔn)化考試系統(tǒng)bd顯示整張?jiān)嚲韮?nèi)容選這個(gè)選項(xiàng)的時(shí)候,如果題庫沒有試題,將會顯示空白 所以又在程序中加了一個(gè)和上一個(gè)差不多的判斷語句。四、插入試題五、退出系統(tǒng)曲"C:and Sert iTiesAr1»ini ?rTFaTnrrWiDRbiifffTiif'ewe甲頃選樣題標(biāo)推化考試系統(tǒng)容 祐內(nèi) s件 題張礬第:5 陞垂試紮擇 行一尖存出港 進(jìn)顯養(yǎng)1R請 12 3 4 5NISFIM5.調(diào)試分析結(jié)論 : 里面用到的隨機(jī)函數(shù)在隨機(jī)選擇試題時(shí) , 有時(shí)會遇到選擇出來的試題時(shí)重復(fù)的 , 由于時(shí)間比較緊迫 , 暫時(shí)還沒有找出原因 , 修正過來

11、 .5 總結(jié)經(jīng)過這整整5天的C+課程設(shè)計(jì)的訓(xùn)練,我學(xué)到了很多,最主要的一點(diǎn)是怎樣去運(yùn)用 自己學(xué)過的知識,怎樣去找到你所需要的資料,并在短時(shí)間把它運(yùn)用到具體的實(shí)踐中 , 運(yùn)用到你所需要的方面。 這個(gè)過程是很艱難的, 要花費(fèi)很多的時(shí)間和精力, 但是,在事 情過后,自己就會發(fā)現(xiàn)自己已經(jīng)在這個(gè)過程中學(xué)到了自己想要的東西, 這種獲得是更深 刻的。在做這個(gè)C+課程設(shè)計(jì)的時(shí)候,我原先也是學(xué)的不怎么好,什么是結(jié)構(gòu)體數(shù)據(jù),什么 是定義類型,怎樣在一個(gè) main 函數(shù)中調(diào)用別的定義函數(shù),等等,可以說是忘得差不多 了。然而,在這門課程設(shè)計(jì)中 , 這些方面卻是特別重要的, 可以說,掌握了這個(gè) , 你就完 全可以完成自

12、己的任務(wù)。這就要求我們要自己去學(xué),自己去探索。當(dāng)然 , 看書、問同學(xué) 是必不可少的,還有, 身邊有非常豐富的網(wǎng)絡(luò)資源給我們好好利用 , 百度就是個(gè)很不錯(cuò)的 地方。這樣就從另一方面鍛煉了我們檢索知識獲取信息的能力,在這個(gè)過程中 , 可以學(xué) 到的是一種提升自我的能力。當(dāng)然, 由于個(gè)人能力所限, 這份課程設(shè)計(jì)有一些別的方面還是要參考人家的的資料, 在讀懂別人材料的同時(shí), 自己取人所長, 補(bǔ)己之短, 經(jīng)過多次的調(diào)試 , 總結(jié), 最后交出一 份自己比較滿意的答卷。通過這次的課程設(shè)計(jì),讓我進(jìn)一步的了解到C+在我們?nèi)粘I钪械闹匾?,而? 也更進(jìn)一步的激發(fā)了我學(xué)習(xí)這門語言的興趣 . 經(jīng)過這次的訓(xùn)練,我相信

13、自己以后會用更 多的時(shí)間來把這門語言學(xué)好,掌握好這門必修的基礎(chǔ)語言。6.附錄#include<iostream> #include<vector> /#include<ctype.h> #include<fstream> #include<stdlib.h> /#include<string> using namespace std;#define TRUE 1#define ERROR 0#define MAX 30typedef int Status;typedef structchar option130,optio

14、n230,option330,option430,subject150; char result;TestNode;TestNode TestquestionsMAX;Status SaveNode(int N) / 把結(jié)構(gòu)體數(shù)組保存到文件 "cheng" 中 , 如成功保存返回TRUE否貝U返回ERROR int i;FILE *fp; if(fp=fopen("cheng","wb")=NULL) return ERROR; for(i=0;i<N;i+)fwrite(&Testquestionsi,sizeof(T

15、estNode),1,fp);fclose(fp);return TRUE;Status ReadNode(int &N) / 從文件讀出結(jié)構(gòu)體數(shù)組的內(nèi)容 , 如成功讀取返回TRUE否貝U返回ERROR FILE *fp;int i=0; if(fp=fopen("cheng","rb")=NULL) return ERROR;while(!feof(fp)/ 用 feof 檢測文件是否結(jié)束 , 如果結(jié)束 , 返回正確 fread(&Testquestionsi,sizeof(TestNode),1,fp); i+;N=i-1;retur

16、n TRUE;Status InsertNode(int &N) / 插入試題內(nèi)容if(N>MAX) return ERROR;cout<<" 請輸入所要插入題題目、題干和選項(xiàng) :"<<endl; cout<<" 請輸入題目: "gets(TestquestionsN.subject);cout<<" 請輸入選項(xiàng) A: "gets(TestquestionsN.option1);cout<<" 請輸入選項(xiàng) B: "gets(Testquest

17、ionsN.option2);cout<<" 請輸入選項(xiàng) C: " gets(TestquestionsN.option3); cout<<" 請輸入選項(xiàng) D: "gets(TestquestionsN.option4);cout<<endl;cout<<" 請輸入答案: " cin>>&TestquestionsN.result;getchar();N+; /N 表示結(jié)構(gòu)體數(shù)組長度 , 通 過加&號使其值能返回return TRUE;Status Delet

18、eNode(int n)/ 刪除數(shù)組中的第 n 個(gè)元素return TRUE;void printNode(TestNode p,int n)/ 輸出第 n 道題題目 cout<<n;cout<<" "<<p.subject<<" "<<endl;cout<<"A "<<p.option1<<" "cout<<"B "<<p.option2<<" &quo

19、t;<<endl;cout<<"C "<<p.option3<<" "cout<<"D "<<p.option4<<" "Status Match(TestNode p,char m)判斷m是否為p題目的答案,若是返回TRUE否則返回 ERRORif(m=p.result) return TRUE; else return ERROR;void answer(int sum)/ 進(jìn)行答題 int i,score=0,Num;char

20、 r;for(i=1;i<=sum;i+) Num=rand()%sum; / 隨機(jī)函數(shù) , 以隨機(jī)選定何題進(jìn)行解答 printNode(TestquestionsNum,Num+1);cout<<endl;cout<<" 請輸入答案 :"cin>>&r;getchar();if( Match(TestquestionsNum,r) / 調(diào)用函數(shù) IsMatch 判斷所輸入的答 案與標(biāo)準(zhǔn)答案是否相同 cout<<endl;cout<<" 答案正確 !"<<endl;sc

21、ore+;else cout<<endl;cout<<" 答案錯(cuò)誤 !"<<endl;cout<<" 你的總成績?yōu)?:"<<score<<endl;void main() char flag='N'int N=0,i, sum,score=0,chose;/*cout(" 輸入想建立的題目文件題目數(shù): ");cin>>&N;getchar();InputTitle(N);*/ReadNode(N); while(flag=

22、9;N'|flag='n') cout<<""<<""<<endl;cout<<endl;cout<<""<<"1cout<<""<<"2cout<<""<<"3cout<<""<<"4cout<<""<<"5cout

23、<<""<<"單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)進(jìn)行答題并判卷 "<<endl; 顯示整張?jiān)嚲韮?nèi)容 "<<endl; 插入試題 "<<endl; 保存到文件 "<<endl; 退出系統(tǒng) "<<endl;請選擇 :"cin>>chose;getchar();switch(chose)case 1:system("cls");if(N=0)cout<<" 題庫中沒有試題,請?zhí)砑雍笤谶M(jìn)行答題! "<<endl; break;cout<<" 題庫中共有 &

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論