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

下載本文檔

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

文檔簡(jiǎn)介

試卷自動(dòng)生成系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)試卷自動(dòng)生成系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)試卷自動(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),即用戶經(jīng)過自定義選擇設(shè)置試題的種類、難度、分?jǐn)?shù)、時(shí)間等多個(gè)因素自動(dòng)生成考試一試題并恩賜對(duì)錯(cuò)考據(jù)。隨著互聯(lián)網(wǎng)絡(luò)的飛速發(fā)展、網(wǎng)絡(luò)教育的不斷普及與提升,傳統(tǒng)的出題考試方式已經(jīng)不能夠滿足全部的需求,混作一談不“因材施教”的出題方式不利于核查不同樣種類的學(xué)生,也不滿足現(xiàn)代教育的發(fā)展需要。因此,此刻已經(jīng)逐漸開始流行自定義、有難度、時(shí)間、種類選擇控制的出題方式來迎合當(dāng)前社會(huì)考試所需。試卷自動(dòng)生成系統(tǒng)的出生油但是生。該設(shè)計(jì)主要目的是幫助出題者以及試題訓(xùn)練者能夠依照不同樣人群自定義設(shè)置難度、種類生成考試一試題的系統(tǒng)。系統(tǒng)為用戶供應(yīng)用戶登錄、開始試卷定制、選擇題型、選擇所占分?jǐn)?shù)比率、最高分?jǐn)?shù)設(shè)定、考試時(shí)間限制設(shè)定、考試難度選擇、生成試卷以及答案查察等功能,將用戶的需要“因材施教”、“分門別類”地供應(yīng),由用戶自定義采用,從而達(dá)到針對(duì)不同樣層次的考生的訓(xùn)練和考驗(yàn)。同時(shí),也方便了出題者逐個(gè)進(jìn)行試卷試題的采用,省去了出題者挨個(gè)設(shè)定的過程,既提升了出題的速度,也提升了出題的整體質(zhì)量。本次設(shè)計(jì)主若是以服務(wù)出題者、試題訓(xùn)練人等人群方便迅速地完成試題的構(gòu)造并提升自己所需檢測(cè)為目的的試卷自動(dòng)生成系統(tǒng)。整體設(shè)計(jì)使用的是JAVA語言開發(fā)的B/S(閱讀器/服務(wù)器)應(yīng)用系統(tǒng)。用戶登錄該系統(tǒng)后能夠依照自己的能力選擇生成題目的難度,依照自己的弱項(xiàng)針對(duì)題目種類進(jìn)行生成試題,亦可依照自己的熟練度選擇答題時(shí)間。本系統(tǒng)的代碼框架采用了此刻比較流行的SSH(Spring+Struts+Hibernate)進(jìn)行設(shè)計(jì),在功能模型的實(shí)現(xiàn)和頁面辦理方面嚴(yán)格依照了MVC(Model,View,Controller)的思想系統(tǒng)。配合Javascript以及Xml對(duì)頁面提取辦理。數(shù)據(jù)庫方面采用了中小型的Mysql數(shù)據(jù)庫進(jìn)行辦理,數(shù)據(jù)庫工具使用了當(dāng)下主流的navicat進(jìn)行操作,以減少代碼量的負(fù)擔(dān)和方便代碼編寫和功能實(shí)現(xiàn)。要點(diǎn)詞:試卷自動(dòng)生成B/SJavaMySQL數(shù)據(jù)庫DesignandimplementationofautomatictestpapergenerationsystemAbstract:Automatictestpapergenerationsystem,thatis,bytheusertocustomizetheselectionofthetypeoftestquestions,difficulty,scores,timeandotherfactorsautomaticallygeneratetestquestionsandgivethewrongverification.WiththerapiddevelopmentofInternet,networkeducationpopularizationandpromotion,thetraditionalwayofexaminationquestionshasbeenunabletomeetalltheneedsofgeneralizationsdonotteachstudentsinaccordanceoftheiraptitudequestionsthewayisnotconducivetotheassessmentofdifferenttypesofstudents,alsodonotmeetthedevelopmentneedofthemoderneducation.Therefore,nowwehaveassemblypopularcustom,difficulty,time,typeselectioncontrolsetsthetopicthewaytocatertothesocialexaminationrequired.Automaticgenerationsystemoftestpaperbirtharisespontaneously.Themainpurposeofthedesignisthehelptopicandquestionsoftrainingcanbesetdifficulty,typeofgeneratingexaminationpaperssystemaccordingtothecustomofdifferentgroupsofpeople.Systemfortheuserprovidesuserloginandstartcustomizedpaper,multiple-choice,choosetheratio,thehighestscoreset,theexaminationtimelimitset,choosethedifficultyoftheexam,testgenerationandcheckyouranswersandotherfunctions,theuserneedto"teachstudentsinaccordancewiththeiraptitude","subcategories"toprovide,selectedbytheuser,soastoachieveforcandidatesofdifferentlevelsoftrainingandtest.,butalsotofacilitatethequestionsonebyoneofpapersselected,eliminatingthetopicandsetonebyone,bothtoenhancethespeedofquestions,thetopicandalsoimprovesthequalityofthewhole.Thisdesignismainlybasedonservicequestions,questionsoftrainingpeopleandotherpeopleeasilyandquicklycompletetheteststructureandenhanceitstestpaperautogeneratingsystem.TheoveralldesignistheuseofJAVAlanguagedevelopmentB/S(Browser/server)applicationsystem.Aftertheuserloginthesystemcanaccordingtotheirabilitytoselectthedifficultyofthequestionsintheform,accordingtotheirweaknessesfortypesofquestionsweregeneratedquestions,canalsochoosetoanswerthequestionsofthetimeaccordingtotheirproficiency.ThecodeframeworkofthesystemusingthenowpopularSSH(Spring+struts+Hibernate)isdesigned.ThefunctionmodelandtherealizationofpageprocessingstrictlycomplywiththeMVC(model,viewandcontroller)systemofthought.WithJavascriptandXmlonpageextraction.DatabaseusedinsmallMysqldatabaseprocessing,databasetoolsusedinthecurrentmainstreamNavicatoperation,inordertoreducetheburdenofwritingcodeandconvenientcodeandfunctionrealization.Keywords:AutomatictestpapergenerationB/SJavaMySQLdatabas目錄前言11系統(tǒng)功能介紹與解析11.1用戶登錄功能11.2試卷生成及試題判斷功能21.3題庫保護(hù)功能32數(shù)據(jù)庫的設(shè)計(jì)與開發(fā)52.1數(shù)據(jù)庫基礎(chǔ)52.2數(shù)據(jù)庫設(shè)計(jì)需求62.2.1數(shù)據(jù)庫設(shè)計(jì)思路62.2.2數(shù)據(jù)庫表與字段的設(shè)置73試卷自動(dòng)生成系統(tǒng)流程83.1物理構(gòu)造流程83.2文件構(gòu)造流程顯現(xiàn)114界面設(shè)計(jì)124.1界面流程顯現(xiàn)124.2界面設(shè)計(jì)表示圖135系統(tǒng)算法設(shè)計(jì)195.1組卷方法設(shè)計(jì)195.1.1隨機(jī)法19回朔法20遺傳算法215.2試題難度算法215.3試題分?jǐn)?shù)算法215.4系統(tǒng)算法總結(jié)226主要功能代碼顯現(xiàn)226.1登錄功能代碼顯現(xiàn)22數(shù)據(jù)庫鏈接22登錄功能24主要功能模塊276.2前端代碼顯現(xiàn)30主界面代碼30圖片輪播代碼317總結(jié)32參照文件33試卷自動(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)不能夠滿足此刻社會(huì)急促的步伐,不只這樣,傳統(tǒng)的試題考試設(shè)計(jì)相當(dāng)?shù)睾馁Y出題者的時(shí)間與精力,并且沒有針對(duì)性。這種方式已經(jīng)不能夠滿足現(xiàn)代考試緊湊的步伐了。因此,能夠迅速并且擁有針對(duì)性、為用戶供應(yīng)自定義難度、種類、時(shí)間選擇的試卷自動(dòng)生成就顯得特別重要了。試卷自動(dòng)生成系統(tǒng)油但是生。傳統(tǒng)的試卷出題方式需要經(jīng)過人工進(jìn)行,出題者也許使用者需要依照自己的經(jīng)驗(yàn)進(jìn)行題目的設(shè)置,這種方式經(jīng)常需要人力對(duì)試題數(shù)據(jù)的屢次擬定和驗(yàn)算、對(duì)題目合理性進(jìn)行檢驗(yàn)等等。擬定題目的難度梯度,以滿足不同樣層次的學(xué)生反應(yīng)不同樣的學(xué)習(xí)水平。出題者經(jīng)常還需要將過去的試題與將要出的試題的考點(diǎn)、難度進(jìn)行比較。由上訴需求能夠看出,傳統(tǒng)的人工出題方式不只沒有將互聯(lián)網(wǎng)聯(lián)動(dòng)的優(yōu)勢(shì)運(yùn)用起來,進(jìn)行題庫的資源共享與使用,也使出題者浪費(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èi)大量時(shí)間的問題。本次設(shè)計(jì)的數(shù)據(jù)庫能夠儲(chǔ)藏大量物聯(lián)網(wǎng)所供應(yīng)的各種試題需求,以滿足資源共享與互補(bǔ)互幫的需求。其他,該系統(tǒng)還供應(yīng)了多種一鍵選擇的功能方便用戶建議集成試卷。同時(shí),數(shù)據(jù)庫的使用也使得針對(duì)不同樣的用戶也額外處罰配的個(gè)人對(duì)題庫和試題的編寫權(quán)限,用戶能夠自定義題目的難度、種類、分?jǐn)?shù)等等,也能夠新增、刪除、查閱和編寫已有的試題。更加人性化的是,用戶在完成試卷答題此后,系統(tǒng)會(huì)依照用戶均分的情況給出提升也許降低難度的一鍵生成試卷的選項(xiàng)。從整個(gè)試卷的出題到打分結(jié)束,整個(gè)流程不只與弘大的數(shù)據(jù)庫進(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)出題方式所帶來的優(yōu)勢(shì)。系統(tǒng)功能介紹與解析1.1用戶登錄功能每一個(gè)用戶都會(huì)有自己對(duì)題庫和試題不同樣的需求,我們供應(yīng)了Mysql數(shù)據(jù)庫為每個(gè)人分配了單獨(dú)的IP并且開辟了獨(dú)立的空間。用戶在輸入帳號(hào)密碼登錄此后能夠自由地依照需要管理自己的題庫和試題。用戶登錄系統(tǒng)的設(shè)置很好地區(qū)分了不同樣使用人群對(duì)不同環(huán)境的試題需求,也方便了使用者個(gè)人對(duì)特別體型和試題的編寫和更正操作。1.2試卷生成及試題判斷功能本試卷自動(dòng)生成系統(tǒng)為用戶供應(yīng)了多項(xiàng)一鍵生成功能,用戶能夠依照自己的需要對(duì)生成試題的種類、分?jǐn)?shù)、難度、時(shí)間、所占比率等等做出相應(yīng)的設(shè)置從而生成出相應(yīng)的試題。依照用戶的作答給出成績(jī)并且供應(yīng)提升難度和降低難度的一鍵生成按鈕方便用戶依照實(shí)質(zhì)情況調(diào)整試卷。并且用戶能夠依照自己的需要,自定義增加、刪除、查閱和編寫自己的題庫和試題。在用戶登錄該系統(tǒng)此后,用戶會(huì)到達(dá)一其中轉(zhuǎn)的歡迎界面,用戶能夠選擇查察題庫對(duì)試題進(jìn)行操作,也能夠直接選擇在線答題系統(tǒng)對(duì)自己所需的試題要求進(jìn)行設(shè)置并且一鍵生成。試題種類的選擇生成一套試題第一得明確這套試題的構(gòu)造組成,需要幾各種類的試題,每種試題、每道題所占的分?jǐn)?shù)比率都決定著這套試卷的合理性。本系統(tǒng)為用戶供應(yīng)了今世考試最流行的幾種題目種類:選擇題、填空題、問答題。用戶能夠依照自己的需求合理安排各種題目在整個(gè)試卷中所占的數(shù)量以及分?jǐn)?shù)的比率,比方單項(xiàng)選擇題20道,每道1分;多項(xiàng)選擇題10道,每道2分;填空題10道,每道2分,簡(jiǎn)答題5道,分別為6分、8分、8分、10分,共100分。試題難度的選擇作答難度的設(shè)定關(guān)系這整套試卷的出題質(zhì)量,如何合理地依照實(shí)質(zhì)情況給出適合難度的試題顯得特別重要。本系統(tǒng)為每一道試題都給出了一個(gè)難度系數(shù),數(shù)據(jù)庫會(huì)依照給定的難度系數(shù)自動(dòng)為您供應(yīng)您所需要的難度系數(shù)的試題供用戶選擇。難度系數(shù)設(shè)定在0-1之間,用戶只要設(shè)定不同樣種類的題型的難度系數(shù)系統(tǒng)即會(huì)自動(dòng)為該種類進(jìn)行題型分配。因此,用戶在設(shè)置難度系數(shù)的時(shí)候只要要掌握好整套試題的難度梯度即可。其他。該系統(tǒng)還會(huì)依照用戶的作答情況給出一鍵自動(dòng)降低難度和一鍵自動(dòng)提升難度的試卷生成功能,很好地幫助用戶找到當(dāng)前階段適合自己訓(xùn)練的試題難度??荚嚂r(shí)間的選擇不同樣試題難度依照出題者分配,在設(shè)置難度的時(shí)候需要注意的就是難度和答題時(shí)間的合理結(jié)合,該系統(tǒng)供應(yīng)了自定義的答題時(shí)間設(shè)定,方便使用者依照自己的綜合實(shí)力在不同樣階段設(shè)置需要完成試題的時(shí)間。比方當(dāng)用戶第一次做的時(shí)候能夠?qū)r(shí)間設(shè)置為兩個(gè)小時(shí),經(jīng)過一段時(shí)間的訓(xùn)練,用戶一是能夠經(jīng)過提升難度來加強(qiáng)能力,同時(shí)也能夠選擇同樣難度的其他試題經(jīng)過減短作答時(shí)間的方式來獲取提升。本系統(tǒng)供應(yīng)的時(shí)間設(shè)定很好地滿足了用戶的這點(diǎn)需求??偡?jǐn)?shù)的設(shè)置用戶能夠依照試卷的題量和考試需求自定義指定試卷的總分?jǐn)?shù)以此配合題型的所占分?jǐn)?shù)比率,比方在高中學(xué)校應(yīng)用此系統(tǒng)自動(dòng)生成試題,理綜試卷依照傳統(tǒng)標(biāo)準(zhǔn)應(yīng)該設(shè)置300分為滿分;數(shù)學(xué)、英語和語文等學(xué)科應(yīng)依照150分給出。在初中也許小學(xué)等其他環(huán)境中亦可給出120分也許100分甚至80分的滿分。自然,分?jǐn)?shù)的給定完滿由用戶自定義,詳細(xì)情況以實(shí)質(zhì)需要為主。同時(shí)也方便使用者在單獨(dú)的考試中能夠合理地分配分?jǐn)?shù)。生成試卷的功能在完成了上訴的試卷不同樣種類試題的難度系數(shù)設(shè)定、考試總時(shí)間的分配、考試總分?jǐn)?shù)的設(shè)定此后,自動(dòng)生成試卷就顯得十分簡(jiǎn)單了,用戶只要依照界面提示一鍵生成即可從數(shù)據(jù)庫中隨機(jī)提取相應(yīng)數(shù)量并且吻合條件(如種類和難度系數(shù)的)的試題,開始答題此后,倒計(jì)時(shí)開始啟動(dòng)。若作答完題此后用戶選擇了提升難度也許降低難度,那么系統(tǒng)也會(huì)自動(dòng)依照當(dāng)前的試題難度系數(shù)做出判斷,適合地降低也許增加考試難度對(duì)數(shù)據(jù)庫進(jìn)行試題的調(diào)取,再采用同樣的方式進(jìn)行試題的自動(dòng)生成。試題判斷功能當(dāng)用戶完成登錄選題生成試題并且作答此后,點(diǎn)擊提交試卷,系統(tǒng)會(huì)依照用戶作答情況結(jié)合數(shù)據(jù)庫答案對(duì)用戶的作答進(jìn)行評(píng)分,用戶依照得分情況從而選擇可否增加難度也許降低難度再次進(jìn)行作答訓(xùn)練。針對(duì)單項(xiàng)選擇題、多項(xiàng)選擇題、判斷題、填空題,經(jīng)過正則辦理過后的Javascript能夠自動(dòng)忽略空格、空白字符等等的攪亂因素以保證空白空格等電腦以為操作帶來的誤判。對(duì)于簡(jiǎn)答題,數(shù)據(jù)庫會(huì)依照早先的要點(diǎn)字提取去抓取用戶的答案中的要點(diǎn)字進(jìn)行比較,只要最要點(diǎn)的要點(diǎn)字符出現(xiàn),基本能夠判斷該題得分。要點(diǎn)字的回答正確率也決定了該用戶此題的最后得分,經(jīng)過切割多個(gè)要點(diǎn)字以保證系統(tǒng)判斷的正確率,極大地減少了誤判,也滿足了自動(dòng)判斷節(jié)約人力比較資源的時(shí)間。1.3題庫保護(hù)功能用戶除了從數(shù)據(jù)庫中找尋、提取自動(dòng)生成出試題以外,有時(shí)也需要將自己平時(shí)收集的一些優(yōu)秀的題目錄入題庫并設(shè)定難度系數(shù),增加題庫的題目庫存以便下一次調(diào)用或者自動(dòng)生成。其他,對(duì)于一些易錯(cuò)、難懂的題目我們不需要講究題目?jī)?nèi)容的形式,只要要對(duì)其重要參數(shù)進(jìn)行更正即可重做以達(dá)到多次練習(xí)的收效,這樣既沒有走開題目察看內(nèi)容的實(shí)質(zhì),也節(jié)約了大量的時(shí)間。自然,對(duì)于一些用戶已經(jīng)完滿掌握的試題,用戶可能怕在下一次自動(dòng)生成試題中再次碰到從而減少了訓(xùn)練量并耽擱自己的訓(xùn)練時(shí)間。因此需要將其刪掉。也有時(shí),用戶想要有針對(duì)性地訓(xùn)練,對(duì)于某各種類也許自己經(jīng)常出錯(cuò)的題進(jìn)行屢次練習(xí),需要在茫茫題庫中迅速查找到某一道題。綜上所訴,我們?yōu)樵撓到y(tǒng)設(shè)置了題庫的試題增加、刪除、查閱與編寫功能,以方便用戶對(duì)題庫的各種功能需求。以下為詳細(xì)功能的詳細(xì)介紹:增加、刪除試題功能系統(tǒng)中的每一道試題都有且只有唯一的一個(gè)ID作為主鍵,在不考慮恢復(fù)試題的情況下,本系統(tǒng)采用了刪除數(shù)據(jù)庫ID字段的方式直接對(duì)其數(shù)據(jù)進(jìn)行刪除與增加,刪除的數(shù)據(jù)ID數(shù)不會(huì)被新的數(shù)據(jù)ID所代替,數(shù)據(jù)的ID會(huì)依次送上升的形式無量排列下去。經(jīng)過程序界面連接數(shù)據(jù)庫語言,增加采用Mysql增加語句insertintot_user(id,degree(難度),style(種類),content(內(nèi)容))values(xx,xx,xx,xx)來設(shè)置用戶自定義的試題;刪除則采用

