?

基于SSSDJ框架的智能組卷系統設計與實現

2023-06-25 04:07張旭易翔李雨桐王玲
現代信息科技 2023年7期

張旭 易翔 李雨桐 王玲

摘? 要:傳統考試需要人工出題、排版,設計答案和答題紙,撰寫上交學校的各種相關資料,工作量大,耗時長,因此設計了基于SSSDJ框架(Spring、SpringMVC、SpringDataJPA)的智能組卷系統,該系統提供智能組卷、題量分配、指定題目、題庫下載等功能。系統設計完成后對試卷模板進行了測試,測試結果表明,該系統能夠實現高效智能組卷的目標,并能夠同步生成各種所需材料。

關鍵詞:SSSDJ框架;智能組卷系統;交互式Web應用

中圖分類號:TP311.1? ? 文獻標識碼:A? 文章編號:2096-4706(2023)07-0042-04

Abstract: Traditional examinations require manual qureseion setting, typesetting, designing answers and answer sheets, and writing all kinds of relevant materials submitted to the school, which is a heavy workload and time-consuming. Therefore, an intelligent test paper generation system based on SSSDJ framework (Spring, SpringMVC, SpringDataJPA) is designed, which provides functions such as intelligent test paper generation, test volume allocation, designated questions, and test bank download. After the system design is completed, the test paper template is tested. The test results show that the system can achieve the goal of efficient and intelligent test paper generation, and can synchronously generate various required materials.

Keywords: SSSDJ framework; intelligent test paper generation system; interactive Web application

0? 引? 言

信息化技術以及計算機技術的不斷更迭,促使現代化教育與計算機技術相融合,傳統的考試方式也面臨著大變革。傳統考試方式需要耗費大量的人力成本和時間成本來組卷,很多學者針對此問題展開研究,有基于動態抽題算法設置適應度函數并構建系統流程[1],但組成試卷形式較單一,很難滿足多課程需求;有利用Springboot+Vue進行學生弱項分析[2],可以作為組卷的依據之一;有研究單一學科系統設計[3],不同學科會有不同的形式需求,因此較難擴展;還有基于遺傳算法[4]設計組卷策略,但算法復雜度較高。針對當前缺少操作簡單、界面清晰、功能便捷且能夠滿足多學科需要系統的現狀,力求通過提高組卷效率同時滿足特定教學需求的目的。

1? 研究背景

以某高校為例,出一份完整試卷需要編排“A試卷”“A試卷答案”“A試卷答題紙”“A試卷考試命題計劃表”“高校試卷送印審批登記表”,還需編排出一套滿足不同重復率的B試卷。從工作量上來說就是一個不小的“工程”,還需考慮其綜合性、實用性和針對性等。

2? 組卷系統軟件設計

2.1? 技術框架介紹

組卷系統的呈現方式是一種交互式網頁界面,JavaWeb是一種互聯網開發技術,基于JavaWeb可實現前后端開發分離,因此JavaWeb成為系統開發首選技術,早期JavaWeb是基于JSP[5]開發方式,這種開發方式效率較低,且開發過程中難以定位錯誤代碼段,不利于團隊分工合作,開發效果達不到預期,因此最終選擇以Springboot+Vue的開發方式設計智能組卷系統,旨在提高組卷效率,降低出卷時間成本。

2.1.1? 前端技術框架

Vue是一款用于構建用戶界面的JavaScript框架。它基于標準HTML、CSS和JavaScript而構建,并提供一套聲明式、組件化的編程模型。無論簡單界面還是復雜界面,Vue均可勝任。

前端采用prime Vue來編寫,prime Vue代碼編寫簡單,易于理解,方便后期代碼維護且利于后期系統界面更新,最突出的優勢在于可以對數據進行雙向綁定。相較傳統超鏈接進行頁面的切換與跳轉,prime Vue使用的是路由,而不用刷新頁面。prime Vue是單頁應用,加載時不用獲取所有數據和Dom,提高了加載速度,優化了用戶體驗。prime Vue的第三方組件庫豐富,使用方便,提高了開發效率。

2.1.2? 后端技術框架

Spring Boot實現了自動化配置,相對Spring來說只需進行一些必要的配置即可。在使用Spring的時候,需要編寫大量的xml配置文件,在這個xml配置文件中會書寫大量的Bean實例以及一些其他配置。而SpringBoot做了大量封裝,替代原有的xml配置,并做了簡化,使得代碼邏輯更加清晰,后期閱讀更加簡單。Spring MVC屬于SpringFramework的后續產品,已經融合在Spring Web Flow里面。Spring MVC分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易定制。

后端采用Spring Data JPA而沒有采用主流的Mybatis,Spring Data JPA簡化了接口層的開發,相對于傳統的JPA實現(hibernate-jpa、openJPA),如果使用SpringDataJPA完成代碼,可以做到DAO層零實現,還可提高封裝度。SpringData對JPA的實現提供了良好的API支持,可更加快速地完成對數據庫的操作——SpringDataJPA提供了一些常用的CRUD抽象方法,供直接調用。

