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

ACM競賽在線測評系統設計與實現

2020-12-07 08:26:12鐘耀章
無線互聯科技 2020年18期
關鍵詞:用戶系統管理

鐘耀章,桂 瓊

(桂林理工大學,廣西 桂林 541006)

0 引言

ACM國際大學生程序設計競賽是由國際計算機協會(ACM)主辦的,比賽一般會有7~13個題目[1]。三個人一隊,共同使用一臺電腦,需要在5個小時內使用C/C++、Java和Python中的一種來編寫程序從而解決問題。在線測評系統(Online Judge,OJ)先前的目標是為了鍛煉參加ACM國際大學生程序設計競賽的參賽者們。除此之外,在實際的計算機教學環境中也起到了很大的作用,學生在學習計算機基本算法或者數據結構類似課程的過程時,常常不能知道自己設計的算法和實現的代碼是否完全正確而不能做出正確的判斷。特別是一些剛入門的程序設計愛好者常常不能對自己所寫的程序有一個很好的認識,在線測評系統憑借著嚴格的判題體系和大量的測試數據的優勢完美地解決了這個問題。在線測評系統對比人工評判有著如下的優勢:(1)效率高,人工評判時間漫長,不能讓學生及時地了解到自己那些方面的不足,在線測評只需要幾秒鐘就能完成測評并實時將結果反饋給用戶。(2)使用方便,你只需要有一臺能聯網的電腦就可以進行算法訓練,并且題目多樣性,大大提高學生的興趣。(3)公平性,不會存在人為主觀因素,系統是拿測試數據進行對比。本系統旨為算法愛好者提供一個在線學習、交流的平臺。

1 系統功能需求分析

1.1 系統總體框架

本次要開發的ACM競賽在線測評系統分為三個模塊:前臺服務模塊、后臺管理模塊、后臺測評模塊[2]。前臺服務模塊有:用戶注冊登錄、用戶找回密碼、修改個人信息、用戶排名、題目預覽、查看提交代碼和報名競賽等。后臺管理模塊有:用戶管理、比賽管理、題目管理和管理員注冊登錄等。后臺測評模塊有:代碼處理、代碼編譯、代碼測試。系統總體框圖如圖1所示。

圖1 ACM競賽在線測評系統總體框圖

1.2 前臺服務模塊分析

前臺服務模塊指的是本系統普通用戶使用的模塊,就是用戶打開瀏覽器輸入本系統的url即可訪問到系統,前臺服務模塊如圖2所示。

圖2 前臺服務模塊

(1)用戶注冊:使用本系統需要注冊一個用戶,輸入學號,密碼,名字,學校,專業班級,QQ,郵箱等。

(2)用戶登錄:使用本系統必須先登錄,如果想要通過url的方式直接訪問本系統,也會被系統攔截器攔下來。

(3)用戶找回密碼:當用戶忘記自己的密碼時,可以通過注冊時的學號和郵箱來修改新的密碼。

(4)修改個人信息:用戶可以修改除了學號的其他基本信息。

(5)用戶排名:用戶可以查看自己在本系統的排名,根據你的解題數和你的提交次數做一個排名。

(6)題目預覽:用戶點擊題目按鈕時,系統會以每頁10題的方式來顯示當前系統的所有題目。

(7)查看提交代碼:當用戶提交代碼后,系統會把用戶提交的代碼、運行時間、測評狀態、提交時間和使用的語言等信息存儲起來,用戶可以查看本題提交狀態和查看提交的代碼,也可以查看其他用戶提交的信息。

(8)報名競賽:用戶可以報名正在進行的競賽。

1.3 后臺管理模塊分析

后臺管理模塊是屬于管理員的模塊,可以對用戶、題目和競賽進行管理,后臺管理模塊如圖3所示。

圖3 后臺管理模塊

(1)管理員注冊:如果想登錄系統的后臺管理頁面,需要注冊一個系統管理員用戶。

(2)管理員登錄:必須要登錄才能訪問系統后臺管理模塊,如果直接通過url的方式訪問后臺頁面,也會被攔截器攔截并且跳轉到登錄頁面。

