版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGE工業(yè)大學(xué)畢業(yè)設(shè)計說明書(論文)系:計算機系專業(yè):軟件技術(shù)專業(yè)題目:基于VC++的題庫管理系統(tǒng)的設(shè)計與實現(xiàn)指導(dǎo)者:(姓名)(專業(yè)技術(shù)職務(wù))評閱者:(姓名)(專業(yè)技術(shù)職務(wù))2013年6月4
畢業(yè)設(shè)計(論文)中文摘要基于VC++的題庫管理系統(tǒng)的設(shè)計與實現(xiàn)摘要:隨著計算機技術(shù)的普及,題庫管理系統(tǒng)已經(jīng)慢慢取代傳統(tǒng)的組卷方式,為學(xué)校教師組卷提供方便與快捷。題庫管理系統(tǒng)擁有與真實考試同樣的題型、組卷等功能。其開發(fā)內(nèi)容主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應(yīng)用程序的開發(fā)兩個方面。通過分析與研究,本系統(tǒng)運用VC++作為開發(fā)語言,SQLServer2005作為后臺數(shù)據(jù)庫,并利用ADO技術(shù)連接數(shù)據(jù)庫,在MFC的結(jié)構(gòu)框架下基本實現(xiàn)了上傳試題、上傳試卷、手動組卷、系統(tǒng)組卷、學(xué)生在線練習(xí)等主要功能,有效的減輕教師在出題、組卷方面的負擔(dān),提高教學(xué)質(zhì)量。系統(tǒng)的開發(fā)按照軟件生命周期的流程來設(shè)計,論文從系統(tǒng)分析、概要設(shè)計、詳細設(shè)計和系統(tǒng)測試等環(huán)節(jié)進行了詳細分析和描述。關(guān)鍵詞:題庫管理系統(tǒng)手動組卷VC++ADO畢業(yè)設(shè)計(論文)外文摘要TitleQuestionBankManagementSystemDesignandImplementationBasedonVC++AbstractWiththepopularizationofcomputertechnology,QuestionBankManagementSystemhasgraduallyreplacedthetraditionaltestmethod,whichprovideconvenientandfastfortheschoolpaper.TheQuestionBankManagementSystemwithrealexamquestions,testpaperetc..Itsdevelopmentmainlyincludestwoaspects:thebackgroundoftheestablishmentandmaintenanceofdatabaseandfront-endapplicationdevelopment.Throughtheanalysisandresearch,thissystemusingVC++asadevelopmentlanguage,SQLServer2005asabackenddatabase,andconnecttothedatabaseusingADOtechnology.TheSystemBasicallyachievedtheuploadtestquestions,uploadpapers,manualgroupvolume,systemvolume,studentonlinepracticethemainfunctionsuchasinformationmanagement,whichcaneffectivelyreducetheburdenofteachersintitle,groupvolume,improvethequalityofteaching.TheSystem’sdevelopmentisaccordingtothesoftwarelifecycleprocessestodesign,thePaperhasanalyzedanddescribedindetailfromthesystemanalysis,theoutlinedesign,detaileddesignandsystemtestingprocess.Keywords:QuestionbankmanagementsystemManuallySetVolumeVC++ADOPAGE1目次TOC\o"1-2"\h\z\u1引言 11.1課題背景及意義 11.2國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢 11.3本文的工作安排 22系統(tǒng)分析 22.1可行性分析 22.2需求分析 32.3系統(tǒng)的運行環(huán)境 43系統(tǒng)的開發(fā)環(huán)境與技術(shù) 43.1MFC技術(shù) 43.2數(shù)據(jù)庫訪問技術(shù) 53.3VisualC++6.0開發(fā)環(huán)境 53.4C++開發(fā)語言 54系統(tǒng)設(shè)計 64.1總體設(shè)計思想 64.2系統(tǒng)功能模塊設(shè)計 74.3數(shù)據(jù)庫設(shè)計 145系統(tǒng)功能實現(xiàn) 195.1數(shù)據(jù)庫的連接 195.2系統(tǒng)模塊設(shè)計 206系統(tǒng)調(diào)試 336.1測試實例的研究與選擇 336.2測試環(huán)境與條件 346.3測試結(jié)果 34結(jié)論 35參考文獻 36致謝 37河北工業(yè)大學(xué)畢業(yè)設(shè)計(論文)第41頁共40頁1引言傳統(tǒng)的考試出題總是教師考前集中出題、集中組卷,這樣很難保證試卷的質(zhì)量,進而不能準確反映學(xué)生的學(xué)習(xí)效果。相比之下題庫管理系統(tǒng)能夠安全方便地錄入試題以及自定義出卷,減輕各科教師的教學(xué)壓力。該部分主要介紹當(dāng)前通用試題庫管理系統(tǒng)的背景及意義、國內(nèi)外研究現(xiàn)狀和論文的工作安排。1.1課題背景及意義隨著計算機技術(shù)的不斷發(fā)展,它被更廣泛地應(yīng)用在我國的各行各業(yè)中。其中計算機輔助教育(CAI)在教育系統(tǒng)中的應(yīng)用,收到了良好的效果,給教育改革帶來美好的前景。在教學(xué)管理中,為實現(xiàn)教考分開,更加合理、公平、公正、公開地進行各種考試,利用計算機進行考試題庫管理,輔助教師命題組卷已成為各院校教學(xué)改革的重要內(nèi)容之一。因此對于題庫管理系統(tǒng)的開發(fā)和應(yīng)用就顯得尤為重要。相比傳統(tǒng)的出題方式,利用計算機實現(xiàn)的題庫管理具有操作簡便、成卷快、題目搭配合理、試卷難易程度可控等無法比擬的優(yōu)點,同時能夠更好的保證試卷的質(zhì)量,而且還能更好地反映學(xué)生的學(xué)習(xí)效果,提高教學(xué)質(zhì)量,減輕教師在出題組卷和成績分析中的工作量。因此,研制題庫管理系統(tǒng)已成為一項重要的課題,是各個學(xué)校教學(xué)研究的熱門話題,并且在國家有關(guān)項目的支持下,出現(xiàn)了一系列使用的題庫管理系統(tǒng),但這些成型的題庫管理系統(tǒng)有時候并不能滿足現(xiàn)在學(xué)校教育中的要求。一個好的題庫要求能夠在有限的時間內(nèi),快速選擇出最需要的題目,從而減輕了老師出題的負擔(dān),并加強了出題的效率和質(zhì)量。1.2國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢隨著經(jīng)濟的發(fā)展,社會的進步,科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,計算機越來越深入到我們?nèi)粘5膶W(xué)習(xí)、工作及生活中,成為我們補課缺少的輔助工具。其強大的功能以為人們深刻認知,它已進入人類社會的各個領(lǐng)域,并發(fā)揮著越來越重要的作用,在我國的教育系統(tǒng)中,傳統(tǒng)的出卷方式,是一個漫長而復(fù)雜的過程,已經(jīng)越來越不適應(yīng)現(xiàn)代教學(xué)的需要,而隨著計算機事業(yè)在我國的縱深發(fā)展,題庫在教育領(lǐng)域的應(yīng)用越來越廣泛,一個好的題庫管理系統(tǒng),要求界面友好,能方便的錄入試題,組卷靈活快捷,查詢試題或出卷迅速,以適應(yīng)各種知識更新對試卷難易程度、題型的要求,因此領(lǐng)用計算機化的試卷生成系統(tǒng)來組卷是未來學(xué)??荚嚨陌l(fā)展趨勢。1.3本文的工作安排本文從軟件開發(fā)生命周期的角度闡述了系統(tǒng)開發(fā)過程,首先介紹了項目背景,然后進行系統(tǒng)分析、總體設(shè)計和項目的具體設(shè)計與實現(xiàn)過程,最后作系統(tǒng)測試及總結(jié)。論文分六部分,具體安排如下:第一部分:介紹課題的背景,課題目的及意義,國內(nèi)外研究現(xiàn)狀及發(fā)展趨勢等。第二部分:系統(tǒng)分析,包括可行性分析、需求分析、系統(tǒng)可行性分析等。第三部分:介紹系統(tǒng)的開發(fā)環(huán)境與開發(fā)技術(shù)。第四部分:根據(jù)系統(tǒng)的需求分析進行系統(tǒng)概要設(shè)計,包括系統(tǒng)的模塊設(shè)計,數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計和數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計。第五部分:從整體上介紹了系統(tǒng)的詳細設(shè)計和實現(xiàn),包括整個系統(tǒng)界面設(shè)計和相關(guān)功能及實現(xiàn)過程。第六部分:介紹本系統(tǒng)的測試及維護,測試內(nèi)容及測試方法并總結(jié)測試結(jié)果。第七部分:結(jié)束語??偨Y(jié)在完成系統(tǒng)開發(fā)和設(shè)計過程中所做的工作,以及系統(tǒng)的優(yōu)缺點。2系統(tǒng)分析系統(tǒng)分析是軟件系統(tǒng)開發(fā)過程中一項重要工作,系統(tǒng)分析工作質(zhì)量的好壞將直接決定系統(tǒng)開發(fā)工作的成敗。該階段將從可行性分析、系統(tǒng)需求分析、系統(tǒng)的運行環(huán)境幾個關(guān)鍵技術(shù)對題庫管理系統(tǒng)作出詳細的系統(tǒng)分析。2.1可行性分析2.1.1技術(shù)可行性此次課程設(shè)計,使用MFC技術(shù)構(gòu)建題庫管理系統(tǒng)的骨干框架,利用SQLServer2005構(gòu)建系統(tǒng)的后臺數(shù)據(jù)庫,運用VC++語言開發(fā),并結(jié)合ADO連接數(shù)據(jù)庫的技術(shù),完全有能力設(shè)計一個界面比較友好、功能較為全面、操作方便簡捷的題庫管理系統(tǒng)。經(jīng)濟可行性隨著計算機技術(shù)的迅速發(fā)展,尤其在面臨日益激烈的市場競爭,以電子計算機為主要技術(shù)手段,將大大減輕科技人員的腦力勞動和體力勞動。計算機技術(shù)它具有高智力、知識密集、綜合性強、效益高等特點,是當(dāng)今世界上科技領(lǐng)域的前沿課題。因此將計算機技術(shù)運用到各高校的考試中,開發(fā)一款操作簡捷、功能齊全的題庫管理系統(tǒng)將大大可以提高教師的工作效率和工作質(zhì)量,改善教師的工作條件,進而提高教學(xué)水平,為教研室?guī)砹碎g接的效益。2.2需求分析該系統(tǒng)設(shè)計主要是為了能夠減輕教師在考前出卷組卷的工作量,能夠方便的讓教師瀏覽、查看各類試題,以最快的速度篩選處所需的試題組成一套完整的試卷,其主要功能如下:1用戶登錄模塊:用戶登錄的權(quán)限可分為:系統(tǒng)管理員、教師、學(xué)生三種權(quán)限,在登錄模塊中,當(dāng)用戶登錄時,首先先輸入用戶名及登錄密碼,系統(tǒng)會自動驗證該用戶的身份,如果該用戶存在則根據(jù)其登錄權(quán)限跳轉(zhuǎn)到相應(yīng)的不同權(quán)限的頁面;如用戶名不存在,用戶也可以先進行注冊再登錄,也可以通過找回密碼重新設(shè)置密碼,然后再進行登錄。2信息管理模塊:系統(tǒng)管理員可以對登錄用戶的信息進行修改、查詢、刪除等管理操作,并且還可以注冊新的用戶信息,同時管理員還可向用戶發(fā)布最新的試題信息并可對用戶反饋的信息進行管理。3試題管理模塊:系統(tǒng)管理員可以對試題庫中試題進行查看、刪除、修改等操作;教師登錄后可以上傳相關(guān)試題,查看個人上傳的試題以及全部的試題,修改個人上傳試題;學(xué)生登錄后可以查看相關(guān)試題,并可查看試題答案以及試題詳解。4試卷管理模塊:系統(tǒng)管理員可以對用戶上傳的試卷進行查看、刪除、修改等操作;教師可以對個人上傳的試卷進行修改或刪除操作,同時可以上傳試卷,此外教師還可以針對某一學(xué)科進行手動組卷也可選擇系統(tǒng)組卷,并且可預(yù)覽組好的試卷并將其導(dǎo)出為.txt;學(xué)生可對相關(guān)的試卷信息內(nèi)容進行查看。5科目、章節(jié)、題型管理:系統(tǒng)管理員可以對科目、章節(jié)、題型的信息進行增、刪、改、查的操作。2.3系統(tǒng)的運行環(huán)境該軟件設(shè)計是基于VC++的題庫管理系統(tǒng),能夠在WindowXP/Win7及其以上版本的系統(tǒng)上順利運行。3系統(tǒng)的開發(fā)環(huán)境與技術(shù)該課題設(shè)計使用MFC技術(shù)構(gòu)建題庫管理系統(tǒng)的骨干框架,使用SQLServer2005構(gòu)建系統(tǒng)的數(shù)據(jù)庫,應(yīng)用C++語言開發(fā),并結(jié)合ADO連接數(shù)據(jù)庫的技術(shù),實現(xiàn)了一個功能相對齊全的題庫管理系統(tǒng)。設(shè)計環(huán)境:操作系統(tǒng):Win7/WinXP開發(fā)工具:MicrosoftVisualC++6.0數(shù)據(jù)庫:SQLServer2005開發(fā)語言:VC++3.1MFC技術(shù)MFC的本質(zhì)是一個包含了許多已經(jīng)定義好的類的類庫。MFC是微軟提供的,封裝了大量WindowsAPI的C++類庫。它基本封裝了Windows的所有API函數(shù)。因此,利用MFC建立應(yīng)用程序更加符合面向?qū)ο蟮乃枷搿M瑫r利用向?qū)⒌膽?yīng)用程序隱藏了程序設(shè)計的很多細節(jié),簡化和標(biāo)準化了Windows程序設(shè)計,因此MFC編程被稱為標(biāo)準Windows程序設(shè)計。3.2數(shù)據(jù)庫訪問技術(shù)Microsoft提供多種數(shù)據(jù)庫訪問技術(shù),此次題庫管理軟件使用ADO連接數(shù)據(jù)庫的技術(shù),ADO基于Microsoft的ActiveX技術(shù),可在多種語言環(huán)境下使用,為不同的應(yīng)用程序提供一個通用的訪問接口。相對于ODBC技術(shù),ADO可移植性好,可隨意將程序從一臺機器轉(zhuǎn)移到另一臺機器上,無需重新配置數(shù)據(jù)源。相對于ADO.NET技術(shù),ADO效率更高,訪問速度更快,適用于海量數(shù)據(jù)的讀取和寫入。3.3VisualC++6.0開發(fā)環(huán)境VisualC++6.0,簡稱VC或者VC6.0,是微軟推出的一款C++編譯器,將“高級語言”翻譯為“機器語言(低級語言)”的程序。VisualC++6.0它不僅是一個C++
編譯器,而且是一個基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境。VisualC++是一個功能強大的可視化軟件開發(fā)工具。3.4C++開發(fā)語言C++語言是一種優(yōu)秀的面向?qū)ο蟪绦蛟O(shè)計語言,它在C語言的基礎(chǔ)上發(fā)展而來,但它比C語言更容易為人們學(xué)習(xí)和掌握。C++以其獨特的語言機制在計算機科學(xué)的各個領(lǐng)域中得到了廣泛的應(yīng)用。面向?qū)ο蟮脑O(shè)計思想是在原來結(jié)構(gòu)化程序設(shè)計方法基礎(chǔ)上的一個質(zhì)的飛躍,C++完美地體現(xiàn)了面向?qū)ο蟮母鞣N特性。12344系統(tǒng)設(shè)計系統(tǒng)設(shè)計階段的根本目標(biāo)是確定應(yīng)該怎樣具體地實現(xiàn)所要求的功能,經(jīng)過這個階段的設(shè)計工作,應(yīng)該得出對目標(biāo)系統(tǒng)的精確描述。該階段是對本系統(tǒng)進行模塊分解,確定其軟件結(jié)構(gòu),并對主要功能模塊進行詳細設(shè)計與實現(xiàn)的介紹,從而實現(xiàn)功能模塊的精確描述。4.1總體設(shè)計思想該題庫管理系統(tǒng)主要分為三種登錄權(quán)限:管理員權(quán)限、教師權(quán)限、學(xué)生權(quán)限。在登錄模塊中,當(dāng)用戶登錄時,首先先輸入用戶名及登錄密碼,系統(tǒng)會自動判斷該用戶是否存在,如果該用戶存在則可成功跳轉(zhuǎn)到相應(yīng)的不同權(quán)限的頁面,用戶也可以先進行注冊再登錄,也可以通過找回密碼重新設(shè)置密碼,然后再進行登錄。當(dāng)以管理員身份進入系統(tǒng)后,管理員可以對用戶信息進行管理包括:查看、修改、刪除用戶信息以及注冊新的教師信息及學(xué)生信息;同時管理員還可以對試題、試卷信息進行管理同樣包括查看、修改、刪除試題、試卷信息同時管理員還可以上傳試題、試卷。當(dāng)以教師身份登錄后,教師可以對自己上傳的試題、試卷信息進行查看、修改、刪除操作,還可以上傳試題或試卷信息到題庫,同時還可瀏覽其他人上傳的試題及試卷信息。此外教師可針對某一學(xué)科進行手動組卷也可以選擇系統(tǒng)組卷,組卷完畢后可以預(yù)覽試卷效果,如果滿意即可保存存檔。教師還可以修改自己的登錄密碼以及個人信息,并可以查看系統(tǒng)公告,或給系統(tǒng)留言。當(dāng)以學(xué)生身份登錄后,學(xué)生可以針對不同的學(xué)科、不同的章節(jié)、不同的題型進行練習(xí),同時可以查看題目答案及詳解。此外學(xué)生還可以向系統(tǒng)反饋信息,查看系統(tǒng)公告并可以修改登錄密碼及個人信息。4.2系統(tǒng)功能模塊設(shè)計本系統(tǒng)是由管理員模塊、教師模塊、學(xué)生模塊和登錄模塊幾部分組成的。系統(tǒng)流程圖如圖2所示。退出系統(tǒng)退出系統(tǒng)輸入用戶名及密碼判斷用戶名和密碼是否存在開始登錄NY注冊信息找回密碼登錄成功判斷用戶權(quán)限管理員模塊教師模塊學(xué)生模塊圖2系統(tǒng)流程圖4.2.1登錄模塊在登錄模塊中,當(dāng)用戶登錄時,首先先輸入用戶名及登錄密碼,如果該用戶存在則可成功跳轉(zhuǎn)到相應(yīng)的頁面;如果登錄不成功或用戶名不存在,用戶可以先進行注冊再登錄,也可以找回密碼,然后再進行登錄。登錄模塊如圖1.1所示。用戶登錄模塊用戶登錄模塊登錄成功找回密碼注冊信息圖1.1登錄模塊圖4.2.2管理員模塊當(dāng)以管理員身份進入系統(tǒng)后,管理員可以對用戶信息、試題、試卷信息、課程信息及題型信息進行管理。管理員模塊如圖2.1所示。管理員登錄模塊管理員登錄模塊用戶信息管理試題信息管理試卷信息管理課程信息管理題型信息管理圖2.1管理員模塊圖用戶信息管理模塊管理員登錄后,點擊“用戶信息管理”按鈕即可進入用戶信息管理模塊,在該模塊中,管理員可對已經(jīng)注冊的學(xué)生信息以及教師信息進行查看、修改或刪除操作,也可以注冊新的用戶信息。其模塊圖如圖2.1.1所示。注冊用戶信息注冊用戶信息修改用戶信息刪除用戶信息查看用戶信息用戶信息管理圖2.1.1用戶信息管理模塊圖試題管理模塊管理員登錄后,點擊“試題信息管理”按鈕即可進入試題管理模塊,在該模塊中,管理員可以上傳試題到試題庫,也可以對全部試題進行瀏覽、修改、刪除操作,。其模塊圖如圖2.1.2所示。試題信息管理上傳試題信息試題信息管理上傳試題信息修改試題信息刪除試題信息查看試題信息圖2.1.2試題管理模塊圖試卷信息管理模塊管理員登錄后,點擊“試卷信息管理”按鈕,即可進入試卷信息管理模塊,在該試卷管理模塊中,管理員可對上傳的試卷信息進行瀏覽、修改、刪除操作,其模塊圖如圖2.1.3所示。試試卷信息管理上傳試卷信息修改試卷信息刪除試卷信息查看試卷信息圖2.1.3試卷信息管理模塊圖課程信息管理模塊管理員登錄后,點擊“課程信息管理”按鈕后即可進入課程信息管理模塊,在該模塊中,管理員可對題庫中現(xiàn)存的科目及其所包含的章節(jié)信息、知識點信息進行查看、修改及刪除操作,也可增加新的科目信息,并為其添加相關(guān)的章節(jié)信息及知識點信息。其模塊圖如圖2.1.4所示。添加章節(jié)添加章節(jié)信息添加知識點信息修改章節(jié)信息修改知識點信息查看章節(jié)信息查看知識點信息刪除章節(jié)信息刪除知識點信息課程信息管理添加課程信息修改課程信息查看課程信息刪除課程信息圖2.1.4課程信息管理模塊圖題型信息管理模塊題型信息管理添加題型信息修改題型信息刪除題型題型信息管理添加題型信息修改題型信息刪除題型信息查看題型信息圖2.1.5題型信息管理模塊圖教師模塊當(dāng)以教師身份登錄后,教師可以對自己上傳的試題、試卷信息進行查看、修改、刪除操作,還可以上傳試題或試卷信息到題庫,同時還可瀏覽其他人上傳的試題及試卷信息,但不可以進行修改或刪除操作。同時教師可針對某一學(xué)科進行手動組卷,通過瀏覽關(guān)于這一學(xué)科的全部試題,并將感興趣的題目加入試卷從而形成一份完整的試卷,教師可以通過預(yù)覽試卷查看組卷效果,如果滿意的話即可選擇保存并將該試卷導(dǎo)出為指定的目錄下.txt文檔;此外教師還可以選擇系統(tǒng)組卷,在教師指定科目、選擇改試卷包含的章節(jié)、試卷所包含的題型并設(shè)置各題型的數(shù)量后,系統(tǒng)便會在題庫中隨機抽取相應(yīng)的題目加入試卷,組卷完畢后可以預(yù)覽試卷效果,如果滿意即可保存存檔。教師還可以修改自己的登錄密碼以及個人信息。教師模塊的模塊圖如圖3.1所示。教師登錄模塊教師登錄模塊個人信息管理試題信息管理試卷信息管理手動組卷系統(tǒng)組卷圖3.1教師管理模塊圖個人信息管理模塊教師登錄后點擊“個人信息管理”按鈕后即可進入個人信息管理模塊,教師可對個人的基本信息進行修改并保存,也可單獨修改密碼。該模塊的模塊圖如圖3.1.1所示。個人信息管理修改登錄密碼修改個人信息個人信息管理修改登錄密碼修改個人信息圖3.1.1個人信息管理模塊圖試題信息管理模塊教師登錄后,點擊“試題信息管理”按鈕即可進入試題管理模塊,教師可對個人上傳的試題信息進行查看、修改、刪除等操作,同時可以瀏覽其他人上傳的試題,但不可進行修改,此外,教師還可以上傳試題。其功能模塊圖如圖3.1.2所示。試題信息管理試題信息管理上傳試題信息修改試題信息刪除試題信息查看試題信息圖3.1.2試題管理模塊圖試卷信息管理模塊教師登錄后,點擊“試卷信息管理”按鈕即可進入試卷信息管理模塊,在該模塊中,教師可對個人上傳的試卷信息進行查看、修改、刪除等操作,同時還可以上傳新的試卷到題庫,此外,教師還可以瀏覽其他教師上傳的試卷信息。其功能模塊圖如圖3.1.3所示。試試卷信息管理上傳試卷信息修改試卷信息刪除試卷信息查看試卷信息圖3.1.3試卷信息管理模塊圖組卷模塊教師登錄后,點擊“系統(tǒng)組卷”后即可進入系統(tǒng)組卷模塊,教師按照向?qū)?,依次選擇組卷的科目、該課程包含的章節(jié)和要加入試卷的題型并設(shè)置每種題型的所包含的題量后,點擊組卷后,系統(tǒng)會自動到題庫中隨機選擇相應(yīng)的題目加入試卷,組卷完畢后,教師可閱覽組好的試卷,如果滿意即可將試卷保存到指定的路徑。此外教師還可選擇手動組卷,點擊“手動組卷”按鈕,教師即可進入手動組卷模塊,當(dāng)選擇好需要組卷的科目后,教師便可瀏覽題庫中有關(guān)該科目的全部試題,可以逐道查看每道題的詳細內(nèi)容,也可對試題進行篩選后查看,如對該試題感興趣即可將其加入到試卷,點擊“完成”后即完成組卷,教師可閱覽組卷后的效果,如滿意即可進行保存。其功能模塊如圖3.1.4所示。組卷模塊組卷模塊手動組卷系統(tǒng)組卷圖3.1.4組卷模塊圖學(xué)生模塊當(dāng)以學(xué)生身份登錄后,學(xué)生可以進行在線練習(xí),并可以向系統(tǒng)反饋信息,查看系統(tǒng)公告并可以修改登錄密碼及個人信息,學(xué)生模塊如圖4.1所示。學(xué)生登錄模塊學(xué)生登錄模塊在線練習(xí)反饋信息查看系統(tǒng)公告修改個人信息圖4.1學(xué)生模塊圖4.3數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫是管理系統(tǒng)必不可少的組成部分,設(shè)計一個結(jié)構(gòu)合理的數(shù)據(jù)庫不論是對操作的速度還是對程序的設(shè)計都至關(guān)重要。數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造(設(shè)計)優(yōu)化的數(shù)據(jù)庫邏輯模式和物理結(jié)構(gòu),并據(jù)此建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲和管理數(shù)據(jù),滿足各種用戶的應(yīng)用需求,包括信息管理要求和數(shù)據(jù)操作要求。數(shù)據(jù)庫設(shè)計的目的是為用戶和各種應(yīng)用系統(tǒng)提供一個信息基礎(chǔ)設(shè)施和高效率的運行環(huán)境。4.3.1TB_UserLogin表TB_UserLogin該表用于記錄注冊用戶的信息,其包含4個字段:用戶編號、用戶名、登錄口令和用戶權(quán)限字段,其中用戶編號為主鍵用于標(biāo)識注冊用戶,并且設(shè)置其為種子標(biāo)識,int類型初值為1,遞增值為1;用戶名為varchar類型可以與真名不同;登錄口令為varchar類型允許為空;用戶權(quán)限分為管理員權(quán)限、教師權(quán)限、學(xué)生權(quán)限,用于控制不同的用戶登錄后進入到相應(yīng)的控制界面。用戶登錄表的表結(jié)構(gòu)說明如表1所示。表1用戶登錄表TB_UserLogin字段名稱數(shù)據(jù)類型長度默認值允許空字段描述IDint整型無否唯一標(biāo)識,主鍵LoginNamevarchar10無否登錄名LoginPwdvarchar20無是登錄口令LoginRightvarchar8無是登錄權(quán)限TB_TeacherInfo表TB_TeacherInfo該表用于記錄已經(jīng)注冊的教師的詳細信息,該表包含9個字段,其中TeacherID為主鍵,并且該字段為外鍵,依賴于TB_Userlogin表中的主鍵ID。教師的詳細信息表的表結(jié)構(gòu)說明如表2所示。表2教師信息表TB_TeacherInfo字段名稱數(shù)據(jù)類型長度默認值允許空字段描述TeacherIDint整型無否唯一標(biāo)識,主鍵TeacherNamevarchar10無否真實姓名TeacherSexchar2無否性別TeacherExperienceint整型無否教齡TeacherCoursesvarchar50無是所授課程TeacherDepartvarchar8無否所在系TeacherTitlevarchar12無是職稱TeacherPlacevarchar20無是工作地點TeacherEmailvarchar20無是用戶郵箱TB_StudentInfo表TB_StudentInfo該表用于記錄已經(jīng)注冊的學(xué)生的詳細信息,該表包含7個字段,其中StuID為主鍵,并且該字段為外鍵,依賴于TB_Userlogin表中的主鍵ID。學(xué)生的詳細信息表的表結(jié)構(gòu)說明如表3所示。表3學(xué)生信息表TB_StudentInfo字段名稱數(shù)據(jù)類型長度默認值允許空字段描述StuIDint整型無否唯一標(biāo)識,主鍵StuNamevarchar20無否真實姓名StuSexchar2無否性別StuBirthdatetime日期無否出生日期StuProfessionvarchar8無否所在系StuSchoolvarchar20無是所在院校StuEmailvarchar20無是用戶郵箱TB_Question表TB_StudentInfo表用于記錄題庫中存儲的試題信息,同時用于存儲用戶上傳的試題,該表包含12個字段,其中QID為主鍵,并且為種子標(biāo)識,標(biāo)識種子為100標(biāo)識增量為1;QChapterID,QUploadID,QType均為外鍵,分別依賴于TB_ChapterInfo表中的主鍵ChapterID、TB_UserLogin表中的主鍵ID和TB_QuestionType表中的主鍵QuestionType。試題信息表的表結(jié)構(gòu)說明如表4所示。表4試題信息表TB_Question字段名稱數(shù)據(jù)類型長度默認值允許空字段描述QIDint整型無否唯一標(biāo)識,主鍵QContentvarchar1024無否試題內(nèi)容QRightAnswervarchar1024無否試題答案QDetailedvarchar1024有否試題詳解QTypevarchar6無否試題類型QDifficultyint整型無否試題難度QScoreint整型無否試題分值QChapterIDint整型無否試題所屬章節(jié)QKnowPointvarchar20無是試題所涉知識點QUploadIDint整型無否上傳人QUpTimedatetime日期有是上傳時間QUsechar1無是是否加入題庫TB_TestInfo表TB_TestInfo表用于記錄題庫中存儲的試卷信息,同時用于存儲用戶上傳的試卷,該表包含7個字段,其中TestID為主鍵,并且為種子標(biāo)識,標(biāo)識種子為1標(biāo)識增量為1;TestType、TestRange、UploadID均為外鍵,分別依賴于TB_UseInfo表中的主鍵UseID、TB_TermInfo表中的主鍵TermID和TB_UserLogin表中的主鍵ID。試卷信息表的表結(jié)構(gòu)說明如表5所示。表5試卷信息表TB_TestInfo字段名稱數(shù)據(jù)類型長度默認值允許空字段描述TestIDint整型無否唯一標(biāo)識,主鍵TestTitlevarchar20無否試卷標(biāo)題TestTypeint整型無否試卷類型TestRangeint整型無否試卷適用范圍UploadIDint整型無否上傳人UploadTimedatetime日期是否上傳時間HaveAnswerchar1是否是否有答案4.3.6TB_CourseInfo表TB_CourseInfo表用于記錄題庫中所有試題所涉及的課程名,管理員可以增加課程名并存放在該表中。該表包含有3個字段,其中CourseID為主鍵,并且設(shè)置為種子標(biāo)識,標(biāo)識種子為10,標(biāo)識增量為1。課程信息表的表結(jié)構(gòu)說明如表6所示。表6課程信息表TB_CourseInfo字段名稱數(shù)據(jù)類型長度默認值允許空字段描述CourseIDint整型無否唯一標(biāo)識,主鍵CourseNamevarchar20無否課程名CourseTypevarchar10無否課程類型TB_ChapterInfo表TB_ChapterInfo表用于記錄TB_CourseInfo表中每種課程名所包含的的章節(jié)名,管理員也可以為某一課程名添加相應(yīng)的章節(jié)名,并存放在該表中。TB_ChapterInfo表包含有3個字段,其中ChapterID為主鍵,并且設(shè)置為種子標(biāo)識,標(biāo)識種子為10,標(biāo)識增量為1;CourseID為外鍵依賴于TB_CourseInfo表中的主鍵CourseID。章節(jié)信息表的表結(jié)構(gòu)說明如表7所示。表7章節(jié)信息表TB_ChapterInfo字段名稱數(shù)據(jù)類型長度默認值允許空字段描述ChapterIDint整型無否唯一標(biāo)識,主鍵ChapterNamevarchar20無否章節(jié)名CourseIDint整型無否所屬課程IDTB_DoQuestion表TB_DoQuestion表用于記錄每一位學(xué)生登錄后在線練習(xí)時做題的情況,是該學(xué)生做題的歷史記錄。該學(xué)生每做一道題則將該題的相關(guān)信息從TB_Question表中讀取出來存放到TB_DoQuestion表中。TB_DoQuestion存放有該學(xué)生做題的答案,該題的詳解及正確答案,試題的內(nèi)容等,這是一張臨時表,當(dāng)該學(xué)生退出系統(tǒng)后,其做題的記錄全部清空。學(xué)生在做題的過程中查看題目的詳解及答案時都是從該表中進行查詢。該表包含有6個字段其中ID為主鍵,并且為種子標(biāo)識,標(biāo)識種子為1,標(biāo)識增量為1;QID為外鍵,依賴于TB_Question表中的主鍵QID。做題信息表的表結(jié)構(gòu)說明如表8所示。表8做題信息表TB_ChapterInfo字段名稱數(shù)據(jù)類型長度默認值允許空字段描述IDint整型無否唯一標(biāo)識,主鍵QIDint整型無否試題IDQContentvarchar1024無否試題內(nèi)容QAnswervarchar1024無否試題正確答案QDetailvarchar1024無否試題詳解UserAnswervarchar1024有否學(xué)生答案5系統(tǒng)功能實現(xiàn)經(jīng)過總體設(shè)計,完成了模塊的分解,確定了各模塊的功能和模塊間的接口,以及確定了軟件的總體結(jié)構(gòu),軟件系統(tǒng)的基本框架已經(jīng)成形,在該階段主要完成各模塊的內(nèi)部實現(xiàn)細節(jié),對用到的算法進行精確的表達。5.1數(shù)據(jù)庫的連接此題庫管理系統(tǒng)軟件使用ADO連接數(shù)據(jù)庫的技術(shù),并利用ServerSQL2005作為后臺大型數(shù)據(jù)庫,使用ADO技術(shù)訪問SQLServer數(shù)據(jù)庫具有速度快、效率高的特點,但由于ADO較為底層,操作復(fù)雜,故在本此課程設(shè)計中采用ADO的封裝類CADOEx將ADO對象進行封裝簡化操作。連接數(shù)據(jù)庫時首先先通過ADO控件獲取連接字符串存放在字符串變量strConn中并將其聲明為全局變量之后定義CADOEx類的變量,通過該變量調(diào)用CADOEx類中的成員函數(shù)BOOLConnect()即可連接上數(shù)據(jù)庫。#import"C:\ProgramFiles\CommonFiles\System\ADO\msado15.dll"\no_namespacerename("EOF","adoEOF"),rename("BOF","adoBOF")//引入ado庫BOOLCADOEx::Connect(CStringstrLinkDB){ HRESULThr; _bstr_tbstrConn=(_bstr_t)strLinkDB; try { DisConnect(); m_pConn->ConnectionTimeout=8; hr=m_pConn->Open(bstrConn,"","",adModeUnknown); if(FAILED(hr)) { bState=FALSE; returnFALSE; } } catch(_com_error&e) { e.ErrorMessage();bState=FALSE; returnFALSE; } bState=TRUE; returnTRUE;}CADOExtheAdo;CStringstrConn="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=TBMS;DataSource=9P8FDVRWVTNTN5T";//連接字符串if(theAdo.Connect(strConn))//連接數(shù)據(jù)庫連接成功即返回true{ CStringstrSQL; if(theAdo.GetConnectState())//判斷數(shù)據(jù)庫連接的狀態(tài) {MessageBox(“數(shù)據(jù)庫連接成功”);}}else{MessageBox(“數(shù)據(jù)庫連接失??!”);}5.2系統(tǒng)模塊設(shè)計5.2.1用戶登錄模塊用戶登錄頁面是應(yīng)用程序的主入口,用戶只有通過該入口才能進入系統(tǒng)。因為用戶的登錄權(quán)限有管理員、教師和學(xué)生三種權(quán)限,所以在登錄時系統(tǒng)會先從TB_UserLogin表中查詢判斷該用戶是否存在,如果該用戶存在則判斷其登錄權(quán)限并根據(jù)其登錄權(quán)限跳轉(zhuǎn)到相應(yīng)的不同權(quán)限的頁面。其登錄界面如圖1所示。圖1用戶登錄界面所以登錄頁面實現(xiàn)的主要功能有:實現(xiàn)教師登錄;實現(xiàn)學(xué)生登錄;實現(xiàn)管理員登錄;用戶注冊;用戶密碼找回。登錄頁面用到的數(shù)據(jù)表為TB_UserLogin表,其實現(xiàn)原理為:1)當(dāng)用戶點擊【登錄】時,首先對用戶名和密碼框進行非空檢測,任何一項為空都會發(fā)出“不能為空”的提示信息;2)當(dāng)用戶名及密碼均不為空時,系統(tǒng)會自動從TB_UserLogin表中查找輸入的用戶信息是否存在,如果不存在則發(fā)出“輸入信息有誤”的提示信息;3)在用戶名和密碼正確的前提下進行身份識別,即檢測該用戶所具備的登錄權(quán)限,并根據(jù)不同的登錄權(quán)限跳轉(zhuǎn)到不同的頁面,并將相關(guān)的參數(shù)傳遞到新的對話框;4)如果用戶信息不存在,則用戶可以選擇重新注冊,也可以點擊【忘記密碼】輸入某些個人信息來重新設(shè)置密碼,當(dāng)注冊成功或新密碼設(shè)置成功之后再重新登錄。用戶登錄并判斷用戶是否存在代碼:CStringstrSQL="select*fromTB_UserLoginwhereLoginName='"+m_strName+"'andLoginPwd='"+m_strPwd+"'";if(theAdo.ExecuteSelSQL(strSQL,strField,strResult)){ if(strResult.GetSize()>0) { strRight=theAdo.GetSingleString(strResult.GetAt(0),4);//獲取用戶的登錄權(quán)限 strID=theAdo.GetSingleString(strResult.GetAt(0),1);//獲取用戶的ID號if(strRight=="teacher")//如為教師權(quán)限則進入教師管理界面 { CTeacherDlgdlg; dlg.userName=m_strName; dlg.userID=strID; dlg.userRight=strRight; dlg.DoModal(); } elseif(strRight=="student")//如為學(xué)生權(quán)限則進入學(xué)生界面 { CStudentInfoDlgdlg; dlg.userName=m_strName; dlg.userID=strID; dlg.userRight=strRight; dlg.DoModal(); } elseif(strRight=="admin")//如為管理員權(quán)限則進入管理員界面 { CManagerDlgdlg;dlg.userName=m_strName; dlg.userID=strID; dlg.userRight=strRight; dlg.DoModal(); } } else{ MessageBox("輸入信息有誤!","提示信息"); }5.2.2試題信息管理模塊試題信息管理模塊是題庫管理系統(tǒng)的重要模塊之一。一個好的題庫管理系統(tǒng)應(yīng)該能夠方便的為用戶提供上傳試題、瀏覽試題等功能,并具有良好的人機交互界面。該題庫管理系統(tǒng)的試題信息管理模塊如圖2所示。。圖2試題信息管理界面試題信息管理模塊的主要功能有:教師或管理員成功登錄后均可上傳試題。雙擊樹形控件,選擇某一科目,并為要上傳的試題選擇好章節(jié)、題型、所包含的知識點,并設(shè)置好分值及難度系數(shù)后,輸入題目內(nèi)容、答案、詳解,點擊【上傳】后即可成功上傳試題到題庫并將信息插入到TB_Question表中。教師或管理員登錄后均可以對個人上傳的試題進行修改、刪除等操作。雙擊列表控件選中某一行即可瀏覽到該試題的詳細信息并且可對試題信息進行修改并保存也可刪除試題信息。3)管理員登錄后,點擊【瀏覽其他人試題】即可在列表控件中顯示其他人上傳的試題的信息,選中某一行,管理員即可查看該試題的詳細信息,并可對試題信息進行修改保存,或刪除該試題信息。教師登錄后,點擊【瀏覽其他人試題】即可在列表控件中顯示其他人上傳的試題的信息,選中某一行,教師即可查看該試題的詳細信息,但不可對試題信息進行修改也不能刪除試題信息。上傳試題的主要代碼為:if(theAdo.Connect(strConn)){strSQL="insertintoTB_Question(QContent,QRightAnswer,QDifficulty,QDetailed,QScore,QType,QChapterID,QUploadID,QKnowPoint)values('"+m_strContent+"','"+m_strAnswer+"',"+m_strDifficulty+",'"+m_strDetail+"',"+m_strScore+",'"+m_strType+"',"+ChapterID+","+userID+",'"+GetPointID()+"')"; if(theAdo.ExecuteNotSelSQL(strSQL))//執(zhí)行插入語句 { MessageBox("添加成功!"); OnRefresh(); GetDlgItem(IDC_BUTTON1)->ShowWindow(FALSE); }}刪除試題的主要代碼為:voidCSqEntryDlg::OnDelete(){ intnSel=m_conList2.GetNextItem(-1,LVNI_SELECTED);//行號 CStringstrID=m_conList2.GetItemText(nSel,0); CStringstrSQL="deletefromTB_QuestionwhereQID="+strID; if(theAdo.GetConnectState()) { if(theAdo.ExecuteNotSelSQL(strSQL))//執(zhí)行刪除語句 { MessageBox("刪除成功!","提示信息"); }}}保存修改的主要代碼為:voidCSqEntryDlg::OnSave(){ UpdateData(1);intnSel=m_conList2.GetNextItem(-1,LVNI_SELECTED);//行號 CStringsID=m_conList2.GetItemText(nSel,0);//獲取第nSel行第0列的內(nèi)容即ID號 CStringstrSQL; if(theAdo.Connect(strConn)) { if(theAdo.GetConnectState()) { strSQL="updateTB_QuestionsetQContent='"+m_strContent+"',QRightAnswer='"+m_strAnswer+"',QDifficulty="+m_strDifficulty+",QDetailed='"+m_strDetail+"',QScore="+m_strScore+",QType='"+m_strType+"',QKnowPoint='"+GetPointID()+"'whereQID="+sID; if(theAdo.ExecuteNotSelSQL(strSQL)) { MessageBox("修改成功!"); OnRefresh(); } } } }5.2.3試卷信息管理模塊試卷信息管理模塊也是題庫管理系統(tǒng)的重要模塊之一。一個好的題庫管理系統(tǒng)應(yīng)該能夠為用戶上傳試卷、瀏覽試卷等提供方便和快捷,并具有良好的人機交互界面。該題庫管理系統(tǒng)的試卷信息管理模塊如圖3所示。圖3試卷信息管理模塊界面圖試卷信息管理模塊的主要功能及實現(xiàn)原理:教師或管理員成功登錄后均可以上傳試卷。用戶單擊【上傳試卷】即可彈出“文件打開”對話框,找到要上傳的試題文檔后即可在編輯框中顯示要上傳的試卷的內(nèi)容,設(shè)置好其相關(guān)信息后點擊【上傳】即可成功上傳試卷并將其內(nèi)容插入到表TB_TestInfo中,之后在TB_TestInfo表中查找出該試卷的ID號,系統(tǒng)自動會在該程序文件夾下創(chuàng)建一個以該試卷ID號為名的.txt文檔,并將該試卷的內(nèi)容寫入到該文檔中。教師或管理員登錄后,雙擊列表控件選中某一行,則系統(tǒng)會自動在程序文件下找到以該試卷編號為名的.txt文檔,并將其內(nèi)容讀出到編輯框內(nèi)顯示,同時可以查看該試卷的詳細信息,用戶可以修改并保存試卷信息或刪除試卷信息同時將系統(tǒng)文件夾下的指定文件刪除。管理員登錄后,點擊【瀏覽其他試卷】即可在列表控件中顯示其他人上傳的試卷的信息,選中某一行,管理員即可查看該試卷的詳細信息,并可對試卷信息進行修改保存,或刪除該試卷信息。4)教師登錄后,點擊【瀏覽其他人試題】即可在列表控件中顯示其他人上傳的試卷的信息,選中某一行,教師即可查看該試卷的詳細信息,但不可對試卷信息進行修改也不能刪除試卷信息。在程序文件夾下創(chuàng)建以該試卷編號為名的.txt文檔將試卷內(nèi)容寫入到該文檔的主要代碼為:voidCUTestDlg::SaveContent(CStringfileName,CStringstrText){ CStdioFilefile; CStringfullPath=filePath+"\\"+fileName; if(file.Open(fullPath,CFile::modeWrite|CFile::modeCreate)) //創(chuàng)建并寫入文件 {file.WriteString(strText);//寫入文本文件中 } file.Close();//關(guān)閉文件}上傳試卷的主要代碼為:strSQL="insertintoTB_TestInfo(TestTitle,TestType,TestRange,UploadID)values('"+m_strName+"',"+strType+","+strTerm+","+userID+")";if(theAdo.ExecuteNotSelSQL(strSQL)){ strSQL="selectTestID,TestTitle,UploadIDfromTB_TestInfowhereUploadID="+userID+"andTestTitle='"+m_strName+"'"; theAdo.ExecuteSelSQL(strSQL,strField3,strResult3); strID=theAdo.GetSingleString(strResult3.GetAt(0),1);//獲取試卷ID號 CStringfileName=strID+".txt"; dlg1.UpdateData(TRUE); CStringstrText; strText=dlg1.m_strTest; SaveContent(fileName,strText);//在系統(tǒng)文件夾下創(chuàng)建以ID號為名的.txt文檔 MessageBox("試卷上傳成功!");}5.2.4課程信息管理模塊管理員登錄后可對課程信息進行管理,點擊【課程信息管理】即可進入課程信息管理模塊,在該模塊中管理員可對課程信息進行管理包括:添加某一新課程到數(shù)據(jù)庫,并為該課程添加章節(jié)信息以及知識點信息;同時可以刪除某一課程以及該課程包含的所有章節(jié)信息、知識點信息;此外還可以為某一課程添加、刪除和修改章節(jié)信息以及知識點信息。其界面圖如圖4所示。點擊刪除科目或章節(jié)時系統(tǒng)會自動將題庫中與之相關(guān)的試題信息也一并全部刪除。圖4課程信息管理模塊界面圖課程信息管理模塊涉及的數(shù)據(jù)表有TB_CourseInfo表、TB_ChapterInfo表和TB_KnowPoint表。添加課程名的主要代碼為:voidCCourseInfoDlg::OnAddCourse(){ UpdateData(1); HTREEITEMstrParent=m_conCourse.GetParentItem(tree);//獲取選中的樹節(jié)點的父節(jié)點 CStringstrText=m_conCourse.GetItemText(strParent);//獲取父節(jié)點的名稱 CStringstrSQL; if(strText!="課程分類") { MessageBox("請選擇課程分類:公共課?計算機?管理?外語!"); return; } else { if(!m_strNewCourse.IsEmpty()) { strText=m_conCourse.GetItemText(tree);//獲取選中樹節(jié)點的文本 strSQL="insertintoTB_CourseInfo(CourseName,CourseType)values('"+m_strNewCourse+"','"+strText+"')"; if(theAdo.Connect(strConn)) { theAdo.ExecuteNotSelSQL(strSQL);//執(zhí)行插入語句 MessageBox("該課程添加成功!"); } theAdo.DisConnect(); RefreshTree(); } } m_strNewCourse=""; UpdateData(FALSE);}5.2.5用戶信息管理模塊1.管理員登錄后可以對全部的用戶信息進行管理包括:查詢、刪除、修改用戶信息同時可以注冊新的用戶信息。其界面圖如圖5.1所示。圖5.1用戶信息管理模塊界面圖2.普通用戶登錄后,可以對個人信息進行修改,也可修改登錄密碼。其界面如圖5.2所示。修改登錄密碼:圖5.2用戶信息管理模塊界面圖2修改密碼的主要代碼:voidCMPwdDlg::OnOK(){ UpdateData(TRUE); CStringstrSQL="updateTB_UserLoginsetLoginPwd='"+m_strNewPwd+"'whereID="+strID; if(theAdo.Connect(strConn)) { theAdo.ExecuteNotSelSQL(strSQL); MessageBox("密碼修改成功!"); } CDialog::OnOK();}5.2.6學(xué)生在線練習(xí)模塊學(xué)生登錄后,點擊【在線練習(xí)】按鈕可針對不同的科目,不同的章節(jié),不同的題型進行練習(xí),其界面如圖6所示。圖6學(xué)生在線練習(xí)界面圖學(xué)生在線練習(xí)頁面實現(xiàn)的主要功能有:1)學(xué)生可選擇不同的科目章節(jié)、不同的題型逐道做題。2)學(xué)生做題過程中,可以單擊【首題】或【末題】、【上一題】或【下一題】方便快捷的跳轉(zhuǎn)到指定的試題并瀏覽試題內(nèi)容;3)學(xué)生做題過程中隨時可以查看該題的正確答案及試題詳解。學(xué)生在線練習(xí)頁面用到的表有TB_CourseInfo表、TB_ChapterInfo表、TB_Question表和TB_DoQuestion表,各功能實現(xiàn)原理如下:1)當(dāng)學(xué)生選擇在線練習(xí)后,首先先選擇練習(xí)的科目,之后在該頁面初始化時,首先從TB_ChapterInfo表中查找出屬于該科目的全部章節(jié)信息,再從TB_Question表中查找屬于某章節(jié)的全部試題,并將試題的ID號按題型分類分別存放在不同的數(shù)組中。2)當(dāng)學(xué)生做題時,選擇某一章節(jié)的某一題型后,系統(tǒng)會自動從指定的數(shù)組中讀取試題的ID號并通過查詢TB_Question表,將該試題的信息包括:試題內(nèi)容,試題的正確答案、試題的詳解連同學(xué)生的答案插入到TB_DoQuestion臨時表中。其相關(guān)代碼為:strSQL="selectQID,QContent,QRightAnswer,QDetailedfromTB_QuestionwhereQChapterID="+strID+"andQType='"+str+"'";//從TB_Question表中查找試題信息if(theAdo.ExecuteSelSQL(strSQL,strField,strResult)){ QID=theAdo.GetSingleString(strResult.GetAt(j),1);//獲取試題的ID號 QName=theAdo.GetSingleString(strResult.GetAt(j),2);//獲取試題內(nèi)容 QAnswer=theAdo.GetSingleString(strResult.GetAt(j),3);//獲取試題答案 QDetail=theAdo.GetSingleString(strResult.GetAt(j),4);//獲取試題詳解 strSQL="insertintoTB_DoQuestion(QID,QContent,QAnswer,QDetail)values("+QID+",'"+QName+"','"+QAnswer+"','"+QDetail+"')"; theAdo.ExecuteNotSelSQL(strSQL);//將試題信息插入到TB_DoQuestion表中}3)當(dāng)學(xué)生退出系統(tǒng)結(jié)束練習(xí)后,系統(tǒng)會自動將TB_DoQuestion表中關(guān)于該學(xué)生的練習(xí)記錄全部刪除,其相關(guān)代碼為:CStringstrSQL="deletefromTB_DoQuestion";if(theAdo.Connect(strConn)) theAdo.ExecuteNotSelSQL(strSQL);5.2.7手動組卷模塊手動組卷模塊也是題庫管理系統(tǒng)不可或缺的一部分,手動組卷操作的方便快捷能在很大程度上減輕教師在組卷過程中的工作量。該系統(tǒng)手工組卷模塊的界面圖如圖7所示。圖7手動組卷界面圖手動組卷頁面實現(xiàn)的主要功能有:可以逐道瀏覽屬于組卷科目的全部試題的詳細信息;篩選試題信息;將感興趣的試題加入試卷進行組卷;可以從加入試卷的試題中提出某一試題;組卷完畢后可以預(yù)覽試卷效果,如滿意即可進行保存。教師登錄后,點擊【手動組卷】,選擇好需要組卷的科目,該頁面初始化時,首先從TB_Queston表中通過strSQL1="selectQID,QType,QDifficulty,QUploadIDfromTB_QuestionwhereQChapterID="+str語句取出全部屬于該科目的試題,并將試題信息存放到列表控件中,教師選中列表控件中的某一行后,便可以逐道查看每道題的詳細內(nèi)容,也可對試題信息進行篩選后查看,如對該試題感興趣即可將其加入到試卷即將該試題在數(shù)據(jù)庫表TB_Question中的QUse列屬性更改為“Y”,同時教師還可對加入到試卷的題目進行查看,也進行刪除。點擊【完成】后則完成組卷,教師可閱覽組卷后的效果。試卷預(yù)覽如圖7.1所示,點擊【保存】后即可打開“另存為”對話框,選擇好路徑后則可在指定路徑創(chuàng)建一個指定文件名的文本文件,并將組成的試卷內(nèi)容寫入到該文件中。圖7.1試卷預(yù)覽界面圖保存試卷內(nèi)容到指定的位置的文檔中的主要代碼為:voidCScanDlg::OnSave(){ CFileDialogobj(FALSE,".txt","",NULL,"(*.txt)|*.txt");//指定文件的擴展名為.txt CStringfilePath; intnum=m_conTab.GetCurSel(); if(obj.DoModal()==IDOK)//打開“另存為”對話框 { CStdioFilefile;//創(chuàng)建流式文件 filePath=obj.GetPathName();//獲取指定的路徑包括設(shè)置的文件名 if(file.Open(filePath,CFile::modeWrite|CFile::modeCreate))//創(chuàng)建文件并打開 { if(num==0) { file.WriteString(strContent);//向文件中寫入試卷內(nèi)容 MessageBox("試卷保存成功!"); } elseif(num==1) {file.WriteString(strAnswer);//向文件中寫入試卷答案 MessageBox("答案保存成功!"); } } file.Close();//關(guān)閉文件 }}5.2.8系統(tǒng)組卷模塊教師登錄后,點擊“系統(tǒng)組卷”后即可進入系統(tǒng)組卷模塊,教師按照向?qū)?,依次選擇組卷的科目、該課程包含的章節(jié)和要加入試卷的題型并設(shè)置每種題型的所包含的題量后,點擊組卷后,系統(tǒng)會自動到題庫中隨機選擇相應(yīng)的題目加入試卷,組卷完畢后,教師可閱覽組好的試卷,如果滿意即可將試卷保存到指定的路徑。其界面圖如圖8所示。系統(tǒng)組卷時,系統(tǒng)會首先從題庫中篩選出所有屬于該題型的試題,記錄其試題總數(shù),并產(chǎn)生n個1到該總數(shù)間的隨機數(shù),即為加入試卷的題目ID號,并將TB_Question表中關(guān)于該題目信息中的QUse的值修改為“Y”表示加入到試卷。最后每種題型的題目都組卷完畢后,組卷結(jié)束,可以預(yù)覽試卷內(nèi)容并可保存試卷。6系統(tǒng)調(diào)試系統(tǒng)調(diào)試與測試階段的根本目標(biāo)是盡可能多地發(fā)現(xiàn)并排除軟件中隱藏的錯誤,最終實現(xiàn)系統(tǒng)的高質(zhì)量運用。系統(tǒng)在設(shè)計過程中遇到了很多問題,例如程序運行出錯、邏輯錯誤、語句錯誤等,在老師以及同學(xué)們的幫助下,基本都得到了解決。6.1測試實例的研究與選擇系統(tǒng)測試采用的模塊測試的方法,包括對新用戶注冊模塊測試,用戶登錄模塊測試,試題信息管理模塊測試、試卷信息管理模塊測試、手動組卷模塊測試、系統(tǒng)組卷模塊測試、用戶信息管理模塊測試以及學(xué)生在線練習(xí)模塊測試。6.2測試環(huán)境與條件測試是在操作系統(tǒng)為Win7、數(shù)據(jù)庫為SQLServer2005、VisualC++6.0的環(huán)境下使用測試用例執(zhí)行測試的。6.3測試結(jié)果本系統(tǒng)經(jīng)過測試,運行情況基本可以達到設(shè)計目標(biāo),能滿足一般題庫管理系統(tǒng)的功能需求,另外可以添加其他功能模塊,可擴充性強。系統(tǒng)經(jīng)測試運行穩(wěn)定,可以實現(xiàn)試題、試卷的上傳、瀏覽、修改、刪除等操作,同時可以方便的實現(xiàn)系統(tǒng)組卷和手動組卷,學(xué)生還可以實現(xiàn)在線練習(xí),瀏覽試題,此外還可以增加課程信息、章節(jié)信息、知識點信息、題型信息是該題庫管理系統(tǒng)更易于擴充。系統(tǒng)也暴露出許多不足之處,在以后有待進一步改進。今后,通過學(xué)習(xí)還要繼續(xù)地努力和學(xué)習(xí)并完善本系統(tǒng)。結(jié)論經(jīng)過一段時間的設(shè)計與開發(fā),在老師以及同學(xué)的幫助下,并不斷翻閱書籍,上網(wǎng)查找相關(guān)資料,最終實現(xiàn)了系統(tǒng)的設(shè)計和編碼。基于VC++的題庫管理系統(tǒng)已開發(fā)完畢,其功能基本符合要求,能夠方便的完成各類試題的錄入、瀏覽、查詢、修改和刪除等操作,同時還能夠用戶完成試卷的上傳、瀏覽還能夠按要求方便簡潔的完成手動組卷或系統(tǒng)組卷,并且各項功能基本運行良好。另外,充分利用了一些工具軟件來進行輔助分析和輔助設(shè)計,使得系統(tǒng)的操作界面相對比較友好美觀。該軟件在很大程度上大大減輕了任課教師的工作強度,提高了教學(xué)水平和工作效率。在編寫這個軟件的過程中,雖然我竭盡全力,但由于本人C++編程水平有限,設(shè)計時間較短,考慮的不夠全面,所以該系統(tǒng)還有許多不盡如人意的地方,比如C/S的模式架構(gòu)設(shè)計實現(xiàn)的不太清晰,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的不太合理,手動組卷還不完善,未能實現(xiàn)按分值組卷,出錯處理不夠等多方面問題。這些都有待進一步改善。通過畢業(yè)設(shè)計,我學(xué)到了很多東西。是我對大學(xué)三年學(xué)習(xí)生活的一個總結(jié),使我在各個方面的知識得到充實、鞏固和進一步系統(tǒng)化,令我對軟件的開發(fā)設(shè)計有了一個明確的認識。參考文獻葛亮.VisualC++從入門到實踐.北京:清華大學(xué)出版社,2009薩師萱,王珊.數(shù)據(jù)庫系統(tǒng)概論.北京:高等教育出版社,2006詹英.數(shù)據(jù)庫技術(shù)與應(yīng)用—SQLServer2005教程.北京:清華大學(xué)出版社,2008劉懷亮.軟件工程導(dǎo)論.北京:冶金工業(yè)出版社.2007劉雪潔,劉永純.從零開始學(xué)VisualC++.北京:電子工業(yè)出版社,2011雷進輝,范秀平,高手傳,張飛.VisualC++項目開發(fā)案例精粹.北京:電子工業(yè)出版社,2010武瑩,彭文明.VisualC++開發(fā)實用編程200例.北京:中國鐵道出版社,2006明日科技.VisualC++程序開發(fā)范例寶典.北京:人民郵電出版社,2007百度文庫.VC++中MFC用ADO連接數(shù)據(jù)庫小結(jié)./view/9346f509763231126edb118f.html,2012百度文庫.試題庫管理系統(tǒng)的設(shè)計與實現(xiàn)./view/667a56fc0242a8956bece458.html,2013道客巴巴.通用試題庫管理系統(tǒng)的設(shè)計與實現(xiàn)./s?ie=utf-8&src=hao_360so&q=%E9%A2%98%E5%BA%93%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1,2012博客園.VC控件ListCtrl的使用方法總匯./zuollblog/archive/2010/04/21/1716940.html,2013李小勇,王瑛.題庫管理系統(tǒng)中的自動化組卷算法.西北師范大學(xué)學(xué)報(自然科學(xué)版),2002謝俊.通用題庫管理系統(tǒng)的設(shè)計與實現(xiàn).計算機時代,2008道客巴巴.MFC中MSChart的使用示例./p-919955532894.html,2013百度文庫.VisualC++編程技巧./view/c7fd841ba8114431b90dd8f6.html,2010致謝轉(zhuǎn)眼間大學(xué)本科的學(xué)習(xí)生活即將結(jié)束,在大學(xué)的學(xué)習(xí)生活中,我學(xué)到了許多知識,開闊了視野,為走向工作崗位奠定了堅實的理論基礎(chǔ)。畢業(yè)設(shè)計為我們從學(xué)校走向工作崗位提供了一次很好的嘗試。這次畢業(yè)設(shè)計不僅讓我體驗到了編程中的困難和戰(zhàn)勝困難后的欣喜,而且讓我學(xué)到了作為一名編程人員應(yīng)有的心理素質(zhì),這是一次理論聯(lián)系實踐的學(xué)習(xí),是對我們在大學(xué)期間所學(xué)知識的全面檢驗。我首先要感謝我的指導(dǎo)老師于麗梅老師,這一段時間是在于老師的不斷指導(dǎo)下走過來的,我從指導(dǎo)老師身上學(xué)到了很多東西。老師認真負責(zé)的工作態(tài)度,嚴謹?shù)闹螌W(xué)精神和深厚的理論水平都使我收益匪淺,她待人親切,思想縝密,治學(xué)嚴謹,及時指出我系統(tǒng)中的不足之處,并且引導(dǎo)我去思考解決問題的方法,她踏實的工作作風(fēng)、真誠無私的品質(zhì)、謙虛的為人使我在學(xué)業(yè)和人生方面都受益匪淺,是我今后工作、學(xué)習(xí)、生活的榜樣。在此向她表示最崇高的敬意和最衷心的感謝。我的每一步設(shè)計,都離不開老師的幫助,她總是在適當(dāng)?shù)臅r候為我指點迷津,解惑答疑。從她那里,我不僅學(xué)到了知識,而且還學(xué)習(xí)了對科學(xué)嚴謹、孜孜不求的精神。老師的指導(dǎo)與講解,鼓勵與表揚是對我最大的鞭策與褒獎,因為有了老師們的指導(dǎo),使我在設(shè)計過程中少走了不少彎路。這些都將給我的大學(xué)時光留下美好的回憶。同時,我也要感謝河北工業(yè)大學(xué)廊坊分校計算機系的所有老師對我的教導(dǎo)和培養(yǎng),他們?yōu)椴粌H為我提供了一個良好的學(xué)習(xí)氛圍,而且為我指明了作為一名軟件工程的學(xué)生以后的人生方向,使我一生受益。同時衷心地感謝在百忙之中評閱論文和參加答辯的各位老師?;贑8051F單片機直流電動機反饋控制系統(tǒng)的設(shè)計與研究基于單片機的嵌入式Web服務(wù)器的研究HYPERLINK"/detail.h
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 6346.2301-2025電子設(shè)備用固定電容器第23-1部分:空白詳細規(guī)范表面安裝金屬化聚萘二甲酸乙二醇酯膜介質(zhì)直流固定電容器評定水平EZ
- 2026年農(nóng)業(yè)高技能人才培育策略
- 2026年呼叫中心服務(wù)質(zhì)量提升課程
- 2026河南南陽市市直機關(guān)遴選公務(wù)員37人備考題庫帶答案詳解
- 隱形技術(shù)的定義
- 職業(yè)噪聲工人心血管疾病一級預(yù)防實踐
- 職業(yè)健康監(jiān)護策略研究
- 職業(yè)健康大數(shù)據(jù)在職業(yè)病鑒定中的應(yīng)用
- 職業(yè)健康中的人機適應(yīng)性研究
- 齊齊哈爾2025年黑龍江齊齊哈爾龍江縣選調(diào)中小學(xué)校醫(yī)筆試歷年參考題庫附帶答案詳解
- 飛機場建設(shè)合同
- 中小學(xué)建筑設(shè)計規(guī)范2022年
- 海倫司小酒館創(chuàng)業(yè)計劃書
- 工程財務(wù)管理制度
- 預(yù)制渡槽吊裝施工專項方案
- 屋面光伏系統(tǒng)安裝要求
- 魯迅《為了忘卻的紀念》散文全文
- 四位數(shù)乘四位數(shù)乘法題500道
- 二次根式的化簡與最簡二次根式
- YS/T 377-2010標(biāo)準熱電偶用鉑銠10-鉑偶絲
- 醫(yī)院消毒滅菌效果環(huán)境衛(wèi)生學(xué)監(jiān)測報告單(檢驗)
評論
0/150
提交評論