2.2? 數據庫和模板設計

2.2.1? 數據庫

采用MySQL數據庫,MySQL性能卓越,服務穩定,很少出現異常宕機,開放源代碼且無版權制約,自主性強,使用成本低,軟件體積小,安裝使用簡單,易于維護、安裝并且維護成本低。MySQL不僅可以在Windows系列操作系統上運行,還可以在UNIX、Linux和Mac OS等操作系統上運行。因為有很多用戶選擇UNIX、Linux作為網站服務器,MySQL的跨平臺性保證了其在Web應用方面的優勢。雖然微軟公司的SQL Server數據庫是一款優秀的商業數據庫,但是其只能在Windows系列操作系統上運行。因此,利用MySQL數據庫的跨平臺性可將組卷系統移植到內網服務器上,適用于校園網服務。

建立“course”表,保存課程信息,包括課程名稱、課程代碼、所屬學院、測試學院、測試班級等字段;建立“question”表,保存考試題目,包括題目、答案、所屬學科、難度等級(基本、中等、提高)、題目類型(填空、選擇、判斷……)、題目ID、考核知識點、考核要求、分值等字段;建立“user”表,保存用戶信息,包括用戶名和密碼字段。

2.2.2? 建立試卷模板

采用xml語言預制試卷模板,標記占位符,利用后臺HashMap集合來存儲題目信息,最終生成考卷。Word本身具有非常強大的文字處理功能,是日常泛化使用的工具,而在組卷系統的設計中,技術問題聚焦于如何用Java操作Word。在基于技術選型后,發現XML是最佳的技術手段——首先用Office編輯Word樣式,然后另存為xml,將xml翻譯為FreeMarker模板,最后用Java來解析FreeMarker模板并輸出Word文檔。在繁瑣的試卷設計中,可以保留核心通用部分,而通過外部包的方式聯系Word和Java,替換Word模板中的占位符,使組卷系統可以隨意更改內容,使試卷本身具有內容易控,打印不變形,完全符合Office標準的優勢。標記方式如圖1所示。

2.3? 組卷系統核心算法設計

考慮到試卷的隨機性和綜合性,系統采用較為暴力的算法——按照比例隨機抽取。用戶在首頁設置基本、中等、困難三種難度題目所占百分比,系統按照用戶設置的百分比從數據庫中隨機提取不同難度的題目,同時將題目相關信息也都提取到系統中,為生成其他資料所用。流程圖如圖2所示,算法偽代碼如下:

AllQuestionList? ?- 所有題目列表

EasyPercent? ? - 基本題比例

MedPercent? - 中等題比例

HardPercent? ? - 困難題比例

QuestionNumber - 題目總量

EasyQuestionList-基本題列表

MediumQuestionList-中等題列表

HardQuestionList-困難題列表

QuestionList-所選中的題目列表

EasyQuestionList=AllQuestionList->Easy;

MedQuestionList=AllQuestionList ->Med;

HardQuestionList=AllQuestionList->Hard;