(3)用戶管理:管理員可以查看用戶,并且對其進行修改刪除操作。

(4)題目管理:管理員可以為系統新增題目、修改題目和刪除題目。

(5)競賽管理:管理員可以新增競賽、新增競賽題目和刪除競賽。

1.4 后臺測評模塊分析

后臺測評模塊對用戶提交的代碼進行處理,判定是C還是Java等,編譯代碼,編譯通過后運行代碼,測評結果是否正確,后臺測評模塊如圖4所示。

圖4 后臺測評模塊

2 系統詳細設計

2.1 系統功能設計

(1)用戶端:用戶需要通過瀏覽器,來訪問本系統,首先需要注冊成為本系統用戶,然后登錄使用本系統。用戶忘記密碼時,可以通過學號和電子郵箱來修改新密碼。登錄成功首頁有題目、提交、比賽、個人信息和排行榜等按鈕。題目頁面會以每頁10條數據進行分頁顯示題目,分別顯示題目標題、題目難度、通過率和提交狀態等信息。點擊題目標題將會跳轉到題目詳情頁面,在該頁面可以進行代碼提交。提交信息頁面分別顯示運行ID、提交用戶、題號、運行時間、測評結果、提交時間等信息,點擊運行ID會彈出模態框里面顯示該次提交的代碼。比賽頁面分別顯示競賽標題,競賽開始結束時間和競賽當前狀態。競賽狀態會根據競賽開始結束時間和系統當前時間做對比,分3種狀態:未開始、正在進行和已結束。用戶可以修改除學號之外的個人信息,查看用戶排行榜。

(2)管理員端:后臺管理模塊有用戶管理、題目管理和競賽管理功能。用戶管理有用戶修改和用戶刪除操作。題目管理有新增、修改和刪除題目操作。競賽管理有新增競賽、刪除競賽和新增競賽題目操作。

2.2 測評功能模塊設計

本OJ系統所支持的編程語言有C,C++,Java,整個測評功能模塊的工作步驟如下:

(1)獲取用戶提交的源代碼,如果是用戶使用的是C、C++語言的話,會把代碼保存在指定的文件夾下,XXXX.c或者.cpp的文件里,前面4位是系統隨機產生字符,這也是保證文件名不能相同。如果用戶選擇的是Java語言的話,首先Java的類名必須是Main,隨后生成XXXX.java文件。

(2)編譯源代碼生成的.c或者.java文件,系統會根據相應的文件調用不同的編譯器,C/C++生成.exe文件,Java生成.class文件,前面的4位隨機數和編譯前是一樣的。

(3)運行已經編譯好的.exe或者.class文件,運行文件進行數據的輸入輸出用來和錄入數據庫的測試用例對比,得到結果,并將測評結果實時反饋給用戶,測評功能模塊流程如圖5所示。

圖5 測評功能模塊

3 測評功能模塊實現

3.1 C/C++,Java編譯器

系統選擇C/C++的編譯器是WinGW,它是一個精簡的Windows平臺,支持C/C++、ADA編譯器,使用較為方便[3]。

Java編譯器選擇JDK,它為Java應用程序開發提供了編譯和執行環境,所有的Java寫程序都依賴于它。

安裝好編譯器和配置好環境后就可以直接使用cmd窗口執行命令調用相應的編譯器編譯運行C/C++或Java文件。

3.2 測評功能實現流程

(1)先獲取用戶提交的源代碼,判斷提交的是C/C++還是Java。

(2)將用戶提交的代碼存放在系統指定位置,并且C/C++命名為xxxx.c文件,Java命名為xxxx.java(用戶提交的Java代碼,類名必須為Main),文件名為隨機四位字符。

(3)編譯用戶提交的代碼,使用Runtime.getRuntime().exec方法可以調用cmd命令行窗口執行g++或者javac命令編譯.c和.java文件。

(4)執行編譯成功后的.exe文件或者.class文件,還是使用Runtime.getRuntime().exec方法調用cmd命令行窗口[4]。

