試卷自動(dòng)生成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
試卷自動(dòng)生成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
試卷自動(dòng)生成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
試卷自動(dòng)生成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
試卷自動(dòng)生成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、-作者xxxx-日期xxxx試卷自動(dòng)生成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【精品文檔】四川師范大學(xué)成都學(xué)院本科畢業(yè)設(shè)計(jì)試卷自動(dòng)生成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名李錦超學(xué) 號(hào)2012101149所在學(xué)院通信工程學(xué)院專業(yè)名稱通信工程班 級(jí)2012級(jí)寬帶通信2班指導(dǎo)教師石 彬四川師范大學(xué)成都學(xué)院二一六年五月【精品文檔】試卷自動(dòng)生成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生:李錦超 指導(dǎo)教師:石彬內(nèi)容摘要:試卷自動(dòng)生成系統(tǒng),即用戶通過(guò)自定義選擇設(shè)置試題的類型、難度、分?jǐn)?shù)、時(shí)間等多個(gè)因素自動(dòng)生成考試試題并給予對(duì)錯(cuò)驗(yàn)證。隨著互聯(lián)網(wǎng)絡(luò)的飛速發(fā)展、網(wǎng)絡(luò)教育的不斷普及與提升,傳統(tǒng)的出題考試方式已經(jīng)不能滿足所有的需求,一概而論不“因材施教”的出題方式不利于考

2、核不同類型的學(xué)生,也不滿足現(xiàn)代教育的發(fā)展需要。因此,現(xiàn)在已經(jīng)逐漸開(kāi)始流行自定義、有難度、時(shí)間、類型選擇控制的出題方式來(lái)迎合當(dāng)前社會(huì)考試所需。試卷自動(dòng)生成系統(tǒng)的誕生油然而生。該設(shè)計(jì)主要目的是幫助出題者以及試題訓(xùn)練者能夠根據(jù)不同人群自定義設(shè)置難度、類型生成考試試題的系統(tǒng)。系統(tǒng)為用戶提供用戶登錄、開(kāi)始試卷定制、選擇題型、選擇所占分?jǐn)?shù)比例、最高分?jǐn)?shù)設(shè)定、考試時(shí)間限制設(shè)定、考試難度選擇、生成試卷以及答案查看等功能,將用戶的需要“因材施教”、“分門別類”地提供,由用戶自定義選取,從而達(dá)到針對(duì)不同層次的考生的訓(xùn)練和考驗(yàn)。同時(shí),也方便了出題者逐個(gè)進(jìn)行試卷試題的選取,省去了出題者挨個(gè)設(shè)定的過(guò)程,既提升了出題的速

3、度,也提高了出題的整體質(zhì)量。本次設(shè)計(jì)主要是以服務(wù)出題者、試題訓(xùn)練人等人群方便快速地完成試題的構(gòu)造并提升自身所需檢測(cè)為目的的試卷自動(dòng)生成系統(tǒng)。整體設(shè)計(jì)使用的是JAVA語(yǔ)言開(kāi)發(fā)的B/S(瀏覽器/服務(wù)器)應(yīng)用系統(tǒng)。用戶登錄該系統(tǒng)后可以根據(jù)自己的能力選擇生成題目的難度,根據(jù)自己的弱項(xiàng)針對(duì)題目類型進(jìn)行生成試題,亦可根據(jù)自己的熟練度選擇答題時(shí)間。本系統(tǒng)的代碼框架采用了現(xiàn)在比較流行的SSH(Spring+Struts+Hibernate)進(jìn)行設(shè)計(jì),在功能模型的實(shí)現(xiàn)和頁(yè)面處理方面嚴(yán)格遵從了MVC(Model,View,Controller)的思想體系。配合Javascript以及Xml對(duì)頁(yè)面提取處理。數(shù)據(jù)庫(kù)方

4、面采用了中小型的Mysql數(shù)據(jù)庫(kù)進(jìn)行處理,數(shù)據(jù)庫(kù)工具使用了當(dāng)下主流的navicat進(jìn)行操作,以減輕代碼量的負(fù)擔(dān)和方便代碼編寫(xiě)和功能實(shí)現(xiàn)。關(guān)鍵詞:試卷自動(dòng)生成 B/S Java MySQL數(shù)據(jù)庫(kù)Design and implementation of automatic test paper generation systemAbstract: Automatic test paper generation system, that is, by the user to customize the selection of the type of test questions, difficul

5、ty, scores, time and other factors automatically generate test questions and give the wrong verification. With the rapid development of Internet, network education popularization and promotion, the traditional way of examination questions has been unable to meet all the needs of generalizations do n

6、ot teach students in accordance of their aptitude questions the way is not conducive to the assessment of different types of students, also do not meet the development need of the modern education. Therefore, now we have assembly popular custom, difficulty, time, type selection control sets the topi

7、c the way to cater to the social examination required. Automatic generation system of test paper birth arise spontaneously.The main purpose of the design is the help topic and questions of training can be set difficulty, type of generating examination papers system according to the custom of differe

8、nt groups of people. System for the user provides user login and start customized paper, multiple-choice, choose the ratio, the highest score set, the examination time limit set, choose the difficulty of the exam, test generation and check your answers and other functions, the user need to "tea

9、ch students in accordance with their aptitude", "sub categories" to provide, selected by the user, so as to achieve for candidates of different levels of training and test. , but also to facilitate the questions one by one of papers selected, eliminating the topic and set one by one,

10、both to enhance the speed of questions, the topic and also improves the quality of the whole.This design is mainly based on service questions, questions of training people and other people easily and quickly complete the test structure and enhance its test paper auto generating system. The overall d

11、esign is the use of JAVA language development B/S (Browser / server) application system. After the user login the system can according to their ability to select the difficulty of the questions in the form, according to their weaknesses for types of questions were generated questions, can also choos

12、e to answer the questions of the time according to their proficiency.The code framework of the system using the now popular SSH (Spring + struts + Hibernate) is designed. The function model and the realization of page processing strictly comply with the MVC (model, view and controller) system of tho

13、ught. With Javascript and Xml on page extraction. Database used in small Mysql database processing, database tools used in the current mainstream Navicat operation, in order to reduce the burden of writing code and convenient code and function realization.Keywords: Automatic test paper generation B/

14、S Java MySQL databas目 錄前言11 系統(tǒng)功能介紹與分析11.1 用戶登錄功能11.2 試卷生成及試題判斷功能21.3 題庫(kù)維護(hù)功能32 數(shù)據(jù)庫(kù)的設(shè)計(jì)與開(kāi)發(fā)5562.2.1 數(shù)據(jù)庫(kù)設(shè)計(jì)思路673 試卷自動(dòng)生成系統(tǒng)流程83.1 物理結(jié)構(gòu)流程8114 界面設(shè)計(jì)12124.2 界面設(shè)計(jì)示意圖135 系統(tǒng)算法設(shè)計(jì)19195.1.1 隨機(jī)法195.1.2 回朔法205.1.3 遺傳算法215.2 試題難度算法215.3 試題分?jǐn)?shù)算法215.4 系統(tǒng)算法總結(jié)226 主要功能代碼展示2222226.1.2 登錄功能246.1.3 主要功能模塊27前端代碼展示30代碼30317 總結(jié)32參考