Mysql

刪除語句

deletefromtablename(

表名)wherexx=xxxandxxx=xxxorxxx=xxx數(shù)來進(jìn)行條件的控制并且進(jìn)行數(shù)據(jù)庫刪除操作數(shù)據(jù)。自然,數(shù)據(jù)庫初始化的時(shí)候辦理要點(diǎn)的鍵以及主鍵不能以為空以外,其他用戶能夠選擇留空白,只要勾寫必定的條件即可完成增加刪除功能。查閱試題功能查閱試題的功能主若是為了方便使用者迅速、直接地找到自己所需的試題。迅速找尋要點(diǎn)字的方式能夠?yàn)榍芭_(tái)也許后臺(tái)來完成。使用后臺(tái)的方式需要在數(shù)據(jù)庫中間設(shè)置一個(gè)問題要點(diǎn)字的字段,在其中錄入相應(yīng)的要點(diǎn)字,爾后對(duì)其找尋按鈕進(jìn)行辦理進(jìn)行連接盤問數(shù)據(jù)庫得出吻合結(jié)果的試題。使用前臺(tái)的方式需要將要點(diǎn)字全部讀取在指定的文件中間,經(jīng)過Javascript對(duì)其進(jìn)行代碼的讀取,采用正則和ajax等方式將相應(yīng)要點(diǎn)字進(jìn)行提取,爾后在比較input框中輸入的數(shù)據(jù)從而得出吻合條件的試題。考慮到本系統(tǒng)采用了數(shù)據(jù)庫讀取的方式,我們便能夠在數(shù)據(jù)庫模型搭建的時(shí)候很好地展望所需要的字段,方便了全部功能的實(shí)現(xiàn)。因此本系統(tǒng)采用與后臺(tái)數(shù)據(jù)庫結(jié)合的方式進(jìn)行盤問。采用Mysql盤問語句selectid(試題ID),stname(試題名稱),keyword(試題要點(diǎn)字)fromDB_name(表名)where(條件設(shè)置)degree(難度系數(shù))isnum(數(shù)值)的方式在界面得出用戶所需要查找的相應(yīng)內(nèi)容,自然,select后邊根的詳細(xì)的需要顯現(xiàn)出來的字段能夠依照用戶需要在設(shè)計(jì)的時(shí)候作出調(diào)整,我們也能夠全出盤問出來,只在界面顯現(xiàn)用戶需要的部分。Where后邊跟的條件自然也能夠依照用戶的需求來改變?cè)O(shè)置,用戶能夠使用多個(gè)條件進(jìn)行條件的定義。最后滿足全部條件的試題將會(huì)被顯現(xiàn)出來,否則題庫中沒有吻合該條件的試題。編寫試題功能對(duì)于題庫的編寫功能的設(shè)定主要方便了用戶對(duì)指定試題的特別要求做保護(hù)和更正,經(jīng)過更正主要參數(shù)、內(nèi)容環(huán)境以達(dá)到一題多用、貫穿交融。同時(shí)也方便了用戶糾正指出被忽略的試題錯(cuò)誤。進(jìn)入試題編寫頁面進(jìn)行完編寫功能后點(diǎn)擊保留,程序?qū)?zhí)行更正數(shù)據(jù)庫的

