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