• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于SSM的自動(dòng)組卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    2018-11-15 01:33:54陳培培徐家喜
    電腦知識(shí)與技術(shù) 2018年20期
    關(guān)鍵詞:遺傳算法

    陳培培 徐家喜

    摘要:經(jīng)過(guò)詳細(xì)分析組卷過(guò)程中的各項(xiàng)約束條件,以試卷難度系數(shù)、知識(shí)點(diǎn)覆蓋率、題型、題量、總分為依據(jù),采用遺傳算法,設(shè)計(jì)并實(shí)現(xiàn)基于SSM框架的自動(dòng)組卷系統(tǒng)。以遺傳算法和FreeMarker模板技術(shù)為支撐,結(jié)合對(duì)科目、知識(shí)點(diǎn)、題型、試題模塊的管理,系統(tǒng)提供的自動(dòng)生成Word格式試卷的功能,能有效解決教師在實(shí)際中組卷的需求。系統(tǒng)目前已經(jīng)部署并投入教學(xué)使用,并取得了良好的教學(xué)效果。

    關(guān)鍵詞:組卷系統(tǒng);自動(dòng)組卷;遺傳算法;Word格式;SSM框架

    中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)20-0049-03

    Design and Implementation of an Automatic Test Test-volume System Based on SSM

    CHEN Pei-pei, XU Jia-xi

    (School of Information Engineering, Nanjing Xiaozhuang University,Nanjing 211171, China)

    Abstract: After detailed analysis of the constraints in the assembly process, Adopting the genetic algorithm through the degree of difficulty of the test paper, coverage of knowledge points, question types, question numbers, and total scores. We design and implement an automatic Test-volume system based on the SSM framework Supported by the genetic algorithm, FreeMarker template technology, and combine subject, knowledge point, question type, question module management, the system provides the function of automatically generating Word format papers, which can effectively solve the teacher's needs in the actual composition. The system has been deployed and put into use in teaching, and has achieved good teaching feedback.

    Key words: the group system; automatic assembly; Genetic Algorithm; word format; SSM

    1 背景

    隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,傳統(tǒng)人工組卷方式已經(jīng)落后,計(jì)算機(jī)組卷成為新型的教學(xué)輔助方式。計(jì)算機(jī)組卷是按照教學(xué)要求,由計(jì)算機(jī)自動(dòng)從試題庫(kù)中選擇試題,組成符合知識(shí)點(diǎn)分布、題型分布、難度分布、分?jǐn)?shù)分布要求的試卷[1]。計(jì)算機(jī)自動(dòng)組卷,組卷算法是關(guān)鍵。該文以難度系數(shù)、知識(shí)點(diǎn)覆蓋率、題型、題量、總分五個(gè)指標(biāo)為約束條件,采用遺傳算法進(jìn)行組卷。該系統(tǒng)主要實(shí)現(xiàn)了自動(dòng)組卷、手動(dòng)組卷和導(dǎo)出Word格式試卷功能,同時(shí)提供對(duì)科目、知識(shí)點(diǎn)、題型、題目、試卷的操作,幫助用戶有效便捷地管理組卷過(guò)程。

    2 自動(dòng)組卷系統(tǒng)的功能模塊設(shè)計(jì)

    根據(jù)實(shí)際使用情況,系統(tǒng)有管理員、教師、試題錄入人員三種用戶角色,不同的用戶角色對(duì)應(yīng)不同的功能權(quán)限。經(jīng)過(guò)分析用戶組卷以及用戶使用系統(tǒng)的流程,用戶的行為主要有:管理科目、知識(shí)點(diǎn)、題型、試題信息;管理試卷信息、自動(dòng)生成試卷、手動(dòng)生成試卷、導(dǎo)出Word格式試卷;管理員、教師管理下屬用戶;管理員管理系統(tǒng)信息、公告信息;用戶管理個(gè)人信息。根據(jù)以上分析,該系統(tǒng)功能結(jié)構(gòu)如圖1所示。

    3 基于SSM架構(gòu)的系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)

    3.1 關(guān)鍵技術(shù)及作用

    SSM是Spring、SpringMVC、MyBatis三大框架的簡(jiǎn)稱。作為目前較為流行的Web框架,SSM框架有許多優(yōu)良的特性,使其成為當(dāng)前輕量級(jí)Web應(yīng)用領(lǐng)域最優(yōu)秀的框架組合之一。

    Spring是應(yīng)用于設(shè)計(jì)層面的框架。它不解決開發(fā)過(guò)程中具體的功能點(diǎn),而從系統(tǒng)設(shè)計(jì)層面出發(fā),解決代碼的耦合問(wèn)題。Spring在系統(tǒng)中的主要作用有:1)提供容器功能,管理Bean的生命周期,整合SpringMVC和 MyBatis框架[2];2)通過(guò)依賴注入,管理代碼間的依賴關(guān)系;3)通過(guò)AOP切面,獨(dú)立管理事務(wù)、日志功能;4)整合EhCache緩存框架管理緩存;5)整合dbcp數(shù)據(jù)庫(kù)連接池管理數(shù)據(jù)庫(kù)連接。

    SpringMVC是Spring框架基于MVC設(shè)計(jì)模型的用于構(gòu)建Web應(yīng)用程序的一個(gè)模塊[3],主要作用有:1)將請(qǐng)求映射到處理器;2)輔助實(shí)現(xiàn)上傳文件功能;3)整合Hibernate Validator驗(yàn)證用戶輸入合法性;4)解析并渲染視圖,最終返回響應(yīng)頁(yè)面。

    MyBatis是一個(gè)基于Java的數(shù)據(jù)持久層框架[4],實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的CRUD操作。

    MyBatis通過(guò)XML配置文件或者Java程序獲得連接數(shù)據(jù)庫(kù)的SqlSession對(duì)象,該系統(tǒng)采用Java程序形式,將其與Spring框架整合開發(fā)。其中,最重要的是mapper映射器,mapper映射器中最主要的是SQL映射語(yǔ)句。這些映射語(yǔ)句以注解或者SQL映射文件的形式存在,通過(guò)select、insert、update、delete等元素,執(zhí)行編寫的SQL語(yǔ)句。

    3.2 體系結(jié)構(gòu)設(shè)計(jì)

    該系統(tǒng)采用分層式體系結(jié)構(gòu),分為View視圖層、Controller控制層、Service服務(wù)層、Dao數(shù)據(jù)持久層、Model模型層。下文結(jié)合系統(tǒng)中自動(dòng)生成試卷功能的實(shí)現(xiàn),展示架構(gòu)中各個(gè)層的任務(wù)與功能。

    3.2.1 View視圖層

    View視圖層采用JSP+JQuery+BootStrap技術(shù)。BootStrap框架用來(lái)搭建靜態(tài)頁(yè)面;JQuery負(fù)責(zé)發(fā)送AJAX請(qǐng)求,獲得后臺(tái)數(shù)據(jù)并將其渲染進(jìn)頁(yè)面;JSP技術(shù)實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)效果。在自動(dòng)生成試卷頁(yè)面中,提供試卷標(biāo)題、難度系數(shù)、題型個(gè)數(shù)、題型分?jǐn)?shù)、題型順序供用戶設(shè)置,并將其作為自動(dòng)組卷功能的入?yún)ⅲ?yè)面效果如圖2所示。本頁(yè)面在以下3個(gè)方面做出優(yōu)化:1)在頁(yè)面中多處使用AJAX異步交互技術(shù),刷新局部數(shù)據(jù)時(shí),不用刷新整個(gè)頁(yè)面;2)根據(jù)數(shù)據(jù)庫(kù)中已有的題目數(shù)量,限制用戶在一定范圍內(nèi)選擇,保證了執(zhí)行遺傳算法時(shí)題目的充足性;3)用戶點(diǎn)擊生成試卷按鈕時(shí),匯總呈現(xiàn)所選擇的信息,經(jīng)過(guò)二次確認(rèn)后再發(fā)起自動(dòng)生成試卷請(qǐng)求。

    3.2.2 Controller控制層

    從View層發(fā)起的自動(dòng)生成試卷請(qǐng)求:testPaper/generatePaperAuto,會(huì)被web.xml中定義的servlet攔截,并將請(qǐng)求交給SpringMVC框架中的核心處理器DispatcherServlet。核心處理器請(qǐng)求HandlerMapping映射器,返回Handler對(duì)象,再請(qǐng)求HandlerAdapter適配器,找到控制類中的方法。映射關(guān)系通過(guò)注解在控制類中的方法上配置,注解如下:

    @RequestMapping(value="/testPaper/generatePaperAuto",method=RequestMethod.POST)

    組卷控制類中的自動(dòng)組卷方法負(fù)責(zé)處理自動(dòng)組卷功能的業(yè)務(wù)流程。業(yè)務(wù)處理流程如下:

    1)得到前臺(tái)用戶選擇的科目Id、知識(shí)點(diǎn)列表、題型列表,根據(jù)這些條件查找試題,組成題庫(kù):questionDB=questionService.getQues(sId,kPList,qTList);

    2)根據(jù)試卷id、總分、難度系數(shù)、知識(shí)點(diǎn)列表,題型列表初始化用戶期望試卷:expectedExam=new TempExam(eId,totalScore,paperDiffLev,kpsSet,qtList);

    3)將以上方法返回的參數(shù)questionDB、expectedExam,作為遺傳算法的入?yún)?,進(jìn)行組卷:resultExam=testPaperServcie.geneticAlgorithm(questionsDB,expectedExamA);

    4)將生成的試卷信息存入數(shù)據(jù)庫(kù):examService.examInToDB(resultExam);

    5)將數(shù)據(jù)庫(kù)中的試卷信息導(dǎo)出成Word格式試卷:examService.exportWord(eId);

    6)返回試卷生成成功信息

    可以看出,控制層只是調(diào)用Service層中的方法,而沒(méi)有方法的具體實(shí)現(xiàn)。Service服務(wù)層對(duì)象通過(guò)@Autowired注解,被注入控制器類中,這避免了實(shí)例化帶來(lái)的代碼耦合問(wèn)題。

    3.2.3 Service服務(wù)層

    Service服務(wù)層分為Service接口與ServiceImpl實(shí)現(xiàn)類,控制層直接調(diào)用Service接口但不用關(guān)心此接口的具體實(shí)現(xiàn)。這樣的分離隱藏了代碼的實(shí)現(xiàn)細(xì)節(jié),具有封裝性、高內(nèi)聚性的特點(diǎn)。Spring框架通過(guò)@Service注解將ServiceImpl注冊(cè)成服務(wù)類,存放于Spring容器中,供控制類調(diào)用。

    以ExamService中插入試卷方法的具體實(shí)現(xiàn)為例:插入試卷信息,需要向數(shù)據(jù)庫(kù)中exam、exam_question、exam_questiontype三張表中插入相應(yīng)數(shù)據(jù),考慮到數(shù)據(jù)一致性的問(wèn)題,使用Spring中的@Transaction注解,實(shí)現(xiàn)對(duì)插入試卷信息功能的事務(wù)管理。向數(shù)據(jù)庫(kù)中插入數(shù)據(jù)的方法在Dao層中實(shí)現(xiàn),因此ExamService需調(diào)用Dao層中examMapper對(duì)象的insert方法,Dao層的對(duì)象實(shí)例同樣通過(guò)@Autowired注解注入ServiceImpl類中。

    3.2.4 Dao數(shù)據(jù)訪問(wèn)層

    數(shù)據(jù)訪問(wèn)層主要對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,并將處理結(jié)果封裝成實(shí)體對(duì)象返回給服務(wù)層[5]。數(shù)據(jù)訪問(wèn)層采用MyBatis框架,通過(guò)Mapper.xml映射文件中的SQL語(yǔ)句,對(duì)數(shù)據(jù)庫(kù)進(jìn)行基本的 CRUD操作。通過(guò)在Spring配置文件中聲明Dao層所在的包名稱,Spring容器實(shí)現(xiàn)對(duì)Dao層中的Mapper接口以及Mapper映射文件的管理。Mapper接口與Mapper.xml映射文件一一對(duì)應(yīng),以方法名為id所對(duì)應(yīng)的配置內(nèi)容就是操作數(shù)據(jù)庫(kù)的SQL語(yǔ)句。例如examMapper接口中的insert(Exam exam)方法,在examMappper.xml映射文件中,有以下映射語(yǔ)句與其對(duì)應(yīng): insert sql

    3.2.5 Model模型層

    模型層中存放的是與數(shù)據(jù)庫(kù)中表相對(duì)應(yīng)的POJO(Plan Ordinary Java Object),表中的字段對(duì)應(yīng)模型中的成員變量。模型對(duì)象負(fù)責(zé)在數(shù)據(jù)庫(kù)中存取數(shù)據(jù),除此之外,層與層之間的數(shù)據(jù)傳輸也大量使用模型對(duì)象。

    4 系統(tǒng)核心功能的實(shí)現(xiàn)

    該系統(tǒng)的核心功能有:自動(dòng)、手動(dòng)生成試卷、導(dǎo)出Word格式試卷。其他諸如管理科目、知識(shí)點(diǎn)、題型、題目的功能都是為這兩個(gè)功能提供服務(wù)。

    4.1 遺傳算法實(shí)現(xiàn)自動(dòng)組卷功能

    遺傳算法是模擬達(dá)爾文生物進(jìn)化論,從而得到問(wèn)題最優(yōu)解的算法。傳統(tǒng)遺傳算法容易陷入局部極值,出現(xiàn)過(guò)成熟的情況[6]。該系統(tǒng)針對(duì)組卷這一實(shí)際場(chǎng)景進(jìn)行調(diào)參優(yōu)化,主要體現(xiàn)在:對(duì)題目采取實(shí)數(shù)編碼、對(duì)試卷采取分段實(shí)數(shù)編碼、有條件產(chǎn)生初始種群、變異算子的有效選擇。算法關(guān)鍵步驟如下所示:

    1)設(shè)計(jì)基因編碼:傳統(tǒng)的遺傳算法編碼使用二進(jìn)制編碼,即用一串二進(jìn)制數(shù)表示每個(gè)基因。該系統(tǒng)中改進(jìn)遺傳算法,采用實(shí)數(shù)編碼,用一個(gè)唯一實(shí)數(shù)表示每道題目。

    2)初始種群的設(shè)計(jì)與實(shí)現(xiàn):該系統(tǒng)在一定條件下產(chǎn)生種群。遺傳算法的實(shí)現(xiàn)封裝在geneticAlgorithm方法中,方法接受兩個(gè)參數(shù):questionDB題庫(kù)、expectExam期望試卷。產(chǎn)生種群操作,便是按照用戶期望的試卷信息,在滿足總分以及各題型數(shù)目的條件下,從questionDB中隨機(jī)選擇題目,形成初始種群。

    3)設(shè)計(jì)適應(yīng)度函數(shù):適應(yīng)度函數(shù)用來(lái)評(píng)價(jià)試卷個(gè)體的質(zhì)量。適應(yīng)度用浮點(diǎn)數(shù)表示,適應(yīng)度值越大,對(duì)環(huán)境的適應(yīng)能力越強(qiáng),被選擇繁殖后代的幾率越大[7]。因?yàn)樵诋a(chǎn)生初始種群時(shí)已經(jīng)考慮過(guò)題型、題量、試卷總分,因此現(xiàn)在只需要考慮試卷難度系數(shù)以及知識(shí)點(diǎn)覆蓋率。題目的難易等級(jí)[8]設(shè)計(jì)為5級(jí):很容易、容易、中等、困難、很困難,分別用5個(gè)0-1的小數(shù)表示。試卷難度系數(shù)P=第i題的難易等級(jí)值×分值/總分。知識(shí)點(diǎn)覆蓋率R=試卷中已包含的知識(shí)點(diǎn)數(shù)M/用戶期望包含的知識(shí)點(diǎn)個(gè)數(shù)N[9]。適應(yīng)度與知識(shí)點(diǎn)覆蓋率成正比;與試卷難度系數(shù)和用戶期望的難度系數(shù)之差的絕對(duì)值成反比,適應(yīng)度函數(shù)如下所示:

    [f=1-1-R*f1-EP-p*f2]

    其中f1和f2分別代表試卷知識(shí)點(diǎn)覆蓋率的權(quán)重以及試卷難度系數(shù)的權(quán)重,EP代表用戶期望的適應(yīng)度。

    4)算子的設(shè)計(jì)與實(shí)現(xiàn):遺傳算法共有選擇、交叉、變異三種算子。選擇算子的作用是從當(dāng)前群體中選出優(yōu)良個(gè)體,使它們有機(jī)會(huì)作為父代,產(chǎn)生后代個(gè)體[10]。該系統(tǒng)使用輪盤賭算法挑選試題,適應(yīng)度越大的個(gè)體被選中的概率越大。交叉是按照題型對(duì)兩套試卷中的題目進(jìn)行交換操作,整張?jiān)嚲砑幢憩F(xiàn)為分段多點(diǎn)交叉。變異操作是隨機(jī)對(duì)試卷中的一道題目進(jìn)行變異,系統(tǒng)改進(jìn)變異后算子的選擇操作:變異后的題目要求和原題目題型相同、題目id不同、知識(shí)點(diǎn)屬于用戶期望知識(shí)點(diǎn)集合與試卷中不存在知識(shí)點(diǎn)集合的交集。

    遺傳算法實(shí)現(xiàn)偽代碼如下:

    geneticAlgorithms(questionDB,expectExam)//入?yún)轭}庫(kù)和期望試卷

    count=1;//迭代計(jì)數(shù)器

    initMass(30,expectedExam,questionDB);//初始種群,種群個(gè)體數(shù)目為30

    while(種群中個(gè)體適應(yīng)度未達(dá)到期望適應(yīng)度))

    count達(dá)到最大迭代次數(shù)無(wú)結(jié)果,退出

    種群數(shù)量<=1,退出

    select(unitList,20);//選擇,選擇后的種群大小為20

    cross(unitList,15,expectedExam);//交叉,交叉后的種群大小為15

    if(種群中有個(gè)體適應(yīng)度達(dá)到期望適應(yīng)度) break;

    change(unitList,questionDB,expectedExam);//變異

    4.2 導(dǎo)出Word格式試卷功能的設(shè)計(jì)與實(shí)現(xiàn)

    該系統(tǒng)采用FreeMaker模板技術(shù),實(shí)現(xiàn)生成Word格式試卷的功能,該功能實(shí)現(xiàn)流程如下:1)制作Word模板,將需要改變的地方用占位符表述,保存為ftl(FreeMarker模板文件)類型文件;2)查詢所需數(shù)據(jù);3)處理包含圖片的試題信息:在ftl文件編碼時(shí),需要將圖片信息以base64編碼存儲(chǔ)在ftl文件中,文件末尾規(guī)定著各種資源的引用位置,而實(shí)際展示圖片的body部分只是做一個(gè)引用。因此,ftl文件需要改動(dòng)三個(gè)地方:base64編碼部分${imagesBase64},聲明資源引用位置 ${imagesXmlHrefString},body中的引用代碼。處理圖片信息,主要就是處理以上三個(gè)地方;4)用數(shù)據(jù)替換占位符,并寫入Word模板文件中。

    5 結(jié)束語(yǔ)

    該文描述了以遺傳算法為核心的基于SSM框架的自動(dòng)組卷系統(tǒng)的設(shè)計(jì)以及實(shí)現(xiàn)過(guò)程。通過(guò)一系列功能模塊,系統(tǒng)實(shí)現(xiàn)了對(duì)組卷過(guò)程的有效管理。目前該系統(tǒng)各模塊功能運(yùn)行良好,但是關(guān)于試題難易等級(jí)的設(shè)置,未有充足的反饋信息來(lái)支撐。因此,試題反饋模塊以及進(jìn)一步的組卷算法優(yōu)化是組卷系統(tǒng)未來(lái)需要考慮的。

    參考文獻(xiàn):

    [1] 黃國(guó)政. 基于遺傳算法的自動(dòng)組卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 南京: 南京理工大學(xué), 2008.

    [2] 李洋. SSM框架在Web應(yīng)用開發(fā)中的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2016, 26(12): 190-194.

    [3] 鄒紅霆. 基于SSM框架的Web系統(tǒng)研究與應(yīng)用[J]. 湖南理工學(xué)院學(xué)報(bào): 自然科學(xué)版, 2017, 30(1): 39-43.

    [4] 任曉鵬, 趙文兵, 張春平. 基于框架的Web系統(tǒng)開發(fā)研究[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2010, 31(4): 772-775.

    [5] 魏書寒. 基于SSM框架的圖書管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 工業(yè)控制計(jì)算機(jī), 2017, 30(7): 133-134.

    [6] 李勇, 曹廣益, 朱新堅(jiān). 一種基于復(fù)合交叉的實(shí)數(shù)編碼遺傳算法[J]. 計(jì)算機(jī)仿真, 2006(6).

    [7] 于淼, 王日宏. 改進(jìn)遺傳算法在自動(dòng)組卷中的應(yīng)用研究[J]. 計(jì)算機(jī)工程與應(yīng)用, 2008(25): 236-238.

    [8] 柳浪濤, 谷林. 自動(dòng)組卷系統(tǒng)試題難度和知識(shí)點(diǎn)覆蓋控制算法[J]. 西安工程大學(xué)學(xué)報(bào), 2015, 29(3): 320-324.

    [9] 黃艷峰, 陳濤. 基于改進(jìn)遺傳算法的智能組卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 煤炭技術(shù), 2009, 28(10): 150-151.

    [10] 夏愛(ài)月. 基于遺傳算法的自動(dòng)組卷系統(tǒng)研究與實(shí)現(xiàn)[J]. 電腦編程技巧與維護(hù), 2009(2): 94-95.

    猜你喜歡
    遺傳算法
    基于遺傳算法的模糊控制在過(guò)熱汽溫控制系統(tǒng)優(yōu)化中的應(yīng)用
    電子制作(2019年16期)2019-09-27 09:34:44
    遺傳算法對(duì)CMAC與PID并行勵(lì)磁控制的優(yōu)化
    基于自適應(yīng)遺傳算法的CSAMT一維反演
    基于遺傳算法的建筑物沉降回歸分析
    一種基于遺傳算法的聚類分析方法在DNA序列比較中的應(yīng)用
    基于遺傳算法和LS-SVM的財(cái)務(wù)危機(jī)預(yù)測(cè)
    遺傳算法識(shí)別模型在水污染源辨識(shí)中的應(yīng)用
    協(xié)同進(jìn)化在遺傳算法中的應(yīng)用研究
    軟件發(fā)布規(guī)劃的遺傳算法實(shí)現(xiàn)與解釋
    基于改進(jìn)的遺傳算法的模糊聚類算法
    邵阳县| 共和县| 许昌县| 大足县| 阜阳市| 松潘县| 鹤壁市| 平乐县| 阳新县| 会泽县| 锦州市| 陇西县| 延川县| 犍为县| 明星| 友谊县| 岐山县| 连云港市| 临沭县| 武强县| 禄丰县| 噶尔县| 江源县| 北安市| 庐江县| 昭觉县| 南川市| 高碑店市| 达拉特旗| 昭平县| 台北市| 共和县| 北票市| 东阿县| 集贤县| 德化县| 农安县| 白玉县| 雷山县| 盐山县| 吴旗县|