Mysql

語句

updatetablename

(表名)

set

字段=xx,字段=xxwhere(條件設(shè)置)

xxx=xxxandxxx=xxx

從而保留更正內(nèi)容。題庫編寫功能的實(shí)現(xiàn)幫助了用戶隨時(shí)隨地自定義地將試題更正成自己所需的條件,對(duì)于不同樣用戶對(duì)贊成試題的難度理解的定義、所花時(shí)間的需要以及出現(xiàn)的頻率的不同樣做了很好的區(qū)分,每位用戶都能夠結(jié)合自己的實(shí)質(zhì)情況進(jìn)行試題的核查。數(shù)據(jù)庫的設(shè)計(jì)與開發(fā)2.1數(shù)據(jù)庫基礎(chǔ)在整個(gè)系統(tǒng)的功能運(yùn)行流程中間,我們能夠很簡(jiǎn)單地發(fā)現(xiàn)一條貫穿整個(gè)系統(tǒng)的“線”,那就是數(shù)據(jù)庫,無論是用戶的登錄系統(tǒng),還是題目的增加、刪除、查閱與編寫,再到試卷的生成、試題的保留都離不開數(shù)據(jù)庫。那么接下來,我們就有必要對(duì)數(shù)據(jù)庫進(jìn)行一些基礎(chǔ)性質(zhì)的講解。我們常說的數(shù)據(jù)庫(Database)平時(shí)地來講就是利用主機(jī)空間開辟的一個(gè)虛假的對(duì)數(shù)據(jù)構(gòu)造進(jìn)行儲(chǔ)蓄、管理的一個(gè)數(shù)據(jù)庫房。數(shù)據(jù)庫最初出生于1950年,最初可是用于儲(chǔ)蓄和管理一些重要的數(shù)據(jù),發(fā)展到此刻,數(shù)據(jù)庫已經(jīng)獲取了特別寬泛的運(yùn)用,儲(chǔ)藏資源的種類也變得越來越多種多樣。用戶能夠經(jīng)過不同樣種類的代碼對(duì)數(shù)據(jù)庫進(jìn)行連接從而對(duì)數(shù)據(jù)進(jìn)行增加、刪除、查閱和更正、顯現(xiàn)等等功能。此刻市道上常有的數(shù)據(jù)庫有ORACLE(甲骨文)、DB2、SQLServer、Sybase、Informix、MySQL、VF、Access等等。但是一般基于系統(tǒng)大小、開發(fā)速度、開源程度以及成本的考慮,在中小型系統(tǒng)也許網(wǎng)站的開發(fā)的時(shí)候,我們經(jīng)常選擇Mysql數(shù)據(jù)庫作為主流數(shù)據(jù)庫。Mysql的功能未必是最富強(qiáng)的一個(gè),它有對(duì)于ORACLE(甲骨文)、DB2等數(shù)據(jù)庫的功能上來說還略差一截,但就其開源程度以及流傳的有名度來說,Mysql因其優(yōu)秀的開發(fā)速度以及可靠性在中小型系統(tǒng)開發(fā)中間據(jù)有了不能或缺的一席。數(shù)據(jù)庫的寬泛運(yùn)用使得市道上出現(xiàn)了好多數(shù)據(jù)庫的編寫使用工具。比較流行的有phpAdmin、Navicat、SQLyog、SequelPro、MicrosoftSQLServer等等。每一款數(shù)據(jù)庫管理軟件都有自己的利害勢(shì),無論使用哪一款,目的都是為了簡(jiǎn)化方便對(duì)數(shù)據(jù)庫的管理和操作。phpAdmin是一款基于網(wǎng)頁的Mysql開源管理器,它以界面簡(jiǎn)單、功能齊全而深受廣大用戶的喜愛。但本系統(tǒng)最后還是采用了Navicat作為數(shù)據(jù)庫管理編寫的軟件。Navicat是一款跨平臺(tái)的(于Windows/Mac/Linux)的管理數(shù)據(jù)工具,有對(duì)于頁面形式的phpAdmin來說,Navicat在界面優(yōu)化以及操作辦理的運(yùn)行速度上來說更勝一籌,同時(shí)也防備了數(shù)據(jù)庫軟件碰到網(wǎng)頁閱讀器影響的情況。Navicat的完滿開源工作其實(shí)不復(fù)雜,在網(wǎng)上能夠輕易地找尋到教程并且在5分鐘內(nèi)搞定。本套試卷自動(dòng)生成系統(tǒng)使用Mysql數(shù)據(jù)庫,Navicat數(shù)據(jù)庫管理工具進(jìn)行操作管理。2.2數(shù)據(jù)庫設(shè)計(jì)需求數(shù)據(jù)庫設(shè)計(jì)思路在程序制作初始,將數(shù)據(jù)庫所需要用到的表一一排列出來有利于幫助整個(gè)程序的設(shè)計(jì)思路和需求解析。本系統(tǒng)主要用到的數(shù)據(jù)表適用戶表、選擇題型表、填空題型表、簡(jiǎn)答題型表以及一些備用和拓展功能表。用戶表主要用于不同樣用戶登錄進(jìn)行自定義題庫操作時(shí)候?qū)γ總€(gè)用戶的區(qū)分和數(shù)據(jù)保留;選擇、填空、簡(jiǎn)答題型表主要用于用戶對(duì)試題的更正和提取以及試卷自動(dòng)生成功能的使用。其他的一些表(可選)可用于數(shù)據(jù)備份和恢復(fù)、考試時(shí)間、難度系數(shù)算法的判斷等等,自然,也能夠用純前端的Javascript來進(jìn)行算法的關(guān)系,數(shù)據(jù)庫的大體設(shè)計(jì)思路圖如圖所示。圖數(shù)據(jù)庫設(shè)計(jì)思路表示圖用戶登錄:用戶登錄第一需要進(jìn)行用戶注冊(cè)以保證數(shù)據(jù)庫能夠鑒別下一次登陸并保留用戶對(duì)試題的相關(guān)操作。第一次登錄的用戶會(huì)獲取數(shù)據(jù)庫試題的全部初始數(shù)據(jù),此后不同樣用戶對(duì)題庫的不同樣編寫和更正將會(huì)依照各自的賬戶保留為新的數(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)造而成。依次成立出選擇題、填空題、簡(jiǎn)答題的數(shù)據(jù)種類表,為用戶在選擇難度、試題種類、試題找尋、試題編寫等方面供應(yīng)數(shù)據(jù)庫切入字段,方便Mysql數(shù)據(jù)庫語言調(diào)用。2.2.2數(shù)據(jù)庫表與字段的設(shè)置用戶登錄表字段:用戶登錄表主要記錄的字段適用戶的id、userName(用戶名)、userNum(用戶編號(hào))(可選)、passWord(密碼)、state(狀態(tài))(可選)、cTime(創(chuàng)辦時(shí)間),表構(gòu)造如表2.2.2-1所示。表數(shù)據(jù)庫用戶登錄數(shù)據(jù)表字段名數(shù)據(jù)種類主要點(diǎn)字取值說明idvarchar(16)key用戶獨(dú)有IDuserNamevarchar(64)用戶名userNumint(32)用戶編號(hào)passWordvarchar(64)用戶密碼cTimevarchar(16)創(chuàng)辦時(shí)間stateInt(8)用戶狀態(tài)選擇試題表字段:選擇題的字段主要有id、subject(題目)、subNum(題目編號(hào))、type(題目種類)、state(題目狀態(tài))(可選)、cTime(創(chuàng)辦時(shí)間)、cuser(創(chuàng)辦人)(可選)、answerId(答案id)、degree(難度系數(shù))等等,表構(gòu)造如表2.2.2-2所示。表數(shù)據(jù)庫選擇題表字段字段名數(shù)據(jù)種類主要點(diǎn)字取值說明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)(可選)填空試題表字段:前臺(tái)系統(tǒng)下達(dá)訂單后直接更新到后臺(tái),用戶可對(duì)新增訂單進(jìn)行辦理操作,表構(gòu)造如表所示。表數(shù)據(jù)庫填空題表字段字段名數(shù)據(jù)種類主要點(diǎn)字取值說明idvarchar(16)key題目IDsubjectvarchar(32)題目subNumint(32)題目編號(hào)typevarchar(8)題目種類degreefloat(8)題目難度cuservarchar(32)創(chuàng)辦人(可選)cTimevarchar(16)創(chuàng)辦時(shí)間stateInt(8)題目狀態(tài)(可選)簡(jiǎn)答試題表字段:用戶系統(tǒng)角色的增、刪、改以及角色對(duì)應(yīng)系統(tǒng)資源的分配表構(gòu)造如表所示。表數(shù)據(jù)庫簡(jiǎn)答題表字段字段名數(shù)據(jù)種類主要點(diǎn)字取值說明idvarchar(16)key題目IDsubjectvarchar(64)題目subNumint(32)題目編號(hào)typevarchar(8)題目種類degreefloat(8)題目難度cuservarchar(32)創(chuàng)辦人(可選)cTimevarchar(16)創(chuàng)辦時(shí)間stateInt(8)題目狀態(tài)(可選)試卷自動(dòng)生成系統(tǒng)流程3.1物理構(gòu)造流程圖3.1-1系統(tǒng)整體設(shè)計(jì)架系統(tǒng)的主要兩大塊分為“試題辦理”和“在線考試”兩大板塊,無疑兩者都與數(shù)據(jù)庫相關(guān)輛。使用者經(jīng)過登錄系統(tǒng)進(jìn)入主界面選擇查察試題也許在線考試。圖3.1-2查察題庫構(gòu)造表示圖查察題庫是一個(gè)特別弘大的功能構(gòu)造,進(jìn)入查察題庫的界面此后,用戶能夠依照需要查察的試題種類選擇選擇題、填空題以及簡(jiǎn)答題,并結(jié)合數(shù)據(jù)庫對(duì)齊進(jìn)行增加試題、刪除試題、查找試題、編寫試題等功能。若用戶選擇增加試題功能,那么用戶將進(jìn)入到新增試題的界面,對(duì)其題目、種類、難度以及分?jǐn)?shù)等等數(shù)據(jù)進(jìn)行填寫,最后保留數(shù)據(jù)到數(shù)據(jù)庫,新增試題成功。圖3.1-3在線答題表示圖在線答題作為兩大功能模塊之一,同樣的擁有富強(qiáng)的功能系統(tǒng)。用戶選擇在線答題選項(xiàng)此后,將會(huì)跳轉(zhuǎn)到考試一試題需求選擇的界面,用戶一次會(huì)對(duì)選擇題、填空題、簡(jiǎn)答題中需要用到的試題種類的數(shù)量、單題分?jǐn)?shù)、難度系數(shù)進(jìn)行設(shè)定,系統(tǒng)會(huì)自動(dòng)依照單題分?jǐn)?shù)統(tǒng)計(jì)出總分?jǐn)?shù),幫助使用者合理地判斷和安排自己的總分?jǐn)?shù)。最后用戶設(shè)置完測(cè)試時(shí)間,即可點(diǎn)擊試題生成按鈕一鍵生成滿足條件的試題進(jìn)行試題測(cè)試。圖3.1-4試題作答表示圖在試題測(cè)試的過程中我們經(jīng)常會(huì)碰到以下的問題:用戶由于特別原因耽擱了時(shí)間,也許用戶在出完試題答題此后發(fā)現(xiàn)自己設(shè)定的難度其實(shí)不吻合自己水平的要求,又也許某些原因以致用戶本次測(cè)試沒有發(fā)揮出自己的理想水平,測(cè)試結(jié)果其實(shí)不能夠真實(shí)地表現(xiàn)自己的水平,這個(gè)時(shí)候就需要重新作答也許重新更加合理地制作對(duì)應(yīng)自己適合難度的試題了。用戶在試題作答的過程中系統(tǒng)供應(yīng)了交卷、重新作答、返回選題的功能,很好地幫助用戶解決了以上的問題。3.2文件構(gòu)造流程顯現(xiàn)本次系統(tǒng)程序架構(gòu)主要采用SSH三大框架,使得代碼的編寫更加簡(jiǎn)單。系統(tǒng)分層結(jié)構(gòu)以下:圖3.2-1系統(tǒng)代碼構(gòu)造從一個(gè)項(xiàng)目的文件夾構(gòu)造能夠看出一個(gè)項(xiàng)目的整體性可否完滿,邏輯思路可否緊密。一個(gè)優(yōu)秀的項(xiàng)目必然有其慎重的文件夾構(gòu)造。以本系統(tǒng)為例,根目錄文件夾以作者名稱拼音大寫字母命名,下放要點(diǎn)文件夾如上圖所示。以下為文件夾構(gòu)造說明:action文件夾:主若是存放各個(gè)實(shí)體類之間頁面跳轉(zhuǎn)的控制。comms文件夾:主若是存放一些公共的類和實(shí)體。entity文件夾:主若是存放各個(gè)實(shí)體類文件。fiter文件夾:主要用來存放各個(gè)過濾器類文件。Service文件夾:主若是存放各個(gè)實(shí)體類經(jīng)過Action控制的直接方法。applicationContext.xml:是hibernate的配置文件perties:是連接數(shù)據(jù)庫的配置文件config.xml:是web項(xiàng)目的配置文件initSQL:是數(shù)據(jù)庫初始化數(shù)據(jù)文件log4j:是項(xiàng)目日志文件persustence.xml:是jap的數(shù)據(jù)庫連接配置struts.xml:是Struts的配置文件界面設(shè)計(jì)4.1界面流程顯現(xiàn)圖4.1-1系統(tǒng)界面流程表示圖本系統(tǒng)主要由8個(gè)主要的界面組成,分別是用戶登錄界面、系統(tǒng)主界面(幻燈片+導(dǎo)航欄)、查察題庫界面、在線答題界面、編寫題庫界面、新增試題界面、選擇試題要求界面以及開始作答界面。用戶使用本套試卷自動(dòng)生成系統(tǒng)此后一次操作的步驟將會(huì)如圖4.1-1所示進(jìn)行。4.2界面設(shè)計(jì)表示圖本次系統(tǒng)界面設(shè)計(jì)主要采用灰色冷色彩進(jìn)行顏色搭配,藍(lán)色作為輔色,即保證了考試一試題這一嚴(yán)肅的場(chǎng)合情況需求,也保證了色彩的不只一性,滿足了用戶的視覺交互收效。本試題的界面菜單中加入了Javascript設(shè)計(jì)用戶交互體驗(yàn),比以下拉菜單,圖片輪播等等,同時(shí)也解決了傳統(tǒng)尸體自動(dòng)生成系統(tǒng)界面的單調(diào)的尷尬情況。圖4.2-1系統(tǒng)用戶登錄界面顯現(xiàn)用戶使用該試卷自動(dòng)生成系統(tǒng),必定先經(jīng)過注冊(cè)用戶到數(shù)據(jù)庫以開辟屬于自己的獨(dú)立空間,以保留吻合自己需求的自定義試題,完成對(duì)需求試題的增刪查改以及自定義試卷生成。注冊(cè)完成后,用戶編寫額度數(shù)據(jù)將會(huì)被保留到當(dāng)前用戶,下次用戶輸入帳號(hào)密碼即可連接到保留的數(shù)據(jù)。用戶也可選擇注冊(cè)多個(gè)數(shù)據(jù)以達(dá)到針對(duì)性試題分類訓(xùn)練的效果。主界面的功能導(dǎo)航菜單采用了Javascript作為用戶交互的延展,主界面主要供應(yīng)查察題庫以及在線答題兩大模塊。用戶可依照自己的需求進(jìn)行選擇。圖4.2-2系統(tǒng)功能導(dǎo)航菜單顯現(xiàn)在線答題分為了兩大塊,一塊為自主成立,一塊為系統(tǒng)生成。自主成立主要用于用戶自定義選擇試題。系統(tǒng)生成是用戶在選擇了試題的難度、分?jǐn)?shù)、數(shù)量等等一系列條件此后系統(tǒng)在數(shù)據(jù)庫中自動(dòng)生成滿足條件相應(yīng)的試題。圖4.2-3系統(tǒng)試題菜單顯現(xiàn)查察題庫功能為用戶供應(yīng)了顯現(xiàn)數(shù)據(jù)庫題庫的功能,用戶能夠依照種類分別看到數(shù)據(jù)庫中的單項(xiàng)選擇題、多項(xiàng)選擇題、填空題以及簡(jiǎn)答題庫存以及情況,方便用戶進(jìn)行試題的查找以及試題的編寫。圖4.2-4系統(tǒng)主頁面顯現(xiàn)系統(tǒng)登錄進(jìn)去的主界面如圖4.2-4所示,左邊為功能導(dǎo)航菜單顯現(xiàn),右邊為系統(tǒng)展示的幻燈片,供應(yīng)多套優(yōu)秀的試題給用戶使用,也能夠放好多適用的信息。圖4.2-5系統(tǒng)試題編寫菜單顯現(xiàn)系統(tǒng)試題編寫菜單界面為用戶對(duì)試題的編寫整理供應(yīng)了極大的幫助,在這里用戶可以自定義每一道題目的增加、刪除、查閱與編寫功能并保留到數(shù)據(jù)庫中。圖4.2-6單項(xiàng)選擇題顯現(xiàn)列表題目名稱能夠更具ajax去動(dòng)向的查數(shù)據(jù)庫已有的單項(xiàng)選擇題目,防備重復(fù)。題目種類運(yùn)用了easyUI的combotree插件,能夠去調(diào)用數(shù)據(jù)庫查找已有的題目種類表,供用戶選擇,不能夠手動(dòng)輸入。圖4.2-7依照題目種類來查找表示圖圖4.2-8編寫界面表示圖題目名稱能夠更具ajax去動(dòng)向的查數(shù)據(jù)庫已有的單項(xiàng)選擇題目,防備重復(fù)。題目種類運(yùn)用了easyUI的combotree插件,能夠去調(diào)用數(shù)據(jù)庫查找已有的題目種類表,供用戶選擇,不能夠手動(dòng)輸入。圖4.2-9多項(xiàng)選擇題擬定表示圖點(diǎn)擊導(dǎo)航欄的多項(xiàng)選擇題,進(jìn)入到多項(xiàng)選擇題的顯現(xiàn)列表,同樣顯現(xiàn)了該題目的全部信息,此表格能夠分頁盤問,也能進(jìn)行題目要點(diǎn)字和類其他精選,點(diǎn)擊新建,進(jìn)入到多項(xiàng)選擇題的新建頁面,與單項(xiàng)選擇題近似,可是在答案便成了能夠同時(shí)選擇多個(gè)答案值:點(diǎn)擊編寫按鈕,進(jìn)入編寫頁面,并顯示當(dāng)前這條數(shù)據(jù)的全部信息,能夠進(jìn)行更正,并保留。圖4.2-10填空題擬定表示圖在導(dǎo)航欄點(diǎn)擊填空題,進(jìn)入到填空題顯現(xiàn)列表,其中基本功能都是同樣的,可是在題目中,用方框來表示應(yīng)該填的空格。點(diǎn)擊新建,進(jìn)去填空題新建頁面,此頁面的題目輸入采用了uedit文本編寫器插件,此插件能夠自定義多種編寫樣式,在此,只有一個(gè)方框的樣式,用戶需要用方框來表示填空題的空格圖4.2-11簡(jiǎn)答題擬定表示圖點(diǎn)擊新建,進(jìn)入到簡(jiǎn)答題的新建頁面。其中需要用答案要點(diǎn)值來保留簡(jiǎn)答題的答案,要點(diǎn)詞能夠保留多個(gè),能夠點(diǎn)進(jìn)新增按鈕,則和會(huì)在表格下新增一行,點(diǎn)擊刪除按鈕,則刪除當(dāng)前要點(diǎn)字。當(dāng)要點(diǎn)字的個(gè)數(shù)只有一個(gè)后,若是用戶連續(xù)點(diǎn)擊刪除,則會(huì)彈出提示框,提示用戶必定最少保留一個(gè)要點(diǎn)字。點(diǎn)擊編寫按鈕,則進(jìn)入到編寫頁面,同樣可以刪除和增加要點(diǎn)字;同一個(gè)要點(diǎn)字只能保留一次,若是有兩個(gè)同樣的要點(diǎn)字,則經(jīng)過利用easyUI的validatebox插件來檢測(cè)數(shù)據(jù),并提示用戶此要點(diǎn)字重復(fù)。圖4.2-12新建題目種類表示圖點(diǎn)擊編寫,則進(jìn)入到類其他編寫頁面,入宮將此類其他狀態(tài)改為停用,則會(huì)同時(shí)停用此種類下面的全部的題目。系統(tǒng)算法設(shè)計(jì)試卷自動(dòng)生成系統(tǒng)中間存在著好多需要計(jì)算的算法,比方試卷自動(dòng)組成中抽取選定條件的試題如何從弘大的數(shù)據(jù)庫中調(diào)用抽取,對(duì)于易錯(cuò)題它針對(duì)個(gè)人的難度如何實(shí)現(xiàn)合理的顛簸,用戶試題得分的計(jì)算等等,都離不開各項(xiàng)算法的研究。一套合理的算法不能是能夠幫助用戶獲取更好的使用體驗(yàn),幫助用戶經(jīng)過試題更好地提升自己需求,同時(shí)也慎重了整個(gè)系統(tǒng)的邏輯設(shè)計(jì),提升了系統(tǒng)設(shè)計(jì)的科學(xué)性。以下我們就來介紹本套試題中設(shè)計(jì)到的算法研究。5.1組卷方法設(shè)計(jì)試卷組卷算法是試卷自動(dòng)生成表現(xiàn)自動(dòng)化的核心,它要求依照用戶所選擇的試題難度、分?jǐn)?shù)、數(shù)量、種類等等條件此后自動(dòng)生成吻合條件的試題,那么其中就存在一套能夠從吻合眾多條件的弘大數(shù)據(jù)庫題庫中提取相應(yīng)試題的算法,并且要盡最大可能防備試題同樣的情況。試題組卷的優(yōu)秀程度是輔助授課的重要緩解,如何保證生成的試卷滿足不同樣用戶需求的不同樣指標(biāo)就顯得十分重要了。試卷組卷的方式有好多,常有的主要有隨機(jī)法、回朔法以及遺傳算法。以下我們就來介紹幾種比較常用的試卷組題算法。隨機(jī)法隨機(jī)法顧名思義就是隨機(jī)的采用,結(jié)合本系統(tǒng)的設(shè)定即依照用戶設(shè)定的各項(xiàng)條件,在滿足各項(xiàng)條件指標(biāo)的情況下隨機(jī)地從數(shù)據(jù)庫中調(diào)取滿足需求的題目。簡(jiǎn)單地說就恰似在關(guān)系確認(rèn)了用戶生成哪一各種類的題目此后,依照這種題目的難度系數(shù),結(jié)合特定的隨機(jī)計(jì)算方法生成一個(gè)在該難度系數(shù)試題中隨機(jī)獲取一條,爾后經(jīng)過這條信息的主鍵確定一條數(shù)據(jù)庫數(shù)據(jù)并且讀取出來,記錄到出題的題目會(huì)集中間去。每隨機(jī)到一道題目對(duì)象,就會(huì)與已經(jīng)調(diào)用的題目會(huì)集進(jìn)行循環(huán)比較,若該值相等的話就不予采用并退出連續(xù)調(diào)用下一個(gè),若不相等的話即以調(diào)用的試題中還未出現(xiàn)過該題,恩賜調(diào)用。隨機(jī)法的優(yōu)點(diǎn)是簡(jiǎn)單直接,能夠迅速地生成基本滿足用戶需求的試題,同時(shí)較為平均的采用方式也能夠防備作弊現(xiàn)象的出現(xiàn)。但是隨機(jī)法的選題可能其實(shí)不是試題選題中的質(zhì)量最優(yōu)的算法,由于它并不擁有回朔的性質(zhì),邏輯思路略微欠缺一點(diǎn)。回朔法回朔法又稱為研究與回朔法,也簡(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ì)回朔法的描述我們不難看出回朔法能夠特別精準(zhǔn)地給出試卷組裝的最優(yōu)解并且高質(zhì)量地完成試題的組裝,但是這種高成功率的算法是成立在大量犧牲時(shí)間的基礎(chǔ)上面進(jìn)行的,經(jīng)常完成一次回朔法我們已經(jīng)能夠完成N次隨機(jī)法的隨機(jī)采用了,并且回朔法占用的內(nèi)存相當(dāng)大,程序的構(gòu)造和邏輯性思路要求比較高,采用的試題又都是最優(yōu)解缺乏了必然的隨機(jī)性。所過去往在試題數(shù)量要求較小的試題組裝過程中,由于技術(shù)較小能夠忽略那一點(diǎn)隨機(jī)性并且也不是耗資過多的時(shí)間,我們可以考慮選擇回朔法。圖5.1-2回朔法思路表示圖遺傳算法遺傳算法的由來實(shí)質(zhì)上是從模擬達(dá)爾文生物進(jìn)化論中的自然選擇和遺傳學(xué)機(jī)理的生物進(jìn)化過程的計(jì)算模型。它實(shí)質(zhì)上是一種經(jīng)過模擬生物進(jìn)化過程中找尋最優(yōu)解的方法。由后人運(yùn)用到了神經(jīng)網(wǎng)絡(luò)中間去并且獲取了顯然的收效。但是,仿基因編碼的工作相當(dāng)弘大復(fù)雜,我們經(jīng)常采用二進(jìn)制編碼進(jìn)行簡(jiǎn)化,經(jīng)過“優(yōu)越劣汰”的方式去判斷出“衍生”、“變異”、“交織組合”的利害性質(zhì)并且做出判斷。遺傳算法以擬生物學(xué)的方式獲取了好多學(xué)家的認(rèn)可,同時(shí)也能夠運(yùn)用到與“選擇”相關(guān)的編碼中間來,但是由于其原理過于復(fù)雜,本文不作詳細(xì)的研究。5.2試題難度算法試題難度主要經(jīng)過用戶對(duì)試題的難度設(shè)定,經(jīng)過文本輸入試題難度,正則控制文本輸入內(nèi)容已到達(dá)數(shù)據(jù)庫獲取正確的試題難度并且保留的目的。本文中提到的試題難度的算法主若是在用戶答完試題此后系統(tǒng)自動(dòng)給出的增加難度和降低難度的算法設(shè)定,其原理也較為簡(jiǎn)單,在這里只做簡(jiǎn)單的介紹。經(jīng)過前面對(duì)系統(tǒng)的介紹我們知道,在用戶生成完試題并且進(jìn)行完作答此后,系統(tǒng)會(huì)統(tǒng)計(jì)出該用戶此次的試題成績(jī)并且供應(yīng)增加試題難度和降低試題難度一鍵再次生成試題的功能。試題的難度增加也許減少都是依照系統(tǒng)試題難度算法做出相應(yīng)變化調(diào)整的。第一,系統(tǒng)會(huì)獲取到本次試題的出題種類、各個(gè)種類的題目數(shù)量以及難度系數(shù)、考試總分?jǐn)?shù)與總時(shí)間,并且獲取到相應(yīng)的數(shù)據(jù)庫字段,其次,用戶若選擇增加難度,系統(tǒng)會(huì)依照N=N+(p/P)*0.2的方式四舍五入保留一至二位小數(shù)給出該種類題目的新的難度系數(shù),并且從數(shù)據(jù)庫中提取出滿足難度系數(shù)條件及種類的相應(yīng)的試題重新組題。若用戶選擇降低難度,則公式變?yōu)镹=N-(p/P)*0.2。其中N代表難度系數(shù),p代表本次得分,P代表總分?jǐn)?shù)。5.3試題分?jǐn)?shù)算法本系統(tǒng)的分?jǐn)?shù)算法主要講解系統(tǒng)如何對(duì)用戶得分做出議論。我們知道,系統(tǒng)在用戶點(diǎn)擊了提交試卷此后會(huì)依照用戶的作答情況給出相應(yīng)的分?jǐn)?shù)。再給出分?jǐn)?shù)從前,系統(tǒng)會(huì)對(duì)用戶在文本中的答案與標(biāo)準(zhǔn)答案進(jìn)行比較,主要原理是采用了經(jīng)過提取用戶作題文本中的數(shù)據(jù)與數(shù)據(jù)庫答案數(shù)據(jù)比較的方式進(jìn)行等值判斷,若相等,用戶得分追加,若不相等則不作追加得分。有對(duì)于選擇題、判斷題、填空題能夠很輕易地判斷出對(duì)錯(cuò),但是如何判斷簡(jiǎn)答題呢?在自動(dòng)化的系統(tǒng)中間自然不會(huì)像人工改卷同樣,我們會(huì)依次讀取用戶在文本中的答案,并提前在數(shù)據(jù)庫中的答案中給出試題答案的要點(diǎn)字也許要點(diǎn)語句,若用戶的答案中間存在與之吻合的要點(diǎn)字,則基本能夠判斷出用戶該題得分。經(jīng)過一題設(shè)置多個(gè)要點(diǎn)字的方式有利于提升判斷的精準(zhǔn)性,也有利于試題的一題多問的設(shè)置。比方P=p1*J1+p2*J2+n*num,其中P為總得分,p1、p2為種類題答題正確個(gè)數(shù)(簡(jiǎn)答題除外),J為該種類題目單體分?jǐn)?shù),n為簡(jiǎn)答題要點(diǎn)詞也許語句個(gè)體分?jǐn)?shù),num為簡(jiǎn)答題要點(diǎn)詞也許要點(diǎn)語句正確個(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ì)高出100道,弘大的數(shù)據(jù)庫試題支撐加上對(duì)于重復(fù)率的判斷辦理極大化地減少了隨機(jī)法的缺點(diǎn)。最重要的試卷組題算法確定此后,我們?cè)诓捎秒y度系數(shù)的算法以及得分算法的時(shí)候做的辦理就顯得略微簡(jiǎn)單一點(diǎn)。自己其實(shí)也用不著成心地去提升這些難度算法的難度,我們只要要做出能夠滿足用戶需求的功能此后,代碼和算法其實(shí)越簡(jiǎn)單越好。主要功能代碼顯現(xiàn)6.1登錄功能代碼顯現(xiàn)數(shù)據(jù)庫鏈接這是運(yùn)用Hibernate框架的主要配置文件,其中配置了連接數(shù)據(jù)庫的地址,用戶名,密碼以及框架中各種連接池、緩存池、對(duì)數(shù)據(jù)庫的操作規(guī)范,以及在調(diào)用數(shù)據(jù)庫時(shí)可否在控制臺(tái)顯示sql語句和日志的保留等。<persistencexmlns=""xmlns:xsi=""xsi:schemaLocation=""version="2.0"><persistence-unitname="jpa"><provider>org.hibernate.ejb.HibernatePersistence</provider><properties><propertyname="hibernate.dialect"value="org.hibernate.dialect.MySQL5Dialect"/><propertyname="hibernate.connection.driver_class"value="com.p6spy.engine.spy.P6SpyDriver"/><propertyname="hibernate.connection.username"value="root"<propertyname="hibernate.connection.password"value="root"

