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

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο蟪绦蛟O(shè)計(jì)(C+)課程大作業(yè)設(shè)計(jì)題目:?jiǎn)雾?xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)設(shè)計(jì)院系:計(jì)算機(jī)科學(xué)與信息工程學(xué)院專業(yè)班級(jí):學(xué)號(hào)姓名:指導(dǎo)教師:某老師2015年1月目錄一、成員分工 1二、需求分析 2三、總體設(shè)計(jì) 3四、詳細(xì)設(shè)計(jì) 4五、系統(tǒng)測(cè)試 10六、總結(jié) 13七、參考文獻(xiàn) 14一 成員分工我們小組成員共有三名,分別是為了能按時(shí)圓滿的完成這次C+課程設(shè)計(jì),我們小組進(jìn)行了詳細(xì)的分工, 以確保設(shè)計(jì)能按時(shí)完成。需要以下幾個(gè)功能模塊:經(jīng)過周密的考慮和詳細(xì)的調(diào)查最終確定單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)設(shè)計(jì)(1)需求分析(2)保存試題庫(3)試題的錄入(4)試題的抽取(5)答題(6)自動(dòng)判卷(7)系統(tǒng)測(cè)試(8)退出系統(tǒng)經(jīng)過

2、小組成員的討論,并根據(jù)個(gè)人的特長和具體愛好做如下具體分工:神具體完成以下模塊的設(shè)計(jì)與實(shí)現(xiàn):(1 )需求分析(2 )保存試題庫(3 )試題的錄入具體完成以下模塊的設(shè)計(jì)與實(shí)現(xiàn):(1)試題的抽?。?)答題具體完成以下模塊的設(shè)計(jì)與實(shí)現(xiàn):(1)自動(dòng)判卷(2)系統(tǒng)測(cè)試(3)退出系統(tǒng)二 需求分析1設(shè)計(jì)目的將理論教學(xué)中涉及到的知識(shí)點(diǎn)貫穿起來, 對(duì)不同的數(shù)據(jù)類型、 程序控制結(jié)構(gòu)、 數(shù)據(jù)結(jié)構(gòu)作一比較和 總結(jié),結(jié)合設(shè)計(jì)題目進(jìn)行綜合性應(yīng)用,對(duì)所學(xué)知識(shí)達(dá)到融會(huì)貫通的程度。通過課程設(shè)計(jì),學(xué)生在下述各 方面的能力應(yīng)該得到鍛煉:(1) 進(jìn)一步鞏固、加深學(xué)生所學(xué)專業(yè)課程C+程序設(shè)計(jì)語言的基本理論知識(shí),理論聯(lián)系實(shí)際, 進(jìn)一步培養(yǎng)

3、學(xué)生綜合分析問題,解決問題的能力。(2) 全面考核學(xué)生所掌握的基本理論知識(shí)及其實(shí)際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的。(3) 利用所學(xué)知識(shí),開發(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)對(duì)于給定的設(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)試程序和修改程序。2課程設(shè)計(jì)名稱及內(nèi)容課程設(shè)計(jì)名稱:?jiǎn)雾?xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng) 設(shè)計(jì)內(nèi)容:設(shè)計(jì)一個(gè)單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng),該系

4、統(tǒng)要求能自動(dòng)組卷和評(píng)分。3設(shè)計(jì)方案提示具體的功能:(1)用文件保存試題庫。 (每個(gè)試題包括題干、 4 個(gè)備選答案、標(biāo)準(zhǔn)答案) ;(2)試題錄入:可隨時(shí)增加試題到試題庫中;(3)試題抽?。好看螐脑囶}庫中可以隨機(jī)抽出 N 道題( N 由鍵盤輸入);(4)答題:用戶可實(shí)現(xiàn)輸入自己的答案;(5)自動(dòng)判卷:系統(tǒng)可根據(jù)用戶答案與標(biāo)準(zhǔn)答案的對(duì)比實(shí)現(xiàn)判卷并給出成績(jī)。 主要知識(shí)點(diǎn):(1)面向?qū)ο蟪绦蛟O(shè)計(jì)方法(2)界面的制作, switch 的應(yīng)用(3)類和對(duì)象(4)動(dòng)態(tài)數(shù)組(鏈表)類模板(5) 文件的讀寫 其他:程序設(shè)計(jì)可在MicrosoftVC+6.0、Borland C+ Builder 環(huán)境下進(jìn)行。 三總