15、文獻(xiàn)34試卷自動(dòng)生成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)前言現(xiàn)代教育伴隨著互聯(lián)網(wǎng)、自動(dòng)化的發(fā)展而迅速地進(jìn)行革新,傳統(tǒng)的試卷考試已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足現(xiàn)在社會(huì)急促的步伐,不僅如此,傳統(tǒng)的試題考試設(shè)計(jì)相當(dāng)?shù)叵某鲱}者的時(shí)間與精力,并且沒(méi)有針對(duì)性。這種方式已經(jīng)不能滿足現(xiàn)代考試緊湊的步伐了。因此,能夠快速并且具有針對(duì)性、為用戶提供自定義難度、類型、時(shí)間選擇的試卷自動(dòng)生成就顯得尤為重要了。試卷自動(dòng)生成系統(tǒng)油然而生。傳統(tǒng)的試卷出題方式需要經(jīng)過(guò)人工進(jìn)行,出題者或者使用者需要根據(jù)自己的經(jīng)驗(yàn)進(jìn)行題目的設(shè)置,這種方式往往需要人力對(duì)試題數(shù)據(jù)的反復(fù)制定和驗(yàn)算、對(duì)題目合理性進(jìn)行檢驗(yàn)等等。制定題目的難度梯度,以滿足不同層次的學(xué)生反應(yīng)不同的學(xué)習(xí)水平

16、。出題者往往還需要將以往的試題與將要出的試題的考點(diǎn)、難度進(jìn)行對(duì)比。由上訴需求可以看出,傳統(tǒng)的人工出題方式不僅沒(méi)有將互聯(lián)網(wǎng)聯(lián)動(dòng)的優(yōu)勢(shì)運(yùn)用起來(lái),進(jìn)行題庫(kù)的資源共享與使用,也使出題者浪費(fèi)了大量的研究和設(shè)置試題的時(shí)間 。互聯(lián)網(wǎng)的時(shí)代是個(gè)資源共享的時(shí)代,現(xiàn)代教育也應(yīng)該與時(shí)俱進(jìn),對(duì)于優(yōu)秀的試題、適合學(xué)生做的試題可以進(jìn)行共享并且反復(fù)利用,并且也解決了出題者自我思考浪費(fèi)大量時(shí)間的問(wèn)題。本次設(shè)計(jì)的數(shù)據(jù)庫(kù)可以存儲(chǔ)大量物聯(lián)網(wǎng)所提供的各類試題需求,以滿足資源共享與互補(bǔ)互助的需求。此外,該系統(tǒng)還提供了多種一鍵選擇的功能方便用戶意見(jiàn)集成試卷。同時(shí),數(shù)據(jù)庫(kù)的使用也使得針對(duì)不同的用戶也額外地分配的個(gè)人對(duì)題庫(kù)和試題的編輯權(quán)限,

17、用戶可以自定義題目的難度、類型、分?jǐn)?shù)等等,也可以新增、刪除、查閱和編輯已有的試題。更加人性化的是,用戶在完成試卷答題之后,系統(tǒng)會(huì)根據(jù)用戶等分的情況給出提升或者降低難度的一鍵生成試卷的選項(xiàng)。從整個(gè)試卷的出題到打分結(jié)束,整個(gè)流程不僅與龐大的數(shù)據(jù)庫(kù)進(jìn)行了資源共享,也極大地提升了出題的質(zhì)量和時(shí)間,可謂一舉多得!試卷自動(dòng)生成系統(tǒng)的不斷成熟將會(huì)逐漸撼動(dòng)傳統(tǒng)出題以及訓(xùn)練方式,隨著試卷自動(dòng)生成系統(tǒng)的不斷完善和創(chuàng)新,用戶將獲得更好的體驗(yàn)。本次設(shè)計(jì)主要研究試卷自動(dòng)生成系統(tǒng)的各項(xiàng)功能以及相對(duì)傳統(tǒng)出題方式所帶來(lái)的優(yōu)勢(shì)。1 系統(tǒng)功能介紹與分析1.1 用戶登錄功能每一個(gè)用戶都會(huì)有自己對(duì)題庫(kù)和試題不同的需求,我們提供了My

18、sql數(shù)據(jù)庫(kù)為每個(gè)人分配了單獨(dú)的IP并且開(kāi)辟了獨(dú)立的空間。用戶在輸入帳號(hào)密碼登錄之后可以自由地根據(jù)需要管理自己的題庫(kù)和試題。用戶登錄系統(tǒng)的設(shè)置很好地區(qū)分了不同使用人群對(duì)不同環(huán)境的試題需求,也方便了使用者個(gè)人對(duì)特殊體型和試題的編輯和修改操作。1.2 試卷生成及試題判斷功能本試卷自動(dòng)生成系統(tǒng)為用戶提供了多項(xiàng)一鍵生成功能,用戶可以根據(jù)自己的需要對(duì)生成試題的類型、分?jǐn)?shù)、難度、時(shí)間、所占比例等等做出相應(yīng)的設(shè)置從而生成出相應(yīng)的試題。根據(jù)用戶的作答給出成績(jī)并且提供提高難度和降低難度的一鍵生成按鈕方便用戶根據(jù)實(shí)際情況調(diào)整試卷。并且用戶可以根據(jù)自己的需要,自定義增加、刪除、查閱和編輯自己的題庫(kù)和試題。在用戶登錄

19、該系統(tǒng)之后,用戶會(huì)來(lái)到一個(gè)中轉(zhuǎn)的歡迎界面,用戶可以選擇查看題庫(kù)對(duì)試題進(jìn)行操作,也可以直接選擇在線答題系統(tǒng)對(duì)自己所需的試題要求進(jìn)行設(shè)置并且一鍵生成。l 試題類型的選擇生成一套試題首先得明確這套試題的結(jié)構(gòu)組成,需要幾種類型的試題,每種試題、每道題所占的分?jǐn)?shù)比例都決定著這套試卷的合理性。本系統(tǒng)為用戶提供了當(dāng)代考試最流行的幾種題目類型:選擇題、填空題、問(wèn)答題。用戶可以根據(jù)自己的需求合理安排各類題目在整個(gè)試卷中所占的數(shù)量以及分?jǐn)?shù)的比例,比如單選題20道,每道1分;多選題10道,每道2分;填空題10道,每道2分,簡(jiǎn)答題5道,分別為6分、8分、8分、10分,共100分。l 試題難度的選擇作答難度的設(shè)定關(guān)系這

20、整套試卷的出題質(zhì)量,如何合理地根據(jù)實(shí)際情況給出適當(dāng)難度的試題顯得尤為重要。本系統(tǒng)為每一道試題都給出了一個(gè)難度系數(shù),數(shù)據(jù)庫(kù)會(huì)根據(jù)給定的難度系數(shù)自動(dòng)為您提供您所需要的難度系數(shù)的試題供用戶選擇。難度系數(shù)設(shè)定在0-1之間,用戶只需設(shè)定不同類型的題型的難度系數(shù)系統(tǒng)即會(huì)自動(dòng)為該類型進(jìn)行題型分配。因此,用戶在設(shè)置難度系數(shù)的時(shí)候只需要把握好整套試題的難度梯度即可。此外。該系統(tǒng)還會(huì)根據(jù)用戶的作答情況給出一鍵自動(dòng)降低難度和一鍵自動(dòng)提高難度的試卷生成功能,很好地幫助用戶找到當(dāng)前階段適合自己訓(xùn)練的試題難度。l 考試時(shí)間的選擇不同試題難度根據(jù)出題者分配,在設(shè)置難度的時(shí)候需要注意的就是難度和答題時(shí)間的合理結(jié)合,該系統(tǒng)提供