/>/><propertyname="hibernate.connection.url"value="jdbc:mysql://localhost:3306/ljc?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8"/><propertyname="hibernate.max_fetch_depth"value="3"/><propertyname="hibernate.hbm2ddl.auto"value="update"/><propertyname="hibernate.jdbc.fetch_size"value="18"/><propertyname="hibernate.jdbc.batch_size"value="10"/><propertyname="hibernate.show_sql"value="true"/><propertyname="hibernate.format_sql"value="false"/><propertyname="vider_class"value="org.hibernate.connection.C3P0ConnectionProvider"

/><!--

最小連接數(shù)

--><propertyname="c3p0.min_size"value="5"/><!--

最大連接數(shù)

--><propertyname="c3p0.max_size"value="30"/><!--最大悠閑時(shí)間,60秒內(nèi)未使用則連接被扔掉。若為0則永不扔掉。Default:0--><propertyname="c3p0.maxIdleTime"value="60"/><!--獲取連接的超時(shí)時(shí)間,若是高出這個(gè)時(shí)間,會(huì)拋出異常,單位毫秒--><propertyname="c3p0.timeout"value="1800"/><!--最大的PreparedStatement的數(shù)量--><propertyname="c3p0.max_statements"value="50"/><!--每隔120秒檢查連接池里的悠閑連接,單位是秒--><propertyname="c3p0.idle_test_period"value="120"/><!--當(dāng)連接池里面的連接用完的時(shí)候,C3P0一下獲取的新的連接數(shù)--><propertyname="c3p0.acquire_inscrement"value="1"/><!--可否每次都考據(jù)連接可否可用--><propertyname="c3p0.validate"value="false"/></properties></persistence-unit></persistence>登錄功能登錄功能的實(shí)此刻邏輯層上面主要分為了兩層,兩層之間有著對(duì)應(yīng)調(diào)用的關(guān)系,一層調(diào)用一層第一步進(jìn)行的是網(wǎng)頁層,也叫顯示層。顯示層將賬號(hào)密碼提交到控制層(也就是Action層),Action層可是起到一個(gè)央求轉(zhuǎn)發(fā)的作用,它調(diào)用Service層,Service層來執(zhí)行詳細(xì)的操作,爾后返回Action,Action更具返回跳轉(zhuǎn),爾后用戶就能看到是登陸失敗還是成功。顯示層<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%Stringpath=request.getContextPath( );StringbasePath=request.getScheme( )+"://"request.getServerName( )+":"+request.getServerPort( )path+"/";StringsCode="";%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"""><html><head><basehref="<%=basePath%>"><metacharset="utf-8"><linkrel="stylesheet"type="text/css"href="css/login.css"/><!--引入jquery--><scripttype="text/javascript"src="javascript/jquery/js/jquery-1.7.min.js"></script><scripttype="text/javascript">$(function( ){//

if(window!=top)top.location.href=location.href;$("#loginForm").submit( );});functionclosetip( ){$("#tip").css("display","none");}</script><title>試卷自動(dòng)生成系統(tǒng)|LJCSoft</title></head><body>style="background:url(images/login_01.png)repeat-x;height:width:100%"><divid="box"><divclass="login"><formid="loginForm"method="post"action="IndexAction.action">//提交到action<divclass="lg_label"><labelfor="name">用戶名:</label><inputtype="text"

100%;name="j_username"id="txtUserName"value="admin"/></div><divclass="lg_label">type="password"

<labelfor="code">密碼:name="j_password"id="code"value="1"/></div><divclass="lg_btn"><inputtype="submit"value="

</label><input"class="btn"onfocus="this.blur( )"/></div></form><divid="tip"class="tip"${Feq1?'style="display:block"':'style="display:none"'}><divstyle="position:absolute;top:-1px;right:-4px;cursor:pointer"><imgsrc="images/login_06.png"width="13"onclick="closetip( )"height="13"></div><pclass="tip_atr">密碼也許用戶名錯(cuò)誤!</p><pclass="tpi_ass"><ahref="#">忘記密碼?</a></p></div></div></div></body></html>Service層packagecom.xxsoft.service;importjavax.persistence.EntityManager;importorg.springframework.stereotype.Service;ms.database.QueryBuilder;ms.database.Restrictions;importcom.xxsoft.entity.EmployeeInfo;/**登陸Service@authorLJC*/@Service("LoginService")publicclassLoginServiceextendsBaseService{restrictions.eq("username",info.getUsername( ));restrictions.eq("userpwd",info.getUserpwd( ));restrictions.isNull("failuredate");restrictions.isNull("quitdate");returnrestrictions;find(EmployeeInfo.class,newQueryBuilder( ){@OverridepublicRestrictionscreateRestrictions(Class<?>clazz,EntityManagerentityManager){Restrictionsrestrictions=Restrictions.forClass(clazz,publicEmployeeInfoloign(finalEmployeeInfoinfo){try{returnentityManager);}});}catch(Exceptione){e.printStackTrace( );returnnull;}}}主要功能模塊Action方法/***diy

生成試卷方法*@return*/publicvoiddiyPaper( ){HttpSessionre=getSession( );//

獲取

session

域?qū)ο髍e.removeAttribute("sqlist");//

session

域前一次四個(gè)題目變量刪除re.removeAttribute("sqCount");//

將session

域前一次四個(gè)題目變量刪除re.removeAttribute("sqScore");//將session域前一次四個(gè)題目變量刪除re.removeAttribute("mqlist");re.removeAttribute("mqCount");//將session域前一次四個(gè)題目變量刪除re.removeAttribute("mqScore");//將session域前一次四個(gè)題目變量刪除re.removeAttribute("gqlist");re.removeAttribute("gqCount");//將session域前一次四個(gè)題目變量刪除re.removeAttribute("gqScore");//將session域前一次四個(gè)題目變量刪除re.removeAttribute("shqlist");re.removeAttribute("shqCount");//將session域前一次四個(gè)題目變量刪除re.removeAttribute("shqScore");//將session域前一次四個(gè)題目變量刪除re.setAttribute("paperName",getString("paperName"));//從前臺(tái)獲取試卷題目re.setAttribute("paperTime",getString("paperTime"));

//獲取試卷時(shí)間re.setAttribute("paperTotal",getString("paperTotal"));//

獲取試卷總分re.setAttribute("paperUser",loginUser.getEmployeename( ));//

獲取答題人if(sq!=null){//判斷sq對(duì)象可否為空,sq表示單項(xiàng)選擇題對(duì)象,當(dāng)前臺(tái)沒有選擇單項(xiàng)選擇題時(shí)為空,選擇則不為空//sq對(duì)象中包括了前臺(tái)中選擇的題目種類,難度,數(shù)量,單個(gè)分值等信息sq.setType(1);List<Question>sqlist=(List<Question>)service.getDiyList(sq);將此對(duì)象Service中盤問相應(yīng)滿足條件的題目列表if(sqlist==null){//判斷盤問出來的會(huì)集可否為空Write("error");//為空表示數(shù)據(jù)庫出錯(cuò),并返回

error

提示用戶}elseif(sqlist.size( )!=sq.getCount( )){//若是不為空,則判斷會(huì)集數(shù)量是否是要求的數(shù)量,若是不一致則表示題庫數(shù)不夠,返回到前臺(tái)提示用戶Write("false1");}else{//題數(shù)夠re.setAttribute("sqlist",JSONHelper.toJson(sqlist));re.setAttribute("sqCount",sq.getCount( ));re.setAttribute("sqScore",sq.getScore( ));}}if(mq!=null){

//判斷多項(xiàng)選擇題

...

與上述近似mq.setType(2);List<Question>mqlist=(List<Question>)service.getDiyList(mq);if(mqlist==null){Write("error");}elseif(mqlist.size( )!=mq.getCount( )){Write("false2");}else{re.setAttribute("mqlist",JSONHelper.toJson(mqlist));re.setAttribute("mqCount",mq.getCount( ));re.setAttribute("mqScore",mq.getScore( ));}}if(gq!=null){//判斷填空題...gq.setType(3);List<GapFillingQuestion>gqlist=(List<GapFillingQuestion>)service.getDiyList(gq);if(gqlist==null){Write("error");}elseif(gqlist.size( )!=gq.getCount( )){Write("false3");}else{List<GapFillingQuestion>list=newArrayList<>( );for(GapFillingQuestiong:gqlist){//在前端轉(zhuǎn)json對(duì)象時(shí),由于Name中有標(biāo)簽字符,會(huì)以致變換失敗,因此在此值讀取fillName和idlist.add(newGapFillingQuestion(g.getId( ),g.getFillName( )));}re.setAttribute("gqlist",JSONHelper.toJson(list));re.setAttribute("gqCount",gq.getCount( ));re.setAttribute("gqScore",gq.getScore( ));}}if(shq!=null){

//判斷簡(jiǎn)答題

...shq.setType(4);List<Question>shqlist=(List<Question>)service.getDiyList(shq);if(shqlist==null){Write("error");}elseif(shqlist.size( )!=shq.getCount( )){Write("false4");}else{re.setAttribute("shqlist",JSONHelper.toJson(shqlist));re.setAt}/***diy

生成試卷方法*@return*/6.2前端代碼顯現(xiàn)主界面代碼<divstyle="width:1085px;height:420px;overflow:hidden"><iframeframeborder="1"src="jsp/index/turnRun/carousel.html"name="mainFrame"style="height:400px;width:100%;overflow:scroll;"id="mainframe"></iframe></div><divstyle="width:100%;height:20px;border:0pxsolid#FFF;"></div><divstyle="width:100%;height:100px;"><iframeframeborder="0"src="jsp/index/home/foot.html"name="mainFrame"style="height:100px;width:100%;overflow:scroll;"id="rootframe"></iframe></div></body></html>片播代<body><divstyle="margin:0pxauto;"><!--Inserttoyourwebpa

溫馨提示

  • 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)論