for(i=0;i

{

Start:

for(j=0;j

{

List=EasyQuestionList->random;

for(k=0;k

{

if (QuestionList[k].equals(list)==true)break;

}

if(k==QuestionList.length)

QuestionList[j]=list;

elsej--;

}

Medium,Hard->Start;

}

End;

QuestionList.put(“試卷.doc”);

2.4? 系統主要功能設計

2.4.1? 管理員登錄

進入系統會首先進入管理員登錄界面,需要輸入管理員賬號和密碼,賬號一般為命題人姓名全稱,密碼由管理員設置。由于涉及到教育保密問題,故未安排注冊功能,當前僅設置管理員可以進入系統。

登錄系統時,管理員輸入賬號和密碼,后臺通過UserController.Login()方法調用userService.Login()方法,通過userRepository.findAllByUsername()接口方法來判斷該用戶是否為管理員,若該用戶是管理員,則通過user.getPassword().equals(user1.getPassword())方法判斷密碼是否正確,密碼正確則進入系統,密碼錯誤則提示“密碼錯誤”;若該用戶不是管理員,系統則提示“該用戶非管理員”。

2.4.2? 智能組卷

管理員登錄成功進入系統后,可以編輯首頁信息,需要填寫對應的試卷信息(如學年、學期、課程名稱、課程所屬部門、課程編號、考試方式、使用學院、使用班級),還可調整基本、中等、困難三種難度題目的占比,以百分制形式輸入。點擊“設置”按鈕可進入設置界面,選擇題量分配,可分配題目類型、題目數量以及每題分值等。

管理員編輯試卷信息后,點擊“生成”按鈕,后臺通過MessageController.getMessage()方法獲取管理員所填寫的信息,調用questionService.FindAll()方法,通過questionRepository.findAllByCourseAndTypeAndLevel()接口方法獲取數據庫中該課程的所有題目,并按照難度分成EasyQuestionList、MediumQuestionList、HardQuestionList,將所有信息傳輸到testApplication類中,通過getRandomNumList()方法函數確保題目不重復,再通過test()方法中的組卷算法生成試卷,Answer()方法對應生成答案,answerSheet()方法對應生成答題紙,getSurplusProcess()方法對應生成命題計劃表,propositionalSchedule()方法對應生成送印審批表等。

2.4.3? 題庫下載

對于學生而言,學習是他們的本職工作,但每個學生的學習方式各不相同,而學校的教育方式基本上都大致相同,所以難免會有學生不能接受傳統的教育方式,學習成績自然也就一落千丈,而為了幫助這些同學更好地學習和復習知識,系統設置界面設有“題庫下載”功能,教師可自行下載一些題目提供給考生復習之用。題庫下載功能也能方便教師查看題庫中的現有題目,并且可以對題庫進行優化。

管理員進入設置界面,選擇題庫下載,鍵入課程名稱,后臺通過QuestionController.questionBank()方法獲取課程名稱,調用testApplication.questionBank()方法生成題庫,通過testApplication.bankCompress()將題庫壓縮為“bank.7z”格式,通過BankDownload()方法利用java中的output Stream文件輸出流將后臺打包好的文件傳輸給管理員。

2.4.4? 信息錄入

隨著教育研究的不斷深入細化,考題也需隨之更新,系統設置界面設有“題目錄入”功能,管理員可自行錄入新題,并對新題目做好標記。系統設置界面還設有“管理員錄入”功能,只可以在系統內部添加管理員,防止他人惡意登錄系統。

管理員進入設置界面后,選擇題目錄入,輸入新題相關信息,后臺通過QuestionController.save()調用questionService.

Save()方法,通過questionRepository.save()方法按照Question實體類的字段將管理員鍵入的題目保存到數據庫“question”表中。選擇管理員錄入,輸入新管理員的用戶名和密碼,后臺通過UserController.save()調用userService.Save()方法,通過userRepository.save()方法按照User實體類的字段將新的管理員賬戶加入“user”表中。

3? 功能實現

管理員輸入賬號密碼登錄系統后,鍵入試卷信息,后臺通過*Controller()方法獲取信息,通過testApplication.*()方法生成好試卷打包壓縮為“out.7z”后傳輸給管理員,圖3為管理員交互界面,首頁提示管理員若不設置題目數量,會按照默認的“5題填空、5題選擇、5題判斷、5題簡答、3題綜合”格式進行組卷,右上角會顯示當前登錄的管理員,組成的試卷上“命題人”即為當前登錄的管理員,設置界面設有信息錄入、題庫下載、題量分配、返回首頁等功能,需要退出系統可點擊管理員圖標,點擊“Exit”按鈕即可退出系統。圖4為組卷系統生成的試卷,利用圖3中管理員輸入的試卷信息,根據圖1試卷模板所生成,完全符合office格式要求。

4? 結? 論

經過測試得知,系統能夠高效率完成組卷任務,所生成的試卷符合考試要求,難易程度把握較合理,同時能夠兼顧考題的綜合性、實用性、針對性等。核心算法是一種較為暴力的組卷算法,使得所組成的試卷充滿不確定性,通過系統的其他功能可以對試卷題目進行人為控制,提高系統的完整性。根據每個學??荚嚨脑嚲砟0?,重新制作即可推廣使用,使系統的可擴展性很強。系統運行效率依賴于網絡性能,網絡癱瘓也會導致系統癱瘓,后期可根據需求改良為本地模式。

參考文獻:

[1] 胡榮.基于動態抽題算法的智能組卷系統設計 [J].信息與電腦:理論版,2021,33(12):42-44.

[2] 施展,朱彥.基于Vue與SpringBoot框架的學生成績分析和弱項輔助系統設計 [J].信息技術與信息化,2022(8):127-131.

[3] 魏路通.衛生統計學智能組卷系統設計與實現 [D].北京:北京協和醫學院,2021.

[4] 趙博,寧慧,張汝波.基于遺傳算法的智能組卷系統的研究與實現 [J].應用科技,2021,48(2):50-53.

[5] 楊子鑫,余小蘭.基于SSM的農產品銷售系統的設計與實現 [J].現代信息科技,2021,5(15):33-35+39.

作者簡介:張旭(1982—),男,漢族,江蘇宿遷人,講師,工學博士,研究方向:信息技術、網絡編程;易翔(2000—),男,漢族,江蘇溧陽人,本科在讀,研究方向:軟件技術開發;李雨桐(2001—),男,漢族,江蘇溧陽人,本科在讀,研究方向:軟件技術開發;王玲(2000—),女,漢族,江蘇鎮江人,本科在讀,研究方向:網絡技術。

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合