亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向云端的在線判題平臺研究與設(shè)計

        2020-01-08 14:10:19周奇張凱亮劉昊
        中國電氣工程學(xué)報 2020年20期

        周奇 張凱亮 劉昊

        摘要 對高校培養(yǎng)人才而言,不僅要培養(yǎng)學(xué)生掌握基礎(chǔ)的理論知識,而且需要培養(yǎng)學(xué)生自身編程的動手實踐能力,關(guān)于培養(yǎng)學(xué)生的自身編程能力方面,可以通過搭建一個在線判題平臺來滿足學(xué)生的需求。本課題在通過詳細的需求分析之后,以JAVA技術(shù)為核心,使用SpringBoot框架搭建一個Online Judge平臺。本平臺實現(xiàn)了平臺用戶添加登陸、權(quán)限管理模塊、題庫管理模塊、作業(yè)模塊、公開題庫模塊和競賽模塊,為在校師生提供一個高效、快捷的在線判題平臺。由于其能夠在線自動評判提交的代碼是否正確的功能,因此能夠減輕老師驗收代碼的教學(xué)任務(wù),極大地提高了效率,并且能夠使學(xué)生得到及時的反饋,對于培養(yǎng)學(xué)生自身編程的實踐能力方面具有非常大的提升。本說明書主要從系統(tǒng)分析分析、系統(tǒng)實現(xiàn)和系統(tǒng)測試三個方面對平臺設(shè)計與實現(xiàn)過程進行詳細的描述與說明,說明書共由六部分組成。

        關(guān)鍵詞 在線判題;Spring Boot;MySQL;VUE

        1 研究背景及意義

        隨著計算機技術(shù)的更新與迭代,高校此方面的教學(xué)內(nèi)容與方式也應(yīng)該隨之進步。關(guān)于教學(xué)內(nèi)容方面,在注重理論教學(xué)的同時也應(yīng)該更加注重對學(xué)生實踐能力的培養(yǎng);關(guān)于教學(xué)方式方面,傳統(tǒng)的編程作業(yè)的收發(fā)需要教師親自進行批改,對于學(xué)生而言,無法得到實施的反饋,對于教師而言,在日常繁雜的教學(xué)任務(wù)下,親自批改也可能會造成很大的工作壓力。綜上所述,一個能夠自動判斷提交代碼是否正確的在線判題平臺,能夠大大緩解教師的教學(xué)壓力,以及能夠使學(xué)生快速的得到反饋,使得教學(xué)質(zhì)量大大提升。

        如今可供學(xué)生參加的程序設(shè)計類算法競賽也越來越多,像比較出名的ACM/ICPC、藍橋杯以及各個地方舉辦的區(qū)域級和國家級比賽。學(xué)生參與這些比賽并且能夠拿到獎項,在某種意義上便是是對學(xué)校教學(xué)水平的肯定。因此各個高校對于程序設(shè)計類算法競賽越來越重視,紛紛搭建起各自的OnlineJudge(在線判題,之后簡稱為OJ)平臺。

        目前比較出名的杭電OJ、青島大學(xué)的QingDaoUOJ、開源的hustOJ來供學(xué)校學(xué)生進行算法題目的練習(xí)與競賽。這些OJ在搭建的同時都考慮到了自己學(xué)校自身的情況,可能在別的學(xué)校根據(jù)這些源碼進行搭建的時候會出現(xiàn)與學(xué)校自身狀況不相符的情況。一個良好的OJ不僅能體現(xiàn)出學(xué)校對于學(xué)生編程實踐能力的重視情況,也為學(xué)生提供了一個更加便捷與高效的平臺。

        搭建起本在線判題平臺后,教師或者競賽組織者對題庫進行維護然后布置作業(yè)或發(fā)布比賽供學(xué)生參加。對于教師而言能減輕批改學(xué)生提交上來的代碼的壓力,然后能拿出更多的精力放在教學(xué)內(nèi)容的優(yōu)化與提高方面,有利于相關(guān)專業(yè)的長遠的發(fā)展。對于學(xué)生來說,能夠得到及時的反饋,提高學(xué)到新知識之后的鞏固的速度,并且為有志于參加算法競賽的同學(xué)提供一個良好的平臺支撐,提高其參與感與算法水平。

        2 系統(tǒng)分析

        2.1 系統(tǒng)需求分析

        本在線判題平臺主要目標是為了在減輕教師的批改作業(yè)的壓力的前提下,同時使學(xué)生能夠在線提交編程作業(yè)以及能夠進行編程題目練習(xí),達到雙贏的效果。本平臺共分為五種角色類型,后期可以為各個賬戶動態(tài)分配權(quán)限,其中包含除供用戶操作的前端頁面和給其提供數(shù)據(jù)的后端服務(wù)器之外,還有判題服務(wù)器用于啟動代碼評測機對用戶提交的代碼進行判題。

        教師:主要負責(zé)發(fā)布作業(yè),可以選擇自己所管理的班級進行發(fā)布作業(yè)的操作,發(fā)布作業(yè)后可以從總題庫中選擇題目加入作業(yè)列表,并且在此之后可以查看學(xué)生的提交情況。若管理員分配了總題庫管理的權(quán)限,可以對總題庫的題目進行編輯。若管理員分配了公開題庫的管理權(quán)限,可以對公開題庫進行管理。

        競賽組織者:主要負責(zé)發(fā)布競賽,設(shè)置參賽碼后便可發(fā)布競賽,同時還可以添加臨時參賽者賬戶供校外學(xué)生來參加競賽。若管理員分配了總題庫管理的權(quán)限,可以對總題庫的題目進行編輯。若管理員分配了公開題庫的管理權(quán)限,可以對公開題庫進行管理。

        學(xué)生:可以通過公開題庫模塊進行日常的算法練習(xí),通過作業(yè)模塊來完成該學(xué)生所在的班級的教師布置的算法編程題目,以及通過競賽模塊輸入競賽組織者提供的參賽碼來進行算法競賽。

        臨時參賽者:臨時參賽者只擁有訪問競賽模塊的權(quán)限,賬號由競賽組織者提供,輸入競賽組織者提供的參賽碼后選擇相應(yīng)競賽便可參加比賽。

        超級管理員:負責(zé)賬號的添加與維護,對于已存在的賬號進行進一步的動態(tài)權(quán)限分配,以及班級的創(chuàng)建和班級成員的維護。

        2.2 功能模塊分析

        功能模塊分析是一個項目開發(fā)過程中必不可少的一個步驟。在項目進行具體實現(xiàn)前通過功能模塊分析,可以大致確定項目的主要模塊與功能。如果項目開發(fā)的過程中缺少這一步驟,對于后續(xù)的項目設(shè)計會帶來主要功能界限模糊的困擾。本項目用戶交互端和評測段在一起共分為六個模塊,下面將對本項目進行完整地功能分析:

        (1)用戶管理模塊:只有超級管理員才能進入此模塊,該模塊分為三個子模塊,分別為賬號管理、班級管理和權(quán)限管理。通過賬號管理模塊來進行用戶的添加與修改以及分配已經(jīng)創(chuàng)建好的權(quán)限類型;通過班級管理模塊來管理班級,并且還可以通過該模塊對班級的具體成員進行管理。

        (2)公開題庫模塊:該模塊可以由普通權(quán)限用戶進入來進行日常算法題目的練習(xí),擁有增刪權(quán)限的用戶可以新建公開題庫或編輯現(xiàn)在已有的題庫。除此之外,還可以對具體的某一個公開題庫進行權(quán)限設(shè)置,設(shè)置為只有特定用戶才能進入該題庫進行題目練習(xí)。

        (3)作業(yè)模塊:賬號類型為學(xué)生的用戶可以進入此模塊完成所在班級的教師布置的算法編程作業(yè)。賬號類型為教師的用戶則可以向自己所管理的班級進行發(fā)布作業(yè)的操作。作業(yè)發(fā)布完成之后還可以查看學(xué)生的提交情況。

        (4)競賽模塊:比賽組織者可以通過該模塊進行比賽的創(chuàng)建并設(shè)置參賽碼,還可以創(chuàng)建臨時賬號來邀請外校用戶來參加比賽。擁有權(quán)限的普通用戶可以通過該模塊進行算法競賽,并且查看比賽

        (5)總題庫模塊:本系統(tǒng)的所有題目均由本模塊管理,編輯權(quán)限只對由超級管理權(quán)分配增刪權(quán)限的用戶開放,而擁有公開題庫、競賽、作業(yè)模塊的增刪權(quán)限的用戶,可以進入此模塊向公開題庫、作業(yè)或者競賽中添加題目。

        (6)評測模塊:評測模塊負責(zé)對用戶提交上來的代碼進行評測。當(dāng)擁有參賽者權(quán)限、刷題權(quán)限和作業(yè)學(xué)生權(quán)限的用戶進行競賽、刷題和提交作業(yè)操作后,接收用戶提交的代碼然后進行編譯和評測,并將評測結(jié)果提交到數(shù)據(jù)庫中。

        2.3 用例分析

        2.3.1系統(tǒng)業(yè)務(wù)用例圖

        圖2-1 業(yè)務(wù)用例模型圖

        3 系統(tǒng)總體設(shè)計

        為了方便平臺用戶使用,本平臺總的共分為用戶管理模塊、公開題庫模塊、總題庫模塊、競賽模塊、作業(yè)模塊和評測模塊共六個模塊。通過這六個模塊,將整個平臺的業(yè)務(wù)囊括其中,為用戶提供一個高效、便捷的在線判題平臺。如圖3-1所示。

        圖3-1在線判題平臺系統(tǒng)功能結(jié)構(gòu)圖

        擁有總題庫權(quán)限的用戶登陸后,進入總題庫管理頁面,可以對題庫列表進行模糊查詢,也可以在此界面新增題庫,總題庫的實體類圖如圖3-2所示;選擇題庫進入之后,可以查看該題庫的題目列表(獲取題目列表的順序圖如圖3-3所示),也可以再此界面模糊查詢題目、修改此題庫信息和對該題庫的題目進行管理。

        擁有競賽、公開題庫和作業(yè)權(quán)限的用戶,可以進入到具體題庫選擇題目添加到競賽、公開題庫和作業(yè)的一個題庫之中。獲取到題庫中的題目列表后可以查看題目詳情并提交代碼。

        圖3-2總題庫實體類圖

        圖3-3獲取題目列表順序圖

        平臺總體E-R圖。如圖3-4所示

        圖3-4平臺總體E-R圖

        臨時賬戶和擁有競賽權(quán)限的學(xué)生可以進入競賽頁面查看所有的競賽列表,然后選擇要參加的競賽后輸入邀請碼,進入相應(yīng)的競賽頁面。進入競賽獲取題目列表后可以點擊題目查看題目詳情并提交代碼。

        比賽組織者賬戶進入競賽頁面后可以發(fā)布競賽,發(fā)布競賽時要輸入競賽名、簡介、開始時間、結(jié)束時間以及邀請碼;在競賽頁面還可以通過模糊查詢獲得競賽列表。進入相應(yīng)的競賽頁面之后,可以對該競賽的信息進行編譯,以及移除該競賽中的題目。競賽模塊的實體類圖如圖3-5所示。

        圖3-5競賽模塊的實體類圖

        4 系統(tǒng)測試結(jié)果

        系統(tǒng)測試主要是在系統(tǒng)上線運行前,驗證平臺是否按照功能需求保質(zhì)保量完成項目,同時檢測所完成功能是否有Bug。系統(tǒng)測試是項目結(jié)束的最重要過程,避免項目在上線使用時出現(xiàn)問題,影響用戶體驗,嚴重可能導(dǎo)致用戶信息或者資金受到損失。

        本平臺測試主要采用黑盒測試和白盒測試,黑盒測試主要通過平臺功能的正常使用流程檢測是否能夠正常運行;白盒測試主要體現(xiàn)在項目編寫過程中,我針對所編寫的接口編寫測試單例進行功能測試。

        通過對本平臺進行白盒測試,發(fā)現(xiàn)平臺設(shè)計時有些復(fù)雜邏輯問題存在一定缺陷,后期通過測試結(jié)果進行了相應(yīng)改正,最后測試問題已經(jīng)解決??傮w來說,最終的系統(tǒng)測試結(jié)果與前期項目功能設(shè)計相符合。通過用戶角色去體驗本平臺,界面設(shè)計簡潔美觀,操作不復(fù)雜,用戶使用體驗感良好。

        參考文獻

        [1]曹郁.基于Docker容器的微服務(wù)研究與實現(xiàn)[J].科學(xué)技術(shù)創(chuàng)新,2019(28):97-98.

        [2]黃俊勇.基于Spring框架的研究與設(shè)計[J].電腦知識與技術(shù),2018,14(03):116-117.

        [3]范開勇,陳宇收.MySQL數(shù)據(jù)庫性能優(yōu)化研究[J].中國新通信,2019,21(01):57.

        [4]李杉,賈彥平,達虎.Mybatis逆向工程在JavaEE中的應(yīng)用[J].通訊世界,2017(24):342.

        [5]呂宇琛.SpringBoot框架在web應(yīng)用開發(fā)中的探討[J].科技創(chuàng)新導(dǎo)報,2018,15(08):168+173.

        [6]高昂,魏惠茹,李曉東,李博.MVC設(shè)計模式研究[J].電腦知識與技術(shù),2016,12(01):88-89.

        [7]楊家煒.基于Spring Boot的web設(shè)計與實現(xiàn)[J].輕工科技,2016,32(07):86-89.

        [8]盧云宏,侯文涵,趙前,張麗穎,周世平.基于Linux的OnlineJudge在線提交環(huán)境的搭建[J].電子技術(shù)與軟件工程,2017(12):50-51.

        [9]李廣宏. vue.js前端應(yīng)用技術(shù)分析[J].中國新通信, 2019, 21(20): 115.

        [10]王志任. 基于Vue.js的開發(fā)平臺的設(shè)計與實現(xiàn)[D].廣東工業(yè)大學(xué),2018.

        [11]王寧,李潤東.OnlineJudge中反抄襲機制的研究和實現(xiàn)[J].湖南工程學(xué)院學(xué)報(自然科學(xué)版),2016,26(01):45-48.

        [12]喬平安,顏景善,周敏.基于Linux系統(tǒng)的構(gòu)建高性能服務(wù)器的研究[J].計算機與數(shù)字工程,2016,44(04):653-657.

        [13]郭嘉凱.RocketMQ:從阿里巴巴走向世界[J].軟件和集成電路,2018(11):56-60.

        [14]張文杰. 基于RocketMQ的消息服務(wù)系統(tǒng)設(shè)計與實現(xiàn)[D].華中科技大學(xué),2016.

        [15]張堯. 基于Nginx高并發(fā)Web服務(wù)器的改進與實現(xiàn)[D].吉林大學(xué),2016.

        [16]Fabian Trautsch,Steffen Herbold,Jens Grabowski. Are unit and integration test definitions still valid for modern Java projects? An empirical study on open-source projects[J]. The Journal of Systems & Software,2020,159.

        [17]Arief Ginanjar,Mokhamad Hendayun. Spring Framework Reliability Investigation Against Database Bridging Layer Using Java Platform[J]. Procedia Computer Science,2019,161.

        [18]Paolo Guagliardo,Leonid Libkin. On the Codd semantics of SQL nulls[J]. Information Systems,2019,86.

        [19]Serdar Yegulalp,Serdar Yegulalp. MySQL 8.0: More Unicode, less hassle[J]. InfoWorld.com,2016.

        [20]Gregory Barber. JavaScript[J]. Wired,2019,27(6).

        2020徐州工程學(xué)院大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(xcx2020016)

        亚洲国产一区二区三区在观看| 亚洲精品无码久久久久久| 婷婷四房色播| 中文字幕乱码人妻无码久久久1| 国产成人av三级三级三级在线 | 精品亚洲欧美高清不卡高清| 国产av一区二区内射| 中文字幕国产精品一二三四五区| 亚洲日韩一区精品射精| 国产乱人视频在线看| 亚洲中文字幕有综合久久| 国产实拍日韩精品av在线| 两个人看的www免费视频中文| 国产女人成人精品视频| 亚洲视频一区二区久久久| 中文字幕日韩有码在线| 一区二区三区人妻无码| 欧美二区视频| 成年女人18毛片观看| 天天做天天爱夜夜爽女人爽| 无码少妇a片一区二区三区| 精品少妇一区一区三区| 久久精品国产一区老色匹| 国产成人av乱码在线观看| 亚洲av区无码字幕中文色| 日本精品久久性大片日本| 丰满少妇被猛进去高潮| 无码av天堂一区二区三区| 亚洲永久精品ww47永久入口| 日本一区二区三区免费| 久久精品中文字幕无码绿巨人| 处破痛哭a√18成年片免费| 亚洲美女国产精品久久久久久久久| 国产精品亚洲av高清二区| 日韩放荡少妇无码视频| 日本成人一区二区三区| 日韩精品久久伊人中文字幕| 亚洲中文字幕无码av永久| 久久丫精品国产亚洲av| 国产不卡一区在线视频| 麻豆91蜜桃传媒在线观看|