Processprocess = Runtime.getRuntime().exec(“運行命令”);//執行編譯

BufferedWriter bout = new BufferedWriter();

bout = newOutputStreamWriter(process.getOutputStream());// 獲取子進程輸出流

bout.write(sampleInput);// 輸入數據庫的測試樣例

bout.close();

(5)將運行輸出的結果和數據庫測試數據進行對比,并將測評結果存放數據庫

例如用戶提交的是Java代碼,Java源碼測評程序流程圖如圖6所示。

圖6 Java源碼測評程序流程

4 結語

ACM國際大學生程序設計競賽是計算機界最有權威的競賽之一,也被稱為計算機界馬拉松。在線測評系統是一個功能性很強且綜合的系統,不僅要求會Java Web和數據庫的知識還要求實現頁面的簡潔美觀。本文對在線測評系統前臺服務模塊到后臺管理模塊和測評模塊做了詳細需求分析,著重介紹了實現在線測評的整個流程。系統設計已基本完成,能夠在線測評并實時將結果反饋給用戶。

猜你喜歡
用戶系統管理
棗前期管理再好,后期管不好,前功盡棄
今日農業(2022年15期)2022-09-20 06:56:20
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
“這下管理創新了!等7則
雜文月刊(2016年1期)2016-02-11 10:35:51
人本管理在我國國企中的應用
現代企業(2015年8期)2015-02-28 18:54:47
主站蜘蛛池模板: 国产视频久久久久| 色综合中文| 精品欧美一区二区三区在线| 精品福利视频网| 国产精品色婷婷在线观看| 99热6这里只有精品| 亚洲色图欧美激情| 爽爽影院十八禁在线观看| 欧美一区二区福利视频| 色综合激情网| 91小视频在线观看| 日本三级精品| 国产精品美女在线| 亚洲欧美人成电影在线观看| 高清欧美性猛交XXXX黑人猛交| 国产三级韩国三级理| 国产丝袜无码一区二区视频| 一本大道香蕉久中文在线播放| 欧美精品亚洲日韩a| 蝌蚪国产精品视频第一页| 国产精品9| 福利国产微拍广场一区视频在线| 久久精品免费看一| 国产美女无遮挡免费视频| 好吊色国产欧美日韩免费观看| 伊人色在线视频| 香蕉久久永久视频| 99视频在线观看免费| 亚洲最猛黑人xxxx黑人猛交 | 狼友av永久网站免费观看| 日本尹人综合香蕉在线观看| 视频二区中文无码| 成人福利在线视频| av在线5g无码天天| 中文字幕 欧美日韩| 综合色亚洲| 在线播放国产99re| 国产在线视频二区| h网站在线播放| 亚洲日韩高清无码| 亚洲综合二区| 精品久久蜜桃| 久久婷婷六月| 日韩高清在线观看不卡一区二区| 黄色网页在线播放| 男女精品视频| 国产毛片高清一级国语| 色天堂无毒不卡| 国产精品无码制服丝袜| 一级在线毛片| 国产91成人| 国产成熟女人性满足视频| 在线免费观看AV| 91成人在线观看| 无码精品国产dvd在线观看9久| 亚洲欧美日韩综合二区三区| 中文字幕丝袜一区二区| 98超碰在线观看| 欧洲一区二区三区无码| 青青青伊人色综合久久| 中文字幕有乳无码| 国产91麻豆免费观看| 无码精油按摩潮喷在线播放 | 偷拍久久网| 国产亚洲欧美在线专区| 免费av一区二区三区在线| 欧美伊人色综合久久天天| аv天堂最新中文在线| 亚洲swag精品自拍一区| 亚洲浓毛av| 国产人人乐人人爱| 在线五月婷婷| 暴力调教一区二区三区| 国产亚洲高清在线精品99| 亚洲91在线精品| 欧美va亚洲va香蕉在线| 色九九视频| 国产精品尹人在线观看| 亚洲精品天堂自在久久77| 欧美日在线观看| 欧美黄网在线| 乱人伦视频中文字幕在线|