5、體設(shè)計(jì)1. 總的敘述1 、用來保存試題庫,可以用到”保留下來,放在相應(yīng)的文件里;Struct TestNode Testquestions結(jié)構(gòu)體數(shù)組,將試題一一對(duì)應(yīng)的2、試題的錄入,可以定義一個(gè)”函數(shù)將試題錄入;void In putTitle(i nt N)”和” Status In sertNode(i nt &N)”3、試題的抽取,可以定義一個(gè)”void printNode(TestNode p,int n)” 的函數(shù),用到” Rand函數(shù)進(jìn)行隨機(jī)抽取;4、 答題方面”則定義一個(gè)”void answer(int sum)”函數(shù)用于答題者的輸入答案;5、自動(dòng)判卷,則可以定義一個(gè)” Stat

6、us Match(TestNode p,char m)”函數(shù),用來對(duì)比答題者答案和正確答案,給出判斷正確與否;6 、用一個(gè)main函數(shù)將上述各個(gè)函數(shù)功能塊連接起來,實(shí)現(xiàn)”單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)”的各個(gè)方面的功能,完成設(shè)計(jì)2. 大概流程圖容7四詳細(xì)設(shè)計(jì)1.程序流程圖(1) 保存文件遊入函繳 Sa-eNodc(mt N)咸功打開文件功打開交件?-*N Y.U 1ReturnERRORi 1劉斷案件威立.,1-謹(jǐn)屮對(duì)蝎卄.,N-1 .Rstuiu tuxt (3) 答題功能模塊(4) 結(jié)構(gòu)程序中主要用到了結(jié)構(gòu)體數(shù)組 , 定義類型 , 如 typedef int Status 等, 用結(jié)構(gòu)體數(shù)組可

7、以使得程序比較簡(jiǎn)便 , 易于讀懂 ,免去頻繁的賦值 , 而用定義類型 , 可以使得程序具有移植 性, 健壯性好。2. 功能模塊(1) 文件的保存和讀取模塊實(shí)現(xiàn)此功能代碼如下:把結(jié)構(gòu)體數(shù)組保存到文件wenjian中,如成功保存返回TRUE,否則返回ERRORStatus SaveNode(i nt N) int i;FILE *fp;if(fp=fopen(wenjian,wb)=NULL) return ERROR;for(i=0;iMAX) return ERROR;cout 請(qǐng)輸入所要插入題題目、題干和選項(xiàng) :endl;cout 請(qǐng)輸入題目: ; gets(TestquestionsN.s

8、ubject);cout 請(qǐng)輸入選項(xiàng) A: ; gets(TestquestionsN.option1);cout 請(qǐng)輸入選項(xiàng) B: ; gets(TestquestionsN.option2);cout 請(qǐng)輸入選項(xiàng) C: ; gets(TestquestionsN.option3);cout 請(qǐng)輸入選項(xiàng) D: ; gets(TestquestionsN.option4);coutendl;cout&TestquestionsN.result;getchar();, 通過加 &號(hào)使其值N+; /N 表示結(jié)構(gòu)體數(shù)組長度 能返回return TRUE;(3) 試題的輸出模塊實(shí)現(xiàn)此功能相關(guān)代碼如下:

9、void printNode(TestNode p,int n)/輸出第 n 道題題目coutn;cout p.subject endl;coutA p.option1 ;coutB p.option2 endl;coutC p.option3 ;coutD p.option4 ;4)答題判卷模塊實(shí)現(xiàn)此功能相關(guān)代碼如下:判斷m是否為p題目的答案,若是返回 TRUE否則返回ERRORStatus Match(TestNode p,char m)if(m=p.result) return TRUE;else return ERROR;進(jìn)行答題void answer(int sum)/ 進(jìn)行答題in