21、了自定義的答題時(shí)間設(shè)定,方便使用者根據(jù)自己的綜合實(shí)力在不同階段設(shè)置需要完成試題的時(shí)間。比如當(dāng)用戶第一次做的時(shí)候可以將時(shí)間設(shè)置為兩個(gè)小時(shí),經(jīng)過(guò)一段時(shí)間的訓(xùn)練,用戶一是可以通過(guò)提升難度來(lái)加強(qiáng)能力,同時(shí)也可以選擇相同難度的其他試題通過(guò)減短作答時(shí)間的方式來(lái)得到提升。本系統(tǒng)提供的時(shí)間設(shè)定很好地滿足了用戶的這點(diǎn)需求。l 總分?jǐn)?shù)的設(shè)置用戶可以根據(jù)試卷的題量和考試需求自定義指定試卷的總分?jǐn)?shù)以此配合題型的所占分?jǐn)?shù)比例,比如在高中學(xué)校應(yīng)用此系統(tǒng)自動(dòng)生成試題,理綜試卷按照傳統(tǒng)標(biāo)準(zhǔn)應(yīng)當(dāng)設(shè)置300分為滿分;數(shù)學(xué)、英語(yǔ)和語(yǔ)文等學(xué)科應(yīng)按照150分給出。在初中或者小學(xué)等其他環(huán)境中亦可給出120分或者100分甚至80分的滿分。

22、當(dāng)然,分?jǐn)?shù)的給定完全由用戶自定義,具體情況以實(shí)際需要為主。同時(shí)也方便使用者在單獨(dú)的考試中能夠合理地分配分?jǐn)?shù)。l 生成試卷的功能在完成了上訴的試卷不同類型試題的難度系數(shù)設(shè)定、考試總時(shí)間的分配、考試總分?jǐn)?shù)的設(shè)定之后,自動(dòng)生成試卷就顯得十分簡(jiǎn)單了,用戶只需根據(jù)界面提示一鍵生成即可從數(shù)據(jù)庫(kù)中隨機(jī)提取相應(yīng)數(shù)量并且符合條件(如類型和難度系數(shù)的)的試題,開(kāi)始答題之后,倒計(jì)時(shí)開(kāi)始啟動(dòng)。若作答完題之后用戶選擇了提升難度或者降低難度,那么系統(tǒng)也會(huì)自動(dòng)根據(jù)當(dāng)前的試題難度系數(shù)做出判斷,適當(dāng)?shù)亟档突蛘咴黾涌荚囯y度對(duì)數(shù)據(jù)庫(kù)進(jìn)行試題的調(diào)取,再采用相同的方式進(jìn)行試題的自動(dòng)生成。l 試題判斷功能當(dāng)用戶完成登錄選題生成試題并且作

23、答之后,點(diǎn)擊提交試卷,系統(tǒng)會(huì)根據(jù)用戶作答情況結(jié)合數(shù)據(jù)庫(kù)答案對(duì)用戶的作答進(jìn)行評(píng)分,用戶根據(jù)得分情況從而選擇是否增加難度或者降低難度再次進(jìn)行作答訓(xùn)練。針對(duì)單選題、多選題、判斷題、填空題,經(jīng)過(guò)正則處理過(guò)后的Javascript可以自動(dòng)忽略空格、空白字符等等的干擾因素以確保空白空格等電腦認(rèn)為操作帶來(lái)的誤判。對(duì)于簡(jiǎn)答題,數(shù)據(jù)庫(kù)會(huì)根據(jù)事先的關(guān)鍵字提取去抓取用戶的答案中的關(guān)鍵字進(jìn)行對(duì)比,只要最關(guān)鍵的關(guān)鍵字符出現(xiàn),基本可以判定該題得分。關(guān)鍵字的回答正確率也決定了該用戶此題的最終得分,通過(guò)分割多個(gè)關(guān)鍵字以確保系統(tǒng)判斷的正確率,極大地減少了誤判,也滿足了自動(dòng)判斷節(jié)省人力對(duì)比資源的時(shí)間。1.3 題庫(kù)維護(hù)功能用戶除了

24、從數(shù)據(jù)庫(kù)中搜索、提取自動(dòng)生成出試題以外,有時(shí)候也需要將自己平時(shí)收集的一些優(yōu)秀的題目錄入題庫(kù)并設(shè)定難度系數(shù),增加題庫(kù)的題目庫(kù)存以便下一次調(diào)用或者自動(dòng)生成。此外,對(duì)于一些易錯(cuò)、難懂的題目我們不需要講究題目?jī)?nèi)容的形式,只需要對(duì)其重要參數(shù)進(jìn)行修改即可重做以達(dá)到多次練習(xí)的效果,這樣既沒(méi)有脫離題目考察內(nèi)容的本質(zhì),也節(jié)約了大量的時(shí)間。當(dāng)然,對(duì)于一些用戶已經(jīng)完全掌握的試題,用戶可能怕在下一次自動(dòng)生成試題中再次遇到從而減少了訓(xùn)練量并耽擱自己的訓(xùn)練時(shí)間。所以需要將其刪掉。也有時(shí),用戶想要有針對(duì)性地訓(xùn)練,對(duì)于某種類型或者自己經(jīng)常出錯(cuò)的題進(jìn)行反復(fù)練習(xí),需要在茫茫題庫(kù)中迅速查找到某一道題。綜上所訴,我們?yōu)樵撓到y(tǒng)設(shè)置了題

25、庫(kù)的試題增加、刪除、查閱與編輯功能,以方便用戶對(duì)題庫(kù)的各種功能需求。以下為具體功能的詳細(xì)介紹:l 增加、刪除試題功能系統(tǒng)中的每一道試題都有且只有唯一的一個(gè)ID作為主鍵,在不考慮恢復(fù)試題的情況下,本系統(tǒng)采用了刪除數(shù)據(jù)庫(kù)ID字段的方式直接對(duì)其數(shù)據(jù)進(jìn)行刪除與添加,刪除的數(shù)據(jù)ID數(shù)不會(huì)被新的數(shù)據(jù)ID所代替,數(shù)據(jù)的ID會(huì)依次呈上升的形式無(wú)限排列下去。通過(guò)程序界面連接數(shù)據(jù)庫(kù)語(yǔ)言,增加采用Mysql增加語(yǔ)句insert into t_user(id, degree(難度),style(類型),content(內(nèi)容)) values(xx,xx,xx,xx)來(lái)設(shè)置用戶自定義的試題;刪除則采用Mysql刪除語(yǔ)句

26、delete from tablename(表名) where xx=xxx and xxx = xxx or xxx = xxx數(shù)來(lái)進(jìn)行條件的控制并且進(jìn)行數(shù)據(jù)庫(kù)刪除操作數(shù)據(jù)。當(dāng)然,數(shù)據(jù)庫(kù)初始化的時(shí)候處理關(guān)鍵的鍵以及主鍵不能為空以外,其余用戶可以選擇留空白,只需勾寫(xiě)必須的條件即可完成增加刪除功能。l 查閱試題功能查閱試題的功能主要是為了方便使用者快速、直接地找到自己所需的試題。快速搜索關(guān)鍵字的方式可以為前臺(tái)或者后臺(tái)來(lái)完成。使用后臺(tái)的方式需要在數(shù)據(jù)庫(kù)當(dāng)中設(shè)置一個(gè)問(wèn)題關(guān)鍵字的字段,在其中錄入相應(yīng)的關(guān)鍵字,然后對(duì)其搜索按鈕進(jìn)行處理進(jìn)行連接查詢數(shù)據(jù)庫(kù)得出符合結(jié)果的試題。使用前臺(tái)的方式需要將關(guān)鍵字全部讀

