馮麗露 康耀龍 高曉晶 王濤


摘要:本文基于JSP、Spring、Mybatis、Mysql等技術(shù),設(shè)計(jì)實(shí)現(xiàn)了基于SSM框架的數(shù)據(jù)結(jié)構(gòu)在線評(píng)測(cè)系統(tǒng)。本系統(tǒng)是一個(gè)在線評(píng)測(cè)網(wǎng)站,提供了豐富的算法題目以及必要的交流論壇,用戶(hù)可以在網(wǎng)站內(nèi)提交自己的程序代碼,系統(tǒng)會(huì)自動(dòng)進(jìn)行編譯并返回結(jié)果,管理員可以實(shí)現(xiàn)添加題庫(kù)題目、查看學(xué)生答題記錄、導(dǎo)出學(xué)生成績(jī)等。本系統(tǒng)為用戶(hù)提供了一個(gè)練習(xí)數(shù)據(jù)結(jié)構(gòu)和算法的在線評(píng)測(cè)平臺(tái),方便學(xué)生在學(xué)習(xí)過(guò)程中更好地將理論同實(shí)踐結(jié)合,進(jìn)而充分發(fā)揮互聯(lián)網(wǎng)優(yōu)勢(shì),使學(xué)習(xí)效益最大化。
關(guān)鍵詞:在線評(píng)測(cè);信息管理;數(shù)據(jù)結(jié)構(gòu)
中圖分類(lèi)號(hào):G434? 文獻(xiàn)標(biāo)識(shí)碼:A? 論文編號(hào):1674-2117(2021)13-0086-04
數(shù)據(jù)結(jié)構(gòu)與算法的在線評(píng)測(cè)系統(tǒng)的主要用途是對(duì)用戶(hù)提交的程序代碼進(jìn)行自動(dòng)評(píng)測(cè),并將評(píng)測(cè)結(jié)果告知用戶(hù)。在線評(píng)測(cè)機(jī)對(duì)用戶(hù)提交的代碼進(jìn)行編譯、鏈接、執(zhí)行,并將程序最終執(zhí)行結(jié)果同預(yù)期輸出進(jìn)行比較。在線評(píng)測(cè)系統(tǒng)一般包括判題機(jī)、評(píng)測(cè)樣例存儲(chǔ)服務(wù)器、網(wǎng)頁(yè)服務(wù)器。
● 相關(guān)開(kāi)發(fā)技術(shù)
本系統(tǒng)采用當(dāng)下較為流行的JSP、Spring、Mybatis、Mysql技術(shù),這些技術(shù)發(fā)展較為穩(wěn)定,安全性高,容易上手編程。
JSP可以訪問(wèn)Servlet、Java Bean,同時(shí)支持在網(wǎng)頁(yè)中直接嵌入Java代碼。Spring為Java企業(yè)級(jí)項(xiàng)目應(yīng)用程序開(kāi)發(fā)提供了集成的整合框架。Spring利用控制翻轉(zhuǎn)和面向切面編程技術(shù)實(shí)現(xiàn)了低入侵式編程,降低代碼之間的耦合度。[1-2]Mybatis不會(huì)對(duì)應(yīng)用程序數(shù)據(jù)和數(shù)據(jù)庫(kù)表中已有結(jié)構(gòu)產(chǎn)生任何的負(fù)面影響,SQL語(yǔ)句在配置的Xml文件中管理,解除了原有設(shè)計(jì)過(guò)程中程序代碼同SQL語(yǔ)句的耦合,使得業(yè)務(wù)層邏輯同SQL語(yǔ)句分離,從而提高了代碼的可維護(hù)性和編程的易實(shí)現(xiàn)性。[3]
● 系統(tǒng)需求分析
①為了方便教師和學(xué)生通過(guò)互聯(lián)網(wǎng)進(jìn)行訪問(wèn),系統(tǒng)采用B/S進(jìn)行架構(gòu),免去了C/S架構(gòu)安裝的麻煩。學(xué)生在網(wǎng)絡(luò)環(huán)境良好的情況下就能進(jìn)行在線提交和在線討論。
②數(shù)據(jù)信息的保存需要安全可靠,所以,在數(shù)據(jù)庫(kù)選擇方面選擇關(guān)系型數(shù)據(jù)庫(kù)Mysql,同時(shí),為了應(yīng)對(duì)后期數(shù)據(jù)量增多導(dǎo)致查詢(xún)效率下降的問(wèn)題,需要對(duì)數(shù)據(jù)進(jìn)行分類(lèi)存儲(chǔ),對(duì)數(shù)據(jù)量較大的表另做分庫(kù)分表的設(shè)計(jì)。[4]數(shù)據(jù)庫(kù)中的表主要用于存放用戶(hù)信息、題目信息、提交記錄、評(píng)論內(nèi)容等。
③對(duì)不同登錄人員的權(quán)限控制。為了確保系統(tǒng)的安全性、穩(wěn)定性,要避免非授權(quán)用戶(hù)登錄后臺(tái)系統(tǒng)進(jìn)行的非法操作。
④系統(tǒng)對(duì)學(xué)生提交代碼具有評(píng)測(cè)功能,能對(duì)學(xué)生的解答做出校驗(yàn)。同時(shí)將信息反饋至學(xué)生,以便其能根據(jù)反饋有針對(duì)性地完善代碼,進(jìn)而通過(guò)測(cè)試。[5]
⑤系統(tǒng)具有統(tǒng)計(jì)、分析功能,能對(duì)學(xué)生提交的數(shù)據(jù)做出分析,能自動(dòng)計(jì)算出學(xué)生成績(jī),數(shù)據(jù)信息應(yīng)該方便教師查閱和導(dǎo)出。
● 數(shù)據(jù)結(jié)構(gòu)在線評(píng)測(cè)系統(tǒng)的設(shè)計(jì)
本系統(tǒng)從總體框架、基本功能、數(shù)據(jù)庫(kù)三方面進(jìn)行設(shè)計(jì)??傮w框架設(shè)計(jì)是對(duì)系統(tǒng)整體功能的邏輯規(guī)劃;基本功能設(shè)計(jì)是對(duì)詳細(xì)功能的設(shè)計(jì);數(shù)據(jù)庫(kù)設(shè)計(jì)根據(jù)所需數(shù)據(jù)表建立。
1.系統(tǒng)總體框架
該在線評(píng)測(cè)系統(tǒng)劃分為前臺(tái)門(mén)戶(hù)頁(yè)面和教師后臺(tái)管理兩部分,整個(gè)系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)采用的是瀏覽器/服務(wù)器架構(gòu)模式,用戶(hù)通過(guò)網(wǎng)站域名進(jìn)行登錄訪問(wèn),如圖1所示。
2.基本功能設(shè)計(jì)
系統(tǒng)前臺(tái)主要用于學(xué)生注冊(cè)和登錄系統(tǒng)、在線評(píng)測(cè)、查詢(xún)?cè)u(píng)測(cè)結(jié)果、交流討論、修改個(gè)人信息等;后臺(tái)主要用于教師對(duì)學(xué)生的學(xué)習(xí)情況進(jìn)行查閱,維護(hù)題目信息,添加評(píng)測(cè)數(shù)據(jù)等。
①網(wǎng)站首頁(yè):將網(wǎng)站內(nèi)容做一個(gè)整體的展示,具體包括題庫(kù)信息、登錄、注冊(cè)模塊、個(gè)人信息維護(hù)、在線評(píng)測(cè)等。
②題庫(kù)信息:主要包含待評(píng)測(cè)的數(shù)據(jù)結(jié)構(gòu)和算法題目信息,點(diǎn)擊相應(yīng)的題目標(biāo)題即可查看具體的題目描述。
③交流論壇:該模塊為學(xué)習(xí)者提供了交流平臺(tái),在學(xué)習(xí)的過(guò)程中學(xué)習(xí)者可以通過(guò)評(píng)論、問(wèn)答的方式向教師或同伴提問(wèn)。
④個(gè)人信息維護(hù):維護(hù)個(gè)人的賬號(hào)信息,包括用戶(hù)的頭像、昵稱(chēng)、郵箱、班級(jí)等信息。
⑤后臺(tái)總體信息概覽:查看題庫(kù)系統(tǒng)總體信息,包括注冊(cè)人數(shù)、題目數(shù)量、答題提交總量等。
⑥學(xué)生信息管理:管理和查看學(xué)生在網(wǎng)站的學(xué)習(xí)情況,包括學(xué)生的答題情況、學(xué)期末總成績(jī)等。
⑦題目信息管理:完成對(duì)題庫(kù)的維護(hù),增加新題目或刪除舊題目。
3.平臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì)
根據(jù)系統(tǒng)架構(gòu)和需求分析,數(shù)據(jù)庫(kù)中各類(lèi)實(shí)體可概括為用戶(hù)實(shí)體、題目實(shí)體、權(quán)限實(shí)體、提交記錄實(shí)體等。用戶(hù)實(shí)體主要用于保存用戶(hù)個(gè)人信息;題目實(shí)體主要用于保存題目詳細(xì)信息;權(quán)限實(shí)體主要用于記錄用戶(hù)權(quán)限信息;提交記錄實(shí)體用于記錄用戶(hù)的個(gè)人提交信息。用戶(hù)實(shí)體與權(quán)限實(shí)體之間存在權(quán)限關(guān)系,題目同用戶(hù)、提交記錄之間分別存在提交和答題關(guān)系。
● 數(shù)據(jù)結(jié)構(gòu)在線評(píng)測(cè)系統(tǒng)的實(shí)現(xiàn)
本文只介紹《數(shù)據(jù)結(jié)構(gòu)》在線評(píng)測(cè)系統(tǒng)中的部分核心功能,包括題庫(kù)搭建、評(píng)測(cè)邏輯、后臺(tái)管理、答題統(tǒng)計(jì)、成績(jī)分析。
1.題庫(kù)搭建
在題庫(kù)中展示了所有存儲(chǔ)在數(shù)據(jù)庫(kù)中的評(píng)測(cè)題目信息,用戶(hù)進(jìn)入題庫(kù)中點(diǎn)擊題目的標(biāo)題,進(jìn)入題目的詳情頁(yè)面,進(jìn)入后即可在題目右側(cè)的答題頁(yè)面進(jìn)行解題,如上頁(yè)圖2所示。題庫(kù)頁(yè)面核心代碼如圖3所示。
2.評(píng)測(cè)邏輯
測(cè)試系統(tǒng)以在線動(dòng)態(tài)編譯代碼的形式對(duì)代碼的正確性進(jìn)行校驗(yàn),代碼在線動(dòng)態(tài)編譯。當(dāng)用戶(hù)在線提交代碼后,后臺(tái)會(huì)返回一個(gè)評(píng)測(cè)結(jié)果,用戶(hù)可以根據(jù)服務(wù)器的返回結(jié)果來(lái)判斷提交的代碼是否正確。后臺(tái)判題業(yè)務(wù)邏輯核心代碼如圖4所示。
3.后臺(tái)管理
教師在后臺(tái)系統(tǒng)可以查看整個(gè)系統(tǒng)中的題目總數(shù)、用戶(hù)注冊(cè)人數(shù)、提交題目數(shù)等信息。
4.答題統(tǒng)計(jì)
在學(xué)生答題信息頁(yè)面可以看到學(xué)生在系統(tǒng)中的具體答題情況,如題目提交數(shù)、題目通過(guò)數(shù)、登錄系統(tǒng)的次數(shù)等信息。學(xué)生答題情況也會(huì)以列表的形式展示給教師,方便教師查閱學(xué)生答題情況。答題統(tǒng)計(jì)的核心代碼如下頁(yè)圖5所示。
5.成績(jī)分析
根據(jù)學(xué)生答題數(shù)統(tǒng)計(jì)學(xué)生學(xué)期末最后的成績(jī)信息,同時(shí)將學(xué)生答題信息以圖表的形式展示給教師,方便教師掌握學(xué)生學(xué)習(xí)動(dòng)態(tài)信息。
● 結(jié)束語(yǔ)
由于邏輯思路的多樣性,編程題目的評(píng)判一直是困擾教師批閱的一個(gè)難題。本系統(tǒng)根據(jù)學(xué)生提交的代碼信息進(jìn)行自動(dòng)評(píng)判,能夠?qū)W(xué)生提交的代碼進(jìn)行及時(shí)反饋,同時(shí)教師也可在后臺(tái)查看學(xué)生的學(xué)習(xí)記錄,減輕了教師的工作負(fù)擔(dān),同時(shí)也提高了學(xué)生的編程能力。經(jīng)過(guò)需求分析、設(shè)計(jì)、開(kāi)發(fā)、測(cè)試,該系統(tǒng)的用戶(hù)模塊、題目模塊、論壇模塊、評(píng)測(cè)功能模塊已經(jīng)比較完善,基本能滿(mǎn)足目前的教學(xué)需要,希望能為同類(lèi)型課程的教學(xué)改革提供一定的技術(shù)借鑒。
參考文獻(xiàn):
[1]牛懷崗,林關(guān)成.基于SSM框架的新聞發(fā)布管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2020,43(21):127-131.
[2]馮麗露,高曉晶,康耀龍.大數(shù)據(jù)分析下大學(xué)生行為記錄和分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)教育信息化,2019(09):73-76.
[3]潘璇,蔡祥睿,溫延龍,等.基于深度學(xué)習(xí)的數(shù)據(jù)庫(kù)自然語(yǔ)言接口綜述[J/OL].計(jì)算機(jī)研究與發(fā)展.[2021-03-06].http://kns.cnki.net/kcms/detail/11.1777.TP.20210301.1423.002.html.
[4]許謙,李元棟,王彧之.基于SQL Server的高校信息資源管理系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2020,43(20):115-118.
[5]蘭振奇,劉煒,張璐思,等.基于C/S模型的在線考試評(píng)測(cè)系統(tǒng)的設(shè)計(jì)[J].科學(xué)技術(shù)創(chuàng)新,2019(19):85-86.
作者簡(jiǎn)介:馮麗露,(1980.09—),女,漢族,山西省大同市人,講師,碩士研究生,研究方向?yàn)橛?jì)算機(jī)教育應(yīng)用、數(shù)字化學(xué)習(xí)資源建設(shè)。
基金項(xiàng)目:山西大同大學(xué)教學(xué)改革創(chuàng)新項(xiàng)目“新工科建設(shè)下數(shù)媒專(zhuān)業(yè)《數(shù)據(jù)結(jié)構(gòu)》課程PBL教學(xué)模式的研究”階段性成果(項(xiàng)目編號(hào):XJG2019202);山西大同大學(xué)教學(xué)改革創(chuàng)新項(xiàng)目“以競(jìng)賽為驅(qū)動(dòng)的創(chuàng)新型應(yīng)用人才培養(yǎng)模式研究”階段性成果(項(xiàng)目編號(hào):XJG2019208)。