10、t k,score=0,Num; char r;int aMAX,i; for(k=1;k=sum;k+) for(i=0; i=1; -i) swap(ai-1, arand()%i);Num=ai-1; / 隨機(jī)函數(shù) , 以隨機(jī)選定何題進(jìn)行解答 printNode(TestquestionsNum,Num+1);coutendl;cout&r;getchar();調(diào)用函數(shù) IsMatch 判斷所輸入的答案與標(biāo)準(zhǔn)答案if( Match(TestquestionsNum,r) / 是否相同 coutendl; cout 答案正確 !endl; score+;else coutendl;cout

11、 答案錯(cuò)誤 !endl;cout 你的總成績(jī)?yōu)?:score&N;getchar();InputTitle(N);*/ReadNode(N);while(flag=N|flag=n)21 coutcoutendl;cout1cout2cout3cout4cout5coutchose;getchar();endl;單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng) endl;進(jìn)行答題并判卷 endl; 顯示整張?jiān)嚲韮?nèi)容 endl; 插入試題 endl;保存到文件 endl;退出系統(tǒng) endl;請(qǐng)選擇 :;switch(chose)case 1:system(cls); if(N=0)題庫中沒有試題,請(qǐng)?zhí)砑雍笤谶M(jìn)行答題!c

12、outbreak;cout 題庫中共有 Nsum;getchar();if(sumN)cout 輸入錯(cuò)誤,請(qǐng)重新操作! ! endl;break;answer(sum);break;case 2:system(cls);if(N=0)endl;cout 題庫中沒有試題,請(qǐng)?zhí)砑雍笤谶M(jìn)行此類操作! break;for(i=1;i=N;i+) printNode(Testquestionsi-1,i);coutendl;break;case 3:system(cls);InsertNode(N);break;case 4:system(cls);if(SaveNode(N) cout 保存成功 !e

13、ndl;else cout 保存失敗 !endl;break;case 5:cout&flag;getchar();if(flag=Y|flag=y) exit(0);system(cls);break;default:cout 請(qǐng)輸入正確選擇 !7-H22B11C44D33*2+3 =H4B5C6D7單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)容判卷惡件張題文統(tǒng) 行Tg擇 進(jìn)顯ym選12 3 4 53. 保存到文件并進(jìn)行答題保存到文件保存咸功?單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)容S喪件 題張題文統(tǒng) SH=- 行Tg擇 SBS 選進(jìn)行答題題庫中共有2道試題,詰輸入答題個(gè)數(shù)池22+3 =A 4 B BC 6 D ?請(qǐng)輸入答案

14、汨答秦正確?1?7z7-fi 22 B 11G 釧 D 33請(qǐng)輸入答衆(zhòng)汨皆案耳確辛單項(xiàng)選擇題標(biāo)準(zhǔn)化若試系統(tǒng)容S奪件題蘇題文統(tǒng). 透顯選 12 3 4 請(qǐng)尿的總成鰭為=24. 退出系統(tǒng)退出系統(tǒng)保存成功!單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)你將退出系統(tǒng)宀or N?V容擁卷件 題張題文統(tǒng) sn 進(jìn)顯選ocess be七ur-ned o C0x0 execution tlime = 9G-592 s ess any ke 9 to continue H六 總結(jié)經(jīng)過這么多天的 C+課程設(shè)計(jì)的訓(xùn)練,我學(xué)到了很多,最主要的一點(diǎn)是怎樣去運(yùn)用自己學(xué)過的知識(shí),怎樣去找到你所需要的資料,并在短時(shí)間把它運(yùn)用到具體的實(shí)踐中 ,運(yùn)用

15、到你所需要的方面。這個(gè)過程 是很艱難的,要花費(fèi)很多的時(shí)間和精力, 但是,在事情過后, 自己就會(huì)發(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è) , 你就完全可以完成自己的任務(wù)。這就要求我們要自己 去學(xué), 自己去探索。 當(dāng)然,看書、問同學(xué)是必不可少的,還有 ,身邊有非常豐富的網(wǎng)絡(luò)資源給我們好好利 用,百度就是個(gè)很不錯(cuò)的地方。 這樣就從另一方面鍛煉