27、取在指定的文件當(dāng)中,通過(guò)Javascript對(duì)其進(jìn)行代碼的讀取,采用正則和ajax等方式將相應(yīng)關(guān)鍵字進(jìn)行提取,然后在對(duì)比input框中輸入的數(shù)據(jù)從而得出符合條件的試題。考慮到本系統(tǒng)采用了數(shù)據(jù)庫(kù)讀取的方式,我們便可以在數(shù)據(jù)庫(kù)模型搭建的時(shí)候很好地預(yù)測(cè)所需要的字段,方便了所有功能的實(shí)現(xiàn)。所以本系統(tǒng)采用與后臺(tái)數(shù)據(jù)庫(kù)結(jié)合的方式進(jìn)行查詢。采用Mysql查詢語(yǔ)句select id(試題ID),stname(試題名稱),keyword(試題關(guān)鍵字)from DB_name(表名)where(條件設(shè)置) degree(難度系數(shù)) is num(數(shù)值)的方式在界面得出用戶所需要查找的相應(yīng)內(nèi)容,當(dāng)然,select后

28、面根的具體的需要展示出來(lái)的字段可以根據(jù)用戶需要在設(shè)計(jì)的時(shí)候作出調(diào)整,我們也可以全出查詢出來(lái),只在界面展示用戶需要的部分。Where后面跟的條件當(dāng)然也可以根據(jù)用戶的需求來(lái)改變?cè)O(shè)置,用戶可以使用多個(gè)條件進(jìn)行條件的定義。最后滿足所有條件的試題將會(huì)被展示出來(lái),否則題庫(kù)中沒(méi)有符合該條件的試題。l 編輯試題功能對(duì)于題庫(kù)的編輯功能的設(shè)定主要方便了用戶對(duì)指定試題的特殊要求做維護(hù)和修改,通過(guò)修改主要參數(shù)、內(nèi)容環(huán)境以達(dá)到一題多用、舉一反三。同時(shí)也方便了用戶糾正指出被忽略的試題錯(cuò)誤。進(jìn)入試題編輯頁(yè)面進(jìn)行完編輯功能后點(diǎn)擊保存,程序?qū)?zhí)行修改數(shù)據(jù)庫(kù)的Mysql語(yǔ)句update tablename(表名) set 字段=

29、xx,字段=xx where(條件設(shè)置) xxx=xxx and xxx=xxx從而保存修改內(nèi)容。題庫(kù)編輯功能的實(shí)現(xiàn)幫助了用戶隨時(shí)隨地自定義地將試題修改成自己所需的條件,對(duì)于不同用戶對(duì)同意試題的難度理解的定義、所花時(shí)間的需要以及出現(xiàn)的頻率的不同做了很好的區(qū)分,每位用戶都可以結(jié)合自己的實(shí)際情況進(jìn)行試題的考核。2 數(shù)據(jù)庫(kù)的設(shè)計(jì)與開(kāi)發(fā)數(shù)據(jù)庫(kù)基礎(chǔ)在整個(gè)系統(tǒng)的功能運(yùn)行流程當(dāng)中,我們可以很容易地發(fā)現(xiàn)一條貫穿整個(gè)系統(tǒng)的“線”,那就是數(shù)據(jù)庫(kù),無(wú)論是用戶的登錄系統(tǒng),還是題目的增加、刪除、查閱與編輯,再到試卷的生成、試題的保存都離不開(kāi)數(shù)據(jù)庫(kù)。那么接下來(lái),我們就有必要對(duì)數(shù)據(jù)庫(kù)進(jìn)行一些基礎(chǔ)性質(zhì)的講解。我們常說(shuō)的數(shù)據(jù)庫(kù)

30、(Database)通俗地來(lái)講就是利用主機(jī)空間開(kāi)辟的一個(gè)虛擬的對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行儲(chǔ)存、管理的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)。數(shù)據(jù)庫(kù)最初誕生于1950年,最初只是用于儲(chǔ)存和管理一些重要的數(shù)據(jù),發(fā)展至今,數(shù)據(jù)庫(kù)已經(jīng)得到了非常廣泛的運(yùn)用,存儲(chǔ)資源的種類也變得越來(lái)越多種多樣。用戶可以通過(guò)不同類型的代碼對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接從而對(duì)數(shù)據(jù)進(jìn)行增加、刪除、查閱和修改、展示等等功能。如今市面上常見(jiàn)的數(shù)據(jù)庫(kù)有ORACLE(甲骨文)、DB2、SQL Server、Sybase、Informix、MySQL、VF、Access等等。但是一般基于系統(tǒng)大小、開(kāi)發(fā)速度、開(kāi)源程度以及成本的考慮,在中小型系統(tǒng)或者網(wǎng)站的開(kāi)發(fā)的時(shí)候,我們往往選擇Mysql數(shù)

31、據(jù)庫(kù)作為主流數(shù)據(jù)庫(kù)。Mysql的功能未必是最強(qiáng)大的一個(gè),它相對(duì)于ORACLE(甲骨文)、DB2等數(shù)據(jù)庫(kù)的功能上來(lái)說(shuō)還略差一截,但就其開(kāi)源程度以及傳播的知名度來(lái)說(shuō),Mysql因其卓越的開(kāi)發(fā)速度以及可靠性在中小型系統(tǒng)開(kāi)發(fā)當(dāng)中占據(jù)了不可或缺的一席。數(shù)據(jù)庫(kù)的廣泛運(yùn)用使得市面上出現(xiàn)了很多數(shù)據(jù)庫(kù)的編輯使用工具。比較流行的有phpAdmin、Navicat、SQLyog、Sequel Pro、Microsoft SQL Server等等。每一款數(shù)據(jù)庫(kù)管理軟件都有自己的優(yōu)劣勢(shì),無(wú)論使用哪一款,目的都是為了簡(jiǎn)化方便對(duì)數(shù)據(jù)庫(kù)的管理和操作。phpAdmin是一款基于網(wǎng)頁(yè)的Mysql開(kāi)源管理器,它以界面簡(jiǎn)單、功能齊全

32、而深受廣大用戶的喜愛(ài)。但本系統(tǒng)最終還是選用了Navicat作為數(shù)據(jù)庫(kù)管理編輯的軟件。Navicat是一款跨平臺(tái)的(于Windows/Mac/Linux)的管理數(shù)據(jù)工具,相對(duì)于頁(yè)面形式的phpAdmin來(lái)說(shuō),Navicat在界面優(yōu)化以及操作處理的運(yùn)行速度上來(lái)說(shuō)更勝一籌,同時(shí)也避免了數(shù)據(jù)庫(kù)軟件受到網(wǎng)頁(yè)瀏覽器影響的情況。Navicat的完全開(kāi)源工作并不復(fù)雜,在網(wǎng)上可以輕易地搜索到教程并且在5分鐘內(nèi)搞定。本套試卷自動(dòng)生成系統(tǒng)使用Mysql數(shù)據(jù)庫(kù),Navicat數(shù)據(jù)庫(kù)管理工具進(jìn)行操作管理。數(shù)據(jù)庫(kù)設(shè)計(jì)需求2.2.1 數(shù)據(jù)庫(kù)設(shè)計(jì)思路在程序制作初始,將數(shù)據(jù)庫(kù)所需要用到的表一一羅列出來(lái)有利于幫助整個(gè)程序的設(shè)計(jì)思

