999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

湖南工學院ACM在線評測系統的設計

2020-06-11 09:26:16任長安羅慶云曹水蓮
電子技術與軟件工程 2020年1期
關鍵詞:比賽用戶系統

文/任長安 羅慶云 曹水蓮

(湖南工學院計算機與信息科學學院 湖南省衡陽市 421002)

1 引言

Online Judge(簡稱OJ)[1]系統是目前各高校程序設計類競賽中ACM 隊員的主要訓練平臺,該系統的評測方式不僅僅在各類大學生程序設計大賽上被廣泛使用,而且也在很多高校的程序設計類課程教學實踐中被頻繁采納[2]。本文針對湖南工學院師生在程序設計類課程、競賽等方面的實際需求,按照軟件工程規范,設計了一款ACM 在線評測系統(簡稱HGOJ),該評測系統不僅能夠滿足湖南工學院ACM 集訓隊隊員的日常訓練、比賽,而且教練或程序設計類課程教師也可以在該OJ 上布置編程類作業、考試測驗、答疑、數據統計等。

2 需求分析

2.1 開發工具選擇

HGOJ 的用戶基本上都是本校的ACM 隊員、教練以及擔任程序設計類課程的教師,對于一個專門用于程序設計類競賽、訓練的中小型web 系統來說,首先要保證系統的穩定性,在大量數據請求時也要能達到及時穩定的響應[3]。因此,考慮到這方面的需求,在HGOJ 的實現上可采用Go 語言,因為Go 語言采用的協程比多進程或者多線程更加高效可靠[4][5]。

2.2 用戶需求

對于用戶來說有以下幾個模塊的需求:

(1)用戶中心模塊。 在該模塊中,用戶中心能夠顯示用戶的頭像、用戶名、聯系郵箱、學校等基本信息,需要顯示用戶做過的題目列表和評測狀態列表。

(2)用戶題目模塊。在題目列表和題目詳情中,系統可以滿足用戶基本的做題需求,但是當用戶處于未登錄狀態時是無法提交代碼的。在評測狀態列表,用戶能查看自己的代碼,但是不能查看其他用戶代碼。

(3)用戶比賽模塊。在該模塊里,用戶能夠參加比賽,并在規定的時間內提交代碼,所以在比賽未開始時用戶是不能查看題目列表,同時也不能提交代碼。在比賽結束后,用戶能夠看到一個比賽榜單。

2.3 管理員需求

HGOJ 的admin 后臺管理比較復雜,在admin 后臺里,首要的就是權限問題,因為普通用戶是無法進入后臺的,主要分為以下幾個模塊:

(1)題目添加模塊。該模塊是HGOJ 核心的模塊之一,題目添加要保證添加題目的靈活性,管理員能夠方便的輸入測試用例,并且插入圖片也能很方便。

(2)題目列表模塊。該模塊比用戶端的題目列表需要增加修改和刪除功能。

(3)比賽添加模塊。該模塊管理員設置比賽時間要非常方便,并且添加題目時能根據題目id 添加,比賽添加要支持設置比賽是私有的還是公開的。

(4)比賽列表。該模塊管理員能查看比賽詳情,可以通過列表查看比賽進度、修改比賽、刪除比賽等。

圖1:HGOJ 評測流程圖

3 系統流程設計

HGOJ 系統的判題流程比較復雜,首先管理員需要登錄后臺并且在后臺添加題目,添加題目前需要準備好測試數據并壓縮。管理員把題目描述、輸入描述、輸出描述、輸入樣例、輸出樣例等數據輸入完成后,再把提前準備好的數據上傳到系統后臺數據庫,題目保存到后臺之中。題目添加完畢后,管理員可以選擇是否允許用戶查看,如果允許查看,那么用戶才能看到題目,如果用戶未登錄,則無法提交代碼。用戶登錄并提交代碼后,后臺會把源代碼和提交的題目信息數據寫入到數據庫,然后判題服務會讀取數據庫并且提取用戶提交的題目信息和源代碼,判題服務得到提交的題目信息和源代碼才能進行判題。判題服務通過使用多進程的方式執行用戶提交的代碼,采用Linux 系統特有的系統調用獲取程序的執行時間和運行內存,運行完用戶的程序后,判題服務會把程序的運行結果以及執行時間和運行內存寫入到數據庫,系統后臺得到執行的結果后會更新用戶數據,然后用戶就能看到程序執行的結果,并且這時候系統還會更新題目的做題數,如果是在比賽還要更新比賽排名、更新用戶排名等,如果判題結果錯誤用戶可以再次提交代碼進行判題,系統會再次更新數據。

