




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、0 / 23 面向?qū)ο蟪绦蛟O(shè)計(jì)(面向?qū)ο蟪绦蛟O(shè)計(jì)(C+C+)課程大作業(yè))課程大作業(yè)設(shè)計(jì)題目:設(shè)計(jì)題目: 單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)設(shè)計(jì)單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)設(shè)計(jì) 院院 系:系: 計(jì)算機(jī)科學(xué)與信息工程學(xué)院計(jì)算機(jī)科學(xué)與信息工程學(xué)院 專業(yè)班級(jí):專業(yè)班級(jí): 學(xué)號(hào)姓名:學(xué)號(hào)姓名: 指導(dǎo)教師:指導(dǎo)教師: 某老師某老師 2015 年年 1 月月目目 錄錄一、一、 成員分工成員分工.1 1二、需求分析二、需求分析 .2 2三、總體設(shè)計(jì)三、總體設(shè)計(jì) .3 3四、詳細(xì)設(shè)計(jì)四、詳細(xì)設(shè)計(jì) .4 4五、系統(tǒng)測(cè)試五、系統(tǒng)測(cè)試 .1010六、總結(jié)六、總結(jié) .1313七、參考文獻(xiàn)七、參考文獻(xiàn) .1414一一 成員分工成員分工
2、我們小組成員共有三名,分別是為了能按時(shí)圓滿的完成這次 C+課程設(shè)計(jì),我們小組進(jìn)行了詳細(xì)的分工,以確保設(shè)計(jì)能按時(shí)完成。經(jīng)過周密的考慮和詳細(xì)的調(diào)查最終確定單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)設(shè)計(jì)需要以下幾個(gè)功能模塊:(1)需求分析(2)保存試題庫(kù)(3)試題的錄入(4)試題的抽取(5)答題(6)自動(dòng)判卷(7)系統(tǒng)測(cè)試(8)退出系統(tǒng)經(jīng)過小組成員的討論,并根據(jù)個(gè)人的特長(zhǎng)和具體愛好做如下具體分工: 神具體完成以下模塊的設(shè)計(jì)與實(shí)現(xiàn):(1 ) 需求分析(2 ) 保存試題庫(kù)(3 ) 試題的錄入 具體完成以下模塊的設(shè)計(jì)與實(shí)現(xiàn):(1)試題的抽?。?)答題 具體完成以下模塊的設(shè)計(jì)與實(shí)現(xiàn):(1)自動(dòng)判卷(2)系統(tǒng)測(cè)試(3)退出系統(tǒng)
3、二二 需求分析需求分析1 1設(shè)計(jì)目的設(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ì)語(yǔ)言的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力。 (2)全面考核學(xué)生所掌握的基本理論知識(shí)及其實(shí)際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的。 (3)利用所學(xué)知識(shí),開發(fā)小型應(yīng)用系統(tǒng),掌握運(yùn)用 C+語(yǔ)言編寫調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨(dú)立開發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力。(4)對(duì)于給
4、定的設(shè)計(jì)題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。 (5)掌握結(jié)構(gòu)化程序設(shè)計(jì)方法,熟悉面向?qū)ο蟪绦蛟O(shè)計(jì)方法。(6)熟練掌握 C+語(yǔ)言的基本語(yǔ)法,靈活運(yùn)用各種數(shù)據(jù)類型。(7)進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序和修改程序。2 2課程設(shè)計(jì)名稱及內(nèi)容課程設(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),該系統(tǒng)要求能自動(dòng)組卷和評(píng)分。3 3設(shè)計(jì)方案提示設(shè)計(jì)方案提示具體的功能: (1) 用文件保存試題庫(kù)。 (每個(gè)試題包括題干、4 個(gè)備選答案、標(biāo)準(zhǔn)答案) ; (2) 試題錄入:可隨時(shí)增加試題到試題庫(kù)中; (3) 試題抽?。好看螐脑囶}庫(kù)中可以隨機(jī)抽出
5、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ì)可在 Microsoft VC+6.0、Borland C+ Builder 環(huán)境下進(jìn)行。三三 總體設(shè)計(jì)總體設(shè)計(jì)1 1總的敘述總的敘述 1、用來保存試題庫(kù),可以用到”Struct TestNode Testquestions”結(jié)構(gòu)體數(shù)組,將試題一一對(duì)應(yīng)的 保留下來,放在相應(yīng)的文件里;
6、 2、試題的錄入,可以定義一個(gè)” void InputTitle(int N)”和” Status InsertNode(int &N)”函數(shù)將試題錄入; 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è)” Status Match(TestNode p,char m)”函數(shù),用來對(duì)比答題者答案和正確答案,給出判斷正確與否; 6、用一個(gè) main 函數(shù)將上述各個(gè)函數(shù)功
7、能塊連接起來,實(shí)現(xiàn)”單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)”的各個(gè)方面的功能,完成設(shè)計(jì)2 2大概流程圖大概流程圖單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)進(jìn)行答題并判卷顯示整張?jiān)嚲韮?nèi)容插入試題保存到文件退出系統(tǒng)四四 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)1.1.程序流程圖程序流程圖(1)保存文件)保存文件(2)輸出文件)輸出文件 (3) 答題功能模塊答題功能模塊進(jìn)入函數(shù) answer(int sum)i=1,isumNum=rand()%sum輸出數(shù)據(jù)從鍵盤獲得數(shù)據(jù)(4 4)結(jié)構(gòu))結(jié)構(gòu)程序中主要用到了結(jié)構(gòu)體數(shù)組,定義類型,如 typedef int Status 等,用結(jié)構(gòu)體數(shù)組可以使得程序比較簡(jiǎn)便,易于讀懂,免去頻繁的賦值,而用定義類型,可以使
8、得程序具有移植性,健壯性好。2.2.功能模塊功能模塊(1 1)文件的保存和讀取模塊)文件的保存和讀取模塊實(shí)現(xiàn)此功能代碼如下:把結(jié)構(gòu)體數(shù)組保存到文件wenjian中,如成功保存返回 TRUE,否則返回 ERRORStatus SaveNode(int 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.subject);cout請(qǐng)輸入選項(xiàng) A:;gets(Tes
9、tquestionsN.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();N+; /N 表示結(jié)構(gòu)體數(shù)組長(zhǎng)度,通過加&號(hào)使其值能返回return TRUE;(3 3)試題的輸出模塊)試題的輸出模塊實(shí)現(xiàn)此功能相關(guān)代碼如下:void printNode(TestNode p,i
10、nt n)/輸出第 n 道題題目coutn;cout p.subject endl;coutA p.option1 ;coutB p.option2 endl;coutC p.option3 ;coutD p.option4 ; (4 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)行答題 int k,score=
11、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;cou
12、t你的總成績(jī)?yōu)?score&N;getchar();InputTitle(N);*/ReadNode(N);while(flag=N|flag=n) cout 單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)endl; coutendl; cout 1 進(jìn)行答題并判卷endl; cout 2 顯示整張?jiān)嚲韮?nèi)容endl; cout 3 插入試題endl; cout 4 保存到文件endl; cout 5 退出系統(tǒng)endl; cout chose;getchar(); switch(chose) case 1:system(cls); if(N=0) cout題庫(kù)中沒有試題,請(qǐng)?zhí)砑雍笤谶M(jìn)行答題!endl; bre
13、ak; cout題庫(kù)中共有Nsum;getchar(); if(sumN) cout輸入錯(cuò)誤,請(qǐng)重新操作!endl; break; answer(sum); break; case 2:system(cls); if(N=0) cout題庫(kù)中沒有試題,請(qǐng)?zhí)砑雍笤谶M(jìn)行此類操作!endl; 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保存成功!end
14、l; else cout保存失敗!endl;break; case 5:cout&flag;getchar(); if(flag=Y|flag=y) exit(0); system(cls);break; default:cout請(qǐng)輸入正確選擇!endl; 五五 系統(tǒng)測(cè)試系統(tǒng)測(cè)試1 1運(yùn)行系統(tǒng),進(jìn)入界面運(yùn)行系統(tǒng),進(jìn)入界面2.2. 開始插入試題開始插入試題進(jìn)行插入試題連續(xù)插入兩道題進(jìn)行插入試題連續(xù)插入兩道題顯示整張?jiān)嚲韮?nèi)容3.3. 保存到文件并進(jìn)行答題保存到文件并進(jìn)行答題保存到文件進(jìn)行答題4.4.退出系統(tǒng)退出系統(tǒng)退出系統(tǒng)六六 總結(jié)總結(jié)經(jīng)過這么多天的 C+課程設(shè)計(jì)的訓(xùn)練,我學(xué)到了很多,最主
15、要的一點(diǎn)是怎樣去運(yùn)用自己學(xué)過的知識(shí),怎樣去找到你所需要的資料,并在短時(shí)間把它運(yùn)用到具體的實(shí)踐中,運(yùn)用到你所需要的方面。這個(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é)是必不可少的,還有,身邊有非常豐
16、富的網(wǎng)絡(luò)資源給我們好好利用,百度就是個(gè)很不錯(cuò)的地方。這樣就從另一方面鍛煉了我們檢索知識(shí)獲取信息的能力,在這個(gè)過程中,可以學(xué)到的是一種提升自我的能力。當(dāng)然,由于個(gè)人能力所限,這份課程設(shè)計(jì)有一些別的方面還是要參考人家的的資料,在讀懂別人材料的同時(shí),自己取人所長(zhǎng),補(bǔ)己之短,經(jīng)過多次的調(diào)試,總結(jié),最后交出一份自己比較滿意的答卷。通過這次的課程設(shè)計(jì),讓我進(jìn)一步的了解到 C+在我們?nèi)粘I钪械闹匾裕?,也更進(jìn)一步的激發(fā)了我學(xué)習(xí)這門語(yǔ)言的興趣.經(jīng)過這次的訓(xùn)練,我相信自己以后會(huì)用更多的時(shí)間來把這門語(yǔ)言學(xué)好,掌握好這門必修的基礎(chǔ)語(yǔ)言。七七 參考文獻(xiàn)參考文獻(xiàn)1. 段鋼 編著 加密與解密(第三版).電子工業(yè)出版
17、社.2009 年 8 月.2. 趙樹升 趙韶平. Windows 信息安全原理與實(shí)現(xiàn).清華大學(xué)出版社.2004 年 9 月.3.賽奎春.Visual C+ 信息系統(tǒng)開發(fā)實(shí)例精選,20054.楊永國(guó). Visual C+ 6.0 實(shí)用教程. 清華大學(xué)出版社,20045.唐俊明. Visual C+ 6.0 編程實(shí)例與技巧. 高等教育出版,20026.潘錦平. 軟件系統(tǒng)開發(fā)技術(shù). 西安電子科技大學(xué)出版社, 1997 7. 鄭阿奇 丁有和 編著 Visual C+(第 2 版).機(jī)械工業(yè)出版社.2008 年 8 月.8. 侯俊杰 編著 深入淺出 MFC(第 2 版).華中科技大學(xué)出版社.2008 年
18、 1 月.9. 孫鑫 余安萍 編著 VC+ 深入淺出詳解.電子工業(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
19、;Status SaveNode(int N) /把結(jié)構(gòu)體數(shù)組保存到文件把結(jié)構(gòu)體數(shù)組保存到文件cheng中中,如成功保如成功保存返回存返回 TRUE,否則返回否則返回 ERRORint i;FILE *fp;if(fp=fopen(cheng,wb)=NULL) return ERROR;for(i=0;iMAX) return ERROR; cout請(qǐng)輸入所要插入題題目、題干和選項(xiàng)請(qǐng)輸入所要插入題題目、題干和選項(xiàng):endl;cout請(qǐng)輸入題目:請(qǐng)輸入題目:;gets(TestquestionsN.subject);cout請(qǐng)輸入選項(xiàng)請(qǐng)輸入選項(xiàng) A:;gets(TestquestionsN.o
20、ption1);cout請(qǐng)輸入選項(xiàng)請(qǐng)輸入選項(xiàng) B:;gets(TestquestionsN.option2);cout請(qǐng)輸入選項(xiàng)請(qǐng)輸入選項(xiàng) C:;gets(TestquestionsN.option3);cout請(qǐng)輸入選項(xiàng)請(qǐng)輸入選項(xiàng) D:;gets(TestquestionsN.option4);coutendl;cout&TestquestionsN.result;getchar();N+; /N 表示結(jié)構(gòu)體數(shù)組長(zhǎng)度表示結(jié)構(gòu)體數(shù)組長(zhǎng)度,通通過加過加&號(hào)使其值能返回號(hào)使其值能返回return TRUE;Status DeleteNode(int n)/刪除數(shù)組中的第刪除數(shù)組中的
21、第 n 個(gè)元素個(gè)元素return TRUE;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 ;Status Match(TestNode p,char m)/判斷判斷 m 是否為是否為 p 題目的答案,若是題目的答案,若是返回返回 TRUE,否則返回,否則返回 ERRORif(m=p.result) return TRUE;else return ER
22、ROR;void answer(int sum)/進(jìn)行答題進(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ī)函數(shù),以隨機(jī)選定何題進(jìn)行解答以隨機(jī)選定何題進(jìn)行解答 printNode(TestquestionsNum,Num+1); coutendl;cout&r;getchar();if( Match(TestquestionsNum,r) /調(diào)用函數(shù)調(diào)用函數(shù) IsMatch 判斷所輸入判斷所輸入的答案與標(biāo)準(zhǔn)答案是否相同的答案與標(biāo)準(zhǔn)答案是否相同coutendl;cout答案正確答案正確!endl;score+;else coutendl;cout答案錯(cuò)誤答案錯(cuò)誤!endl;cout你的總成績(jī)?yōu)槟愕目偝煽?jī)?yōu)?scoreendl;int main()char flag=N;int N=0,i, sum,score=0,chose;ReadNode(N);while(flag=N|flag=n) cout 單項(xiàng)選擇題標(biāo)準(zhǔn)化考試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45643-2025飼料中異噻唑啉酮類化合物的測(cè)定液相色譜-串聯(lián)質(zhì)譜法
- GB/T 45713.4-2025電子裝聯(lián)技術(shù)第4部分:陣列型封裝表面安裝器件焊點(diǎn)的耐久性試驗(yàn)方法
- 2025年醫(yī)生職業(yè)資格考試試卷及答案
- 2025年養(yǎng)老服務(wù)與管理考試試卷及答案分享
- 2025年物流管理師考試題及答案
- 2025年體育老師資格認(rèn)證考試試卷及答案
- 2025年區(qū)域規(guī)劃與管理政策分析考試試題及答案
- 2025年倫理學(xué)與法律課程考核試卷及答案
- 2025年計(jì)算機(jī)科學(xué)專業(yè)考試試題及答案
- 2025年金融科技專業(yè)資格考試試卷及答案
- 2024年上海浦東新區(qū)公辦學(xué)校儲(chǔ)備教師教輔招聘真題
- 2025年高考?xì)v史全國(guó)卷試題評(píng)析-教育部教育考試院
- 貴州省貴陽(yáng)市2023?2024學(xué)年度第二學(xué)期期末監(jiān)測(cè)試卷高一 數(shù)學(xué)試題(含解析)
- 井岡山的故事試題及答案
- 城市管理公司管理制度
- 2025年中國(guó)合成生物學(xué)行業(yè)市場(chǎng)前景預(yù)測(cè)及投資價(jià)值評(píng)估分析報(bào)告
- 游藝項(xiàng)目合作合同協(xié)議書
- 觸電急救97課件
- T/CAQI 96-2019產(chǎn)品質(zhì)量鑒定程序規(guī)范總則
- 育嬰師上戶合同范本
- 醫(yī)療行業(yè)注塑車間的數(shù)字化改造實(shí)踐
評(píng)論
0/150
提交評(píng)論