33、路和需求分析。本系統(tǒng)主要用到的數(shù)據(jù)表有用戶表、選擇題型表、填空題型表、簡(jiǎn)答題型表以及一些備用和拓展功能表。用戶表主要用于不同用戶登錄進(jìn)行自定義題庫(kù)操作時(shí)候?qū)γ總€(gè)用戶的區(qū)分和數(shù)據(jù)保存;選擇、填空、簡(jiǎn)答題型表主要用于用戶對(duì)試題的修改和提取以及試卷自動(dòng)生成功能的使用。其他的一些表(可選)可用于數(shù)據(jù)備份和恢復(fù)、考試時(shí)間、難度系數(shù)算法的判斷等等,當(dāng)然,也可以用純前端的Javascript來(lái)進(jìn)行算法的關(guān)聯(lián),數(shù)據(jù)庫(kù)的大體設(shè)計(jì)思路圖如所示。圖-1 數(shù)據(jù)庫(kù)設(shè)計(jì)思路示意圖u 用戶登錄:用戶登錄首先需要進(jìn)行用戶注冊(cè)以確保數(shù)據(jù)庫(kù)能夠識(shí)別下一次登陸并保存用戶對(duì)試題的相關(guān)操作。第一次登錄的用戶會(huì)得到數(shù)據(jù)庫(kù)試題的全部初始數(shù)

34、據(jù),之后不同用戶對(duì)題庫(kù)的不同編輯和修改將會(huì)根據(jù)各自的賬戶保存為新的數(shù)據(jù)。試題構(gòu)造表:試題構(gòu)造表主要是為了滿足試題功能配置而設(shè)置的數(shù)據(jù)表,例如選擇題應(yīng)該有ID、試題編號(hào)、題目類別、題目狀態(tài)、創(chuàng)建時(shí)間、創(chuàng)建人、答案id、難度等級(jí)等多個(gè)字段構(gòu)造而成。依次構(gòu)建出選擇題、填空題、簡(jiǎn)答題的數(shù)據(jù)類型表,為用戶在選擇難度、試題類型、試題搜索、試題編輯等方面提供數(shù)據(jù)庫(kù)切入字段,方便Mysql數(shù)據(jù)庫(kù)語(yǔ)言調(diào)用。數(shù)據(jù)庫(kù)表與字段的設(shè)置u 用戶登錄表字段:用戶登錄表主要記錄的字段有用戶的id、userName(用戶名)、userNum(用戶編號(hào))(可選)、passWord(密碼)、state(狀態(tài))(可選)、cTime(

35、創(chuàng)建時(shí)間)。-1 數(shù)據(jù)庫(kù)用戶登錄數(shù)據(jù)表字段名數(shù)據(jù)類型主關(guān)鍵字取值說(shuō)明idvarchar(16)key用戶獨(dú)有IDuserNamevarchar(64)用戶名userNumint(32)用戶編號(hào)passWordvarchar(64)用戶密碼cTimevarchar(16)創(chuàng)建時(shí)間stateInt(8)用戶狀態(tài)u 選擇試題表字段:選擇題的字段主要有id、subject(題目)、subNum(題目編號(hào))、type(題目類型)、state(題目狀態(tài))(可選)、cTime(創(chuàng)建時(shí)間)、cuser(創(chuàng)建人)(可選)、answerId(答案id)、degree(難度系數(shù))等等。表2.2.2-2 數(shù)據(jù)庫(kù)選擇題

36、表字段字段名數(shù)據(jù)類型主關(guān)鍵字取值說(shuō)明idvarchar(16)key題目IDsubjectvarchar(16)題目subNumint(32)題目編號(hào)typevarchar(64)題目類型degreefloat(8)題目難度cuservarchar(64)創(chuàng)建人(可選)cTimevarchar(16)創(chuàng)建時(shí)間stateInt(8)題目狀態(tài)(可選)u 填空試題表字段:前臺(tái)系統(tǒng)下達(dá)訂單后直接更新到后臺(tái),用戶可對(duì)新增訂單進(jìn)行辦理操作,表結(jié)構(gòu)如表2.2.2-3所示。 數(shù)據(jù)庫(kù)填空題表字段字段名數(shù)據(jù)類型主關(guān)鍵字取值說(shuō)明idvarchar(16)key題目IDsubjectvarchar(32)題目subN

37、umint(32)題目編號(hào)typevarchar(8)題目類型degreefloat(8)題目難度cuservarchar(32)創(chuàng)建人(可選)cTimevarchar(16)創(chuàng)建時(shí)間stateInt(8)題目狀態(tài)(可選)u 簡(jiǎn)答試題表字段:用戶系統(tǒng)角色的增、刪、改以及角色對(duì)應(yīng)系統(tǒng)資源的分配表結(jié)構(gòu)如表2.2.2-4所示。 數(shù)據(jù)庫(kù)簡(jiǎn)答題表字段字段名數(shù)據(jù)類型主關(guān)鍵字取值說(shuō)明idvarchar(16)key題目IDsubjectvarchar(64)題目subNumint(32)題目編號(hào)typevarchar(8)題目類型degreefloat(8)題目難度cuservarchar(32)創(chuàng)建人(可

38、選)cTimevarchar(16)創(chuàng)建時(shí)間stateInt(8)題目狀態(tài)(可選)3 試卷自動(dòng)生成系統(tǒng)流程3.1 物理結(jié)構(gòu)流程圖3.1-1 系統(tǒng)總體設(shè)計(jì)架系統(tǒng)的主要兩大塊分為“試題處理”和“在線考試”兩大板塊,無(wú)疑兩者都與數(shù)據(jù)庫(kù)相關(guān)輛。使用者通過(guò)登錄系統(tǒng)進(jìn)入主界面選擇查看試題或者在線考試。圖3.1-2 查看題庫(kù)結(jié)構(gòu)示意圖查看題庫(kù)是一個(gè)非常龐大的功能構(gòu)造,進(jìn)入查看題庫(kù)的界面之后,用戶可以根據(jù)需要查看的試題類型選擇選擇題、填空題以及簡(jiǎn)答題,并結(jié)合數(shù)據(jù)庫(kù)對(duì)齊進(jìn)行增加試題、刪除試題、查找試題、編輯試題等功能。若用戶選擇增加試題功能,那么用戶將進(jìn)入到新增試題的界面,對(duì)其題目、類型、難度以及分?jǐn)?shù)等等數(shù)據(jù)進(jìn)

39、行填寫(xiě),最終保存數(shù)據(jù)到數(shù)據(jù)庫(kù),新增試題成功。-3 在線答題示意圖 在線答題作為兩大功能模塊之一,同樣的擁有強(qiáng)大的功能體系。用戶選擇在線答題選項(xiàng)之后,將會(huì)跳轉(zhuǎn)到考試試題需求選擇的界面,用戶一次會(huì)對(duì)選擇題、填空題、簡(jiǎn)答題中需要用到的試題類型的數(shù)量、單題分?jǐn)?shù)、難度系數(shù)進(jìn)行設(shè)定,系統(tǒng)會(huì)自動(dòng)根據(jù)單題分?jǐn)?shù)統(tǒng)計(jì)出總分?jǐn)?shù),幫助使用者合理地判斷和安排自己的總分?jǐn)?shù)。最后用戶設(shè)置完測(cè)試時(shí)間,即可點(diǎn)擊試題生成按鈕一鍵生成滿足條件的試題進(jìn)行試題測(cè)試。-4 試題作答示意圖在試題測(cè)試的過(guò)程中我們往往會(huì)遇到以下的問(wèn)題:用戶因?yàn)樘厥庠虻R了時(shí)間,或者用戶在出完試題答題之后發(fā)現(xiàn)自己設(shè)定的難度并不符合自己水平的要求,又或者某些原