因此,HGOJ 系統的評測流程主要應包括用戶提交代碼、系統保存用戶代碼、評測服務根據提交的代碼進行評測、評測服務得到運行結果、系統后臺更新數據庫、系統前端進行數據的展示[6],其評測流程圖如圖1 所示。

4 系統架構設計

HGOJ 主要由Beego、MySQL 數據庫、評測服務組成,用戶提交的代碼可存儲在一個數據庫中,評測服務讀取用戶代碼并根據題目id 進行評測,并把結果返回到數據庫中。設計模式采用ORM(Object Relational Mapping)模式,該模式可簡化數據庫的操作,HGOJ 在多數情況下只需要SQL 的增刪改查[7]。HGOJ 的后端架構圖如圖2 所示。

圖2:HGOJ 后端架構圖

圖3:HGOJ 系統功能模塊圖

用戶前端界面設計采用Bootstrap 布局,使得整體界面看起來美觀,使用戶的視覺體驗更好。

5 系統模塊設計

HGOJ 系統其主要功能應完成訓練、比賽、統計、管理等功能,因此其主要功能模塊應包含登錄管理、題目展示、比賽環境、訓練環境、判題沙箱、其他管理等模塊,其模塊圖如圖3 所示。

6 系統I/O設計

6.1 輸入設計

HGOJ 系統的輸入應滿足以下要求:

(1)用戶登錄注冊的時候只能根據要求填寫規定的類型數據,并且后端要驗證這些數據,后端要以接口的形式返回數據。

(2)用戶的用戶名和郵箱必須都唯一,這部分后端要嚴格限制,后端通過代碼邏輯進行限制,保證數據的唯一。

(3)用戶提交代碼的時候,必須要登錄才能提交并且只能提交代碼,不能提交跟代碼無關的內容。

(4)管理員錄入題目信息的時候嚴格根據格式錄入,要保證用戶能理解,并且測試數據合理。

6.2 輸出設計

HGOJ 的輸出包括前端代碼的顯示和后臺API 接口的數據返回,輸出應滿足以下要求:

(1)管理員提交題目后,在用戶端更新要及時,并且用戶提交代碼后要有反饋。

(2)用戶的每次提交操作,后端都要返回狀態碼和狀態信息,如果用戶提交的信息有錯,也要返回一個錯誤碼并且給出彈窗顯示錯誤信息。

(3)用戶提交的代碼,后端執行完后要給出結果,錯誤、編譯錯誤或者正確都要能顯示出來。

(4)后端返回數據統一格式,能根據返回的數據的狀態碼快速定位出錯原因。

7 界面設計

用戶界面的設計要簡單、明了,因為這是人和計算機兩者聯系的重介質。用戶可以通過界面設計與計算機進行交流,用戶向計算機輸入相關的數據、計算機用界面顯示的方式把的處理結果反映給用戶。所以,用戶界面設計必須要從用戶操作實際的角度去考慮:在HGOJ 系統中主要以簡潔友好的界面為原則,以體現出人機友好界面,并且每次的操作都有反饋。

7.1 用戶注冊界面

用戶注冊界面可提供注冊輸入框,包括注冊按鈕和登錄按鈕。用戶點擊注冊按鈕進行注冊信息的驗證并且會使用彈窗層組件進行提示,點擊登錄按鈕跳轉至登錄界面。

7.2 題目詳情界面

題目詳情界面顯示的信息主要包括題目標題、題目描述、輸入、輸出、樣例輸入、樣例輸出,頁面底端會顯示代碼的編輯框,編輯框里用戶能夠選擇編程語言并且提交相關的題目代碼。未登錄的用戶看不到輸入框,并且會提示用戶進行登錄,該操作可避免用戶防止過多的未知提交,從而減輕服務器的壓力。題目代碼的輸入框可使用ACE Editor,ACE Editor 是擁有豐富功能的Web 編輯器,支持多種語言,能夠替代IDE 進行代碼編輯,用戶不用再下載IDE就能在線寫程序,用戶提交完代碼,后臺就會進行判題,等到判題結束,就會跳轉到結果列表頁。