16、了我們檢索知識(shí)獲取信息的能力,在這個(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)練,我相信自己以后會(huì)用更多的時(shí)間來把這門語言學(xué)好, 掌握好這門必修的基礎(chǔ)語言。七 參考文獻(xiàn)1. 段鋼 編著 加密與解密(第三版) .電子工業(yè)出版社 .2009 年 8 月 .2. 趙樹升 趙韶平 . Windows

17、 信息安全原理與實(shí)現(xiàn) .清華大學(xué)出版社 .2004 年 9 月 .3 .賽奎春.Visual C+ 信息系統(tǒng)開發(fā)實(shí)例精選,20054 . 楊永國. Visual C+ 6.0 實(shí)用教程. 清華大學(xué)出版社 ,20045 . 唐俊明. Visual C+ 6.0 編程實(shí)例與技巧 . 高等教育出版, 20026 . 潘錦平. 軟件系統(tǒng)開發(fā)技術(shù) . 西安電子科技大學(xué)出版社 , 19977 . 鄭阿奇 丁有和 編著 Visual C+ (第 2版) .機(jī)械工業(yè)出版社 .2008 年 8月.8 .侯俊杰 編著 深入淺出MFC(第2版).華中科技大學(xué)出版社.2008年1月.9 . 孫鑫 余安萍 編著 VC+

18、 深入淺出詳解 . 電子工業(yè)出版社 .2006 年 6月.附錄源程序:#include#include#include#include#include using namespace std;#define TRUE 1#define ERROR 0#define MAX 30typedef int Status;typedef structchar option130,option230,option330,option430,subject150;char result;TestNode;TestNode TestquestionsMAX;Status SaveNode(int N)/把結(jié)

19、構(gòu)體數(shù)組保存到文件 cheng 中 ,如成功保存返回 TRUE, 否則返回 ERROR int i;FILE *fp; if(fp=fopen(cheng,wb)=NULL) return ERROR; for(i=0;iMAX) return ERROR;cout 請(qǐng)輸入所要插入題題目、題干和選項(xiàng) :endl;cout 請(qǐng)輸入題目: ;gets(TestquestionsN.subject);cout 請(qǐng)輸入選項(xiàng) A:;gets(TestquestionsN.option1);cout 請(qǐng)輸入選項(xiàng) B :;gets(TestquestionsN.option2);cout 請(qǐng)輸入選項(xiàng) C :

20、;gets(TestquestionsN.option3);cout 請(qǐng)輸入選項(xiàng) D :;gets(TestquestionsN.option4);coutendl;cout&TestquestionsN.result;getchar();N+; /N 表示結(jié)構(gòu)體數(shù)組長度 通過加 &號(hào)使其值能返回return TRUE;Status DeleteNode(int n)/ 刪除數(shù)組中的第 n 個(gè)元素return TRUE;void printNode(TestNode p,int n)/ 輸出第 n 道題題目 coutn;coutp.subjectendl;coutAp.option15cout

21、Bp.option2endl;coutCp.option35coutDp.option45Status Match(TestNode p,char m)/ 判斷 m 是否為 p 題目的答案, 若是返 回 TRUE ,否則返回 ERRORif(m=p.result) return TRUE;else return ERROR;void answer(int sum)/ 進(jìn)行答題int k,score=0,Num;char r;int aMAX,i;for(k=1;k=sum;k+) for(i=0; i=1; -i)swap(ai-1, arand()%i);Num=ai-1; /隨機(jī)函數(shù) ,以隨機(jī)選定何題進(jìn)行解答 printNode(TestquestionsNum,Num+1);coutendl; cout&r;getchar();if( Match(TestquestionsNum,r) / 調(diào)用函數(shù) IsMatch 判斷所輸入的 答案與標(biāo)準(zhǔn)答案是否相同 coutendl;cout 答案正確 !endl;score+;else coutendl;cout 答案錯(cuò)誤 !endl;cout 你的總成績(jī)?yōu)?:scoreendl;int ma

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論