40、因?qū)е掠脩舯敬螠y(cè)試沒(méi)有發(fā)揮出自己的理想水平,測(cè)試結(jié)果并不能真實(shí)地體現(xiàn)自己的水平,這個(gè)時(shí)候就需要重新作答或者重新更加合理地制作對(duì)應(yīng)自己適合難度的試題了。用戶在試題作答的過(guò)程中系統(tǒng)提供了交卷、重新作答、返回選題的功能,很好地幫助用戶解決了以上的問(wèn)題。文件結(jié)構(gòu)流程展示本次系統(tǒng)程序架構(gòu)主要采用SSH三大框架,使得代碼的編寫(xiě)更加容易。系統(tǒng)分層結(jié)構(gòu)如下: 系統(tǒng)代碼結(jié)構(gòu)從一個(gè)項(xiàng)目的文件夾結(jié)構(gòu)可以看出一個(gè)項(xiàng)目的整體性是否完整,邏輯思路是否緊密。一個(gè)優(yōu)秀的項(xiàng)目必然有其嚴(yán)謹(jǐn)?shù)奈募A結(jié)構(gòu)。以本系統(tǒng)為例,根目錄文件夾以作者名稱拼音大寫(xiě)字母命名,下放關(guān)鍵文件夾如上圖所示。以下為文件夾結(jié)構(gòu)說(shuō)明:action文件夾:主要是

41、存放各個(gè)實(shí)體類之間頁(yè)面跳轉(zhuǎn)的控制。comms文件夾:主要是存放一些公共的類和實(shí)體。entity文件夾:主要是存放各個(gè)實(shí)體類文件。fiter文件夾:主要用來(lái)存放各個(gè)過(guò)濾器類文件。Service文件夾:主要是存放各個(gè)實(shí)體類通過(guò)Action控制的直接方法。:是hibernate的配置文件:是連接數(shù)據(jù)庫(kù)的配置文件:是web項(xiàng)目的配置文件initSQL:是數(shù)據(jù)庫(kù)初始化數(shù)據(jù)文件log4j:是項(xiàng)目日志文件:是jap的數(shù)據(jù)庫(kù)連接配置:是Struts的配置文件4 界面設(shè)計(jì)界面流程展示圖4.1-1 系統(tǒng)界面流程示意圖本系統(tǒng)主要由8個(gè)主要的界面組成,分別是用戶登錄界面、系統(tǒng)主界面(幻燈片+導(dǎo)航欄)、查看題庫(kù)界面、在

42、線答題界面、編輯題庫(kù)界面、新增試題界面、選擇試題要求界面以及開(kāi)始作答界面。用戶使用本套試卷自動(dòng)生成系統(tǒng)之后一次操作的步驟將會(huì)如圖4.1-1所示進(jìn)行。4.2 界面設(shè)計(jì)示意圖本次系統(tǒng)界面設(shè)計(jì)主要采用灰色冷色調(diào)進(jìn)行顏色搭配,藍(lán)色作為輔色,即保證了考試試題這一嚴(yán)肅的場(chǎng)合情景需求,也保證了色調(diào)的不單一性,滿足了用戶的視覺(jué)交互效果。本試題的界面菜單中加入了Javascript設(shè)計(jì)用戶交互體驗(yàn),例如下拉菜單,圖片輪播等等,同時(shí)也解決了傳統(tǒng)尸體自動(dòng)生成系統(tǒng)界面的單調(diào)的尷尬情況。圖4.2-1 系統(tǒng)用戶登錄界面展示用戶使用該試卷自動(dòng)生成系統(tǒng),必須先通過(guò)注冊(cè)用戶到數(shù)據(jù)庫(kù)以開(kāi)辟屬于自己的獨(dú)立空間,以保存符合自己需求的

43、自定義試題,完成對(duì)需求試題的增刪查改以及自定義試卷生成。注冊(cè)完成后,用戶編輯額度數(shù)據(jù)將會(huì)被保存到當(dāng)前用戶,下次用戶輸入帳號(hào)密碼即可連接到保存的數(shù)據(jù)。用戶也可選擇注冊(cè)多個(gè)數(shù)據(jù)以達(dá)到針對(duì)性試題分類訓(xùn)練的效果。主界面的功能導(dǎo)航菜單采用了Javascript作為用戶交互的延展,主界面主要提供查看題庫(kù)以及在線答題兩大模塊。用戶可根據(jù)自己的需求進(jìn)行選擇。圖4.2-2 系統(tǒng)功能導(dǎo)航菜單展示在線答題分為了兩大塊,一塊為自主構(gòu)建,一塊為系統(tǒng)生成。自主構(gòu)建主要用于用戶自定義選擇試題。系統(tǒng)生成是用戶在選擇了試題的難度、分?jǐn)?shù)、數(shù)量等等一系列條件之后系統(tǒng)在數(shù)據(jù)庫(kù)中自動(dòng)生成滿足條件相應(yīng)的試題。圖4.2-3 系統(tǒng)試題菜單展

44、示查看題庫(kù)功能為用戶提供了展示數(shù)據(jù)庫(kù)題庫(kù)的功能,用戶可以根據(jù)類型分別看到數(shù)據(jù)庫(kù)中的單選題、多選題、填空題以及簡(jiǎn)答題庫(kù)存以及狀況,方便用戶進(jìn)行試題的查找以及試題的編輯。圖4.2-4 系統(tǒng)主頁(yè)面展示系統(tǒng)登錄進(jìn)去的主界面如圖4.2-4所示,左邊為功能導(dǎo)航菜單展示,右邊為系統(tǒng)展示的幻燈片,提供多套優(yōu)秀的試題給用戶使用,也可以放很多適用的信息。圖 系統(tǒng)試題編輯菜單展示系統(tǒng)試題編輯菜單界面為用戶對(duì)試題的編輯整理提供了極大的幫助,在這里用戶可以自定義每一道題目的增加、刪除、查閱與編輯功能并保存到數(shù)據(jù)庫(kù)中。圖4.2-6 單選題展示列表題目名稱能夠更具ajax去動(dòng)態(tài)的查數(shù)據(jù)庫(kù)已有的單選題目,避免重復(fù)。題目類別運(yùn)

45、用了easyUI的combotree插件,能夠去調(diào)用數(shù)據(jù)庫(kù)查找已有的題目類別表,供用戶選擇,不能手動(dòng)輸入。圖4.2-7 根據(jù)題目類型來(lái)查找示意圖圖4.2-8 編輯界面示意圖題目名稱能夠更具ajax去動(dòng)態(tài)的查數(shù)據(jù)庫(kù)已有的單選題目,避免重復(fù)。題目類別運(yùn)用了easyUI的combotree插件,能夠去調(diào)用數(shù)據(jù)庫(kù)查找已有的題目類別表,供用戶選擇,不能手動(dòng)輸入。 圖4.2-9 多選題制定示意圖點(diǎn)擊導(dǎo)航欄的多選題,進(jìn)入到多選題的展示列表,同樣展示了該題目的所有信息,此表格能夠分頁(yè)查詢,也能進(jìn)行題目關(guān)鍵字和類別的篩選,點(diǎn)擊新建,進(jìn)入到多選題的新建頁(yè)面,與單選題類似,只是在答案便成了可以同時(shí)選擇多個(gè)答案值:點(diǎn)