7.3 用戶個人中心

用戶個人中心顯示了用戶的用戶名、聯系方式、學校等基本信息,以及提交的題目列表和做題的分析圖表。用戶個人中心能非常直觀的看到用戶的做題數和解決的題目數,對于用戶的做題情況可以使用餅圖顯示,這樣用戶可以直觀的了解題目判題的情況,比如編譯錯誤、超時、運行錯誤、答案錯誤等,從而用戶可以根據這些信息進行有針對的訓練。

7.4 添加比賽界面

在該頁面的設計中,管理員只要填寫比賽標題以及比賽的開始和結束時間,然后添加系統存在的題目就能創建一場比賽,管理員創建完比賽后需要修改比賽時間等信息,也可以非常方便的修改。

8 結束語

該系統使用了B/S 架構、基于Web 的設計模式,使用Go 語言開發,使得后期的系統實現上容易完成,而且代碼量少、擴展性強、編譯和運行的速度快。HGOJ 系統的后期實現,不僅能夠滿足湖南工學院ACM 隊員的日常訓練、模擬比賽,而且也能幫助教練、老師完成課后的編程練習的布置、答疑、統計等,為學校教師開展程序設計類課程教學提供一個好的途徑。

猜你喜歡
比賽用戶系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
發芽比賽
大灰狼(2019年4期)2019-05-14 16:38:38
選美比賽
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
比賽
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
最瘋狂的比賽
智慧少年(2016年2期)2016-06-24 06:12:54
主站蜘蛛池模板: 直接黄91麻豆网站| 2020国产精品视频| 高清无码一本到东京热| 日韩高清中文字幕| lhav亚洲精品| 四虎影视国产精品| 国产欧美日韩综合一区在线播放| 在线免费看片a| 久久精品视频一| 人妻中文字幕无码久久一区| 亚洲一区国色天香| 波多野结衣AV无码久久一区| 国产成人久久777777| 九九这里只有精品视频| 亚洲欧美成人影院| 日韩精品一区二区三区免费在线观看| 亚洲精品人成网线在线 | 成人午夜福利视频| 亚洲欧美在线综合图区| 精品国产自在在线在线观看| 欧美一级专区免费大片| 免费毛片视频| 国产自产视频一区二区三区| 亚洲毛片在线看| yjizz国产在线视频网| 色播五月婷婷| 国产精品性| 中文字幕 日韩 欧美| 日本中文字幕久久网站| 看看一级毛片| 亚洲黄网视频| 日韩美毛片| 97精品久久久大香线焦| 亚洲成人在线免费观看| 色综合五月婷婷| 伊人久久福利中文字幕| 国产成人综合网| 国产精品嫩草影院视频| 色婷婷在线影院| 欧美中文字幕无线码视频| 99久久免费精品特色大片| 99久久精品国产自免费| 国产精品刺激对白在线| 在线观看精品国产入口| 精品少妇人妻一区二区| 国产精品亚洲专区一区| 亚洲第一极品精品无码| 啊嗯不日本网站| 美女国内精品自产拍在线播放| 亚洲人成网址| 一级毛片在线播放| 67194亚洲无码| 久久精品一品道久久精品| 香蕉在线视频网站| 亚洲欧美不卡| 久久99这里精品8国产| 中文字幕人妻av一区二区| 日韩 欧美 小说 综合网 另类| 91青青视频| 国产精品男人的天堂| 在线五月婷婷| 尤物成AV人片在线观看| 国产无码精品在线播放| 日韩无码真实干出血视频| 老司机aⅴ在线精品导航| 欧美中文一区| 欧美va亚洲va香蕉在线| 天天综合亚洲| 久久永久精品免费视频| 国产精品无码影视久久久久久久 | 国产综合网站| 高清乱码精品福利在线视频| 强奷白丝美女在线观看| 国产高清又黄又嫩的免费视频网站| 欧美成人精品一区二区| 精品视频在线观看你懂的一区| 97在线公开视频| 国产91麻豆视频| 亚洲视频四区| 国产精品一区二区无码免费看片| 沈阳少妇高潮在线| 综合色在线|