46、擊編輯按鈕,進(jìn)入編輯頁(yè)面,并顯示當(dāng)前這條數(shù)據(jù)的所有信息,能夠進(jìn)行修改,并保存。圖4.2-10 填空題制定示意圖在導(dǎo)航欄點(diǎn)擊填空題,進(jìn)入到填空題展示列表,其中基本功能都是一樣的,只是在題目中,用方框來(lái)表示應(yīng)該填的空格。點(diǎn)擊新建,進(jìn)去填空題新建頁(yè)面,此頁(yè)面的題目輸入采用了uedit文本編輯器插件,此插件能夠自定義多種編輯樣式,在此,只有一個(gè)方框的樣式,用戶需要用方框來(lái)表示填空題的空格圖4.2-11 簡(jiǎn)答題制定示意圖點(diǎn)擊新建,進(jìn)入到簡(jiǎn)答題的新建頁(yè)面。其中需要用答案關(guān)鍵值來(lái)保存簡(jiǎn)答題的答案,關(guān)鍵詞可以保存多個(gè),可以點(diǎn)進(jìn)新增按鈕,則和會(huì)在表格下新增一行,點(diǎn)擊刪除按鈕,則刪除當(dāng)前關(guān)鍵字。當(dāng)關(guān)鍵字的個(gè)數(shù)只有

47、一個(gè)后,如果用戶繼續(xù)點(diǎn)擊刪除,則會(huì)彈出提示框,提示用戶必須至少保留一個(gè)關(guān)鍵字。點(diǎn)擊編輯按鈕,則進(jìn)入到編輯頁(yè)面,同樣可以刪除和添加關(guān)鍵字;同一個(gè)關(guān)鍵字只能保存一次,如果有兩個(gè)相同的關(guān)鍵字,則通過(guò)利用easyUI的validatebox插件來(lái)檢測(cè)數(shù)據(jù),并提示用戶此關(guān)鍵字重復(fù)。圖4.2-12 新建題目類別示意圖點(diǎn)擊編輯,則進(jìn)入到類別的編輯頁(yè)面,入宮將此類別的狀態(tài)改為停用,則會(huì)同時(shí)停用此類別下面的所有的題目。5 系統(tǒng)算法設(shè)計(jì)試卷自動(dòng)生成系統(tǒng)當(dāng)中存在著許多需要計(jì)算的算法,例如試卷自動(dòng)組成中抽取選定條件的試題如何從龐大的數(shù)據(jù)庫(kù)中調(diào)用抽取,對(duì)于易錯(cuò)題它針對(duì)個(gè)人的難度如何實(shí)現(xiàn)合理的波動(dòng),用戶試題得分的計(jì)算等等

48、,都離不開(kāi)各項(xiàng)算法的研究。一套合理的算法不僅僅可以幫助用戶獲得更好的使用體驗(yàn),幫助用戶通過(guò)試題更好地提高自身需求,同時(shí)也嚴(yán)謹(jǐn)了整個(gè)系統(tǒng)的邏輯設(shè)計(jì),提升了系統(tǒng)設(shè)計(jì)的科學(xué)性。以下我們就來(lái)介紹本套試題中設(shè)計(jì)到的算法研究。組卷方法設(shè)計(jì)試卷組卷算法是試卷自動(dòng)生成體現(xiàn)自動(dòng)化的核心,它要求根據(jù)用戶所選擇的試題難度、分?jǐn)?shù)、數(shù)量、類型等等條件之后自動(dòng)生成符合條件的試題,那么其中就存在一套能夠從符合眾多條件的龐大數(shù)據(jù)庫(kù)題庫(kù)中提取相應(yīng)試題的算法,并且要盡最大可能避免試題雷同的情況。試題組卷的優(yōu)良程度是輔助教學(xué)的重要緩解,如何保證生成的試卷滿足不同用戶需求的不同指標(biāo)就顯得十分重要了。試卷組卷的方式有很多,常見(jiàn)的主要有

49、隨機(jī)法、回朔法以及遺傳算法。以下我們就來(lái)介紹幾種比較常用的試卷組題算法。5.1.1 隨機(jī)法隨機(jī)法顧名思義就是隨機(jī)的選取,結(jié)合本系統(tǒng)的設(shè)定即根據(jù)用戶設(shè)定的各項(xiàng)條件,在滿足各項(xiàng)條件指標(biāo)的情況下隨機(jī)地從數(shù)據(jù)庫(kù)中調(diào)取滿足需求的題目。簡(jiǎn)單地說(shuō)就好比在關(guān)聯(lián)確認(rèn)了用戶生成哪種類型的題目之后,根據(jù)這種題目的難度系數(shù),結(jié)合特定的隨機(jī)計(jì)算方法生成一個(gè)在該難度系數(shù)試題中隨機(jī)獲取一條,然后通過(guò)這條信息的主鍵確定一條數(shù)據(jù)庫(kù)數(shù)據(jù)并且讀取出來(lái),記錄到出題的題目集合當(dāng)中去。每隨機(jī)到一道題目對(duì)象,就會(huì)與已經(jīng)調(diào)用的題目集合進(jìn)行循環(huán)比較,若該值相等的話就不予采用并退出繼續(xù)調(diào)用下一個(gè),若不相等的話即以調(diào)用的試題中還未出現(xiàn)過(guò)該題,給予

50、調(diào)用。隨機(jī)法的優(yōu)點(diǎn)是簡(jiǎn)單直接,能夠快速地生成基本滿足用戶需求的試題,同時(shí)較為平均的選取方式也能夠避免作弊現(xiàn)象的出現(xiàn)。但是隨機(jī)法的選題可能并不是試題選題中的質(zhì)量最優(yōu)的算法,因?yàn)樗⒉痪哂谢厮返男再|(zhì),邏輯思路稍微欠缺一點(diǎn)。5.1.2 回朔法回朔法又稱為探索與回朔法,也簡(jiǎn)稱試探法。它是一種一步步按照最優(yōu)解進(jìn)行不斷調(diào)整的優(yōu)越搜索法。當(dāng)有很多種選擇的時(shí)候,回溯系統(tǒng)會(huì)對(duì)每個(gè)選項(xiàng)逐個(gè)進(jìn)行比較,當(dāng)發(fā)現(xiàn)原先的選項(xiàng)不是最優(yōu)解或者達(dá)不到設(shè)定目標(biāo)的時(shí)候,就會(huì)退回一步做出重新的選擇,知道將所有選擇全部試探完,退回到原節(jié)點(diǎn),然后做出最優(yōu)解,選擇前進(jìn)路線,直至試題全部選出。從上述對(duì)回朔法的描述我們不難看出回朔法能夠非常精確

51、地給出試卷組裝的最優(yōu)解并且高質(zhì)量地完成試題的組裝,但是這種高成功率的算法是建立在大量犧牲時(shí)間的基礎(chǔ)上面進(jìn)行的,往往完成一次回朔法我們已經(jīng)可以完成N次隨機(jī)法的隨機(jī)選取了,并且回朔法占用的內(nèi)存相當(dāng)大,程序的結(jié)構(gòu)和邏輯性思路要求比較高,選取的試題又都是最優(yōu)解缺乏了一定的隨機(jī)性。所以往往在試題數(shù)量要求較小的試題組裝過(guò)程中,因?yàn)榧夹g(shù)較小可以忽略那一點(diǎn)隨機(jī)性并且也不是消耗過(guò)多的時(shí)間,我們可以考慮選擇回朔法。圖5.1-2 回朔法思路示意圖5.1.3 遺傳算法遺傳算法的由來(lái)其實(shí)是從模擬達(dá)爾文生物進(jìn)化論中的自然選擇和遺傳學(xué)機(jī)理的生物進(jìn)化過(guò)程的計(jì)算模型。它其實(shí)是一種通過(guò)模擬生物進(jìn)化過(guò)程中搜索最優(yōu)解的方法。由后人運(yùn)

52、用到了神經(jīng)網(wǎng)絡(luò)當(dāng)中去并且取得了顯著的效果。但是,仿基因編碼的工作相當(dāng)龐大復(fù)雜,我們往往采用二進(jìn)制編碼進(jìn)行簡(jiǎn)化,通過(guò)“優(yōu)勝劣汰”的方式去判斷出“衍生”、“變異”、“交叉組合”的優(yōu)劣性質(zhì)并且做出判斷。遺傳算法以擬生物學(xué)的方式得到了很多學(xué)家的認(rèn)可,同時(shí)也可以運(yùn)用到與“選擇”有關(guān)的編碼當(dāng)中來(lái),但是由于其原理過(guò)于復(fù)雜,本文不作詳細(xì)的研究。5.2 試題難度算法試題難度主要通過(guò)用戶對(duì)試題的難度設(shè)定,通過(guò)文本輸入試題難度,正則控制文本輸入內(nèi)容已到達(dá)數(shù)據(jù)庫(kù)獲取正確的試題難度并且保存的目的。本文中提到的試題難度的算法主要是在用戶答完試題之后系統(tǒng)自動(dòng)給出的增加難度和降低難度的算法設(shè)定,其原理也較為簡(jiǎn)單,在這里只做簡(jiǎn)

53、單的介紹。通過(guò)前面對(duì)系統(tǒng)的介紹我們知道,在用戶生成完試題并且進(jìn)行完作答之后,系統(tǒng)會(huì)統(tǒng)計(jì)出該用戶此次的試題成績(jī)并且提供增加試題難度和降低試題難度一鍵再次生成試題的功能。試題的難度增加或者減少都是按照系統(tǒng)試題難度算法做出相應(yīng)變化調(diào)整的。首先,系統(tǒng)會(huì)獲取到本次試題的出題類型、各個(gè)類型的題目數(shù)量以及難度系數(shù)、考試總分?jǐn)?shù)與總時(shí)間,并且獲取到相應(yīng)的數(shù)據(jù)庫(kù)字段,其次,用戶若選擇增加難度,系統(tǒng)會(huì)按照N=N+(p/P)*0.2的方式四舍五入保留一至二位小數(shù)給出該類型題目的新的難度系數(shù),并且從數(shù)據(jù)庫(kù)中提取出滿足難度系數(shù)條件及類型的相應(yīng)的試題重新組題。若用戶選擇降低難度,則公式變?yōu)镹=N-(p/P)*0.2。其中N

54、代表難度系數(shù),p代表本次得分,P代表總分?jǐn)?shù)。5.3 試題分?jǐn)?shù)算法本系統(tǒng)的分?jǐn)?shù)算法主要解釋系統(tǒng)如何對(duì)用戶得分做出評(píng)價(jià)。我們知道,系統(tǒng)在用戶點(diǎn)擊了提交試卷之后會(huì)根據(jù)用戶的作答情況給出相應(yīng)的分?jǐn)?shù)。再給出分?jǐn)?shù)之前,系統(tǒng)會(huì)對(duì)用戶在文本中的答案與標(biāo)準(zhǔn)答案進(jìn)行對(duì)比,主要原理是采用了通過(guò)提取用戶作題文本中的數(shù)據(jù)與數(shù)據(jù)庫(kù)答案數(shù)據(jù)對(duì)比的方式進(jìn)行等值判斷,若相等,用戶得分追加,若不相等則不作追加得分。相對(duì)于選擇題、判斷題、填空題可以很輕易地判斷出對(duì)錯(cuò),但是如何判斷簡(jiǎn)答題呢?在自動(dòng)化的系統(tǒng)當(dāng)中當(dāng)然不會(huì)像人工改卷一樣,我們會(huì)依次讀取用戶在文本中的答案,并提前在數(shù)據(jù)庫(kù)中的答案中給出試題答案的關(guān)鍵字或者關(guān)鍵語(yǔ)句,若用戶的答

55、案當(dāng)中存在與之相符的關(guān)鍵字,則基本可以判斷出用戶該題得分。通過(guò)一題設(shè)置多個(gè)關(guān)鍵字的方式有利于提高判斷的精準(zhǔn)性,也有利于試題的一題多問(wèn)的設(shè)置。例如P=p1*J1+p2*J2+n*num,其中P為總得分,p1、p2為類型題答題正確個(gè)數(shù)(簡(jiǎn)答題除外),J為該類型題目單體分?jǐn)?shù),n為簡(jiǎn)答題關(guān)鍵詞或者語(yǔ)句個(gè)體分?jǐn)?shù),num為簡(jiǎn)答題關(guān)鍵詞或者關(guān)鍵語(yǔ)句正確個(gè)數(shù)。從而計(jì)算出本次試卷考試用戶的總分?jǐn)?shù)。5.4 系統(tǒng)算法總結(jié)本次試卷自動(dòng)生成系統(tǒng)的試卷組卷方式最終選定了隨機(jī)法。隨機(jī)法也是當(dāng)前最適合運(yùn)用到試卷作答系統(tǒng)的試卷組卷的方法,相對(duì)于回朔法而言有效率快的優(yōu)點(diǎn),相對(duì)于遺傳法有簡(jiǎn)單、易算的優(yōu)勢(shì)。此外,一套試題總量一般不會(huì)

56、超過(guò)100道,龐大的數(shù)據(jù)庫(kù)試題支撐加上對(duì)于重復(fù)率的判斷處理極大化地減輕了隨機(jī)法的缺點(diǎn)。最重要的試卷組題算法確定之后,我們?cè)谶x用難度系數(shù)的算法以及得分算法的時(shí)候做的處理就顯得略微簡(jiǎn)單一點(diǎn)。本身其實(shí)也用不著刻意地去提高這些難度算法的難度,我們只需要做出能夠滿足用戶需求的功能之后,代碼和算法其實(shí)越簡(jiǎn)單越好。6 主要功能代碼展示登錄功能代碼展示數(shù)據(jù)庫(kù)鏈接這是運(yùn)用Hibernate框架的主要配置文件,其中配置了連接數(shù)據(jù)庫(kù)的地址,用戶名,密碼以及框架中各種連接池、緩存池、對(duì)數(shù)據(jù)庫(kù)的操作規(guī)范,以及在調(diào)用數(shù)據(jù)庫(kù)時(shí)是否在控制臺(tái)顯示sql語(yǔ)句和日志的保存等。<persistence xmlns="

57、xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation=" version="2.0"><persistence-unit name="jpa"><provider>org.hibernate.ejb.HibernatePersistence</provider><properties><property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" /><property name="hibernate.connection.driver_class" value="com.p6spy.engine.spy.P6SpyDriver" /><property name="hibernate.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論