• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于LAMP的在線編程測評平臺的研究與實現(xiàn)

      2019-12-01 00:48:21李星儒北方民族大學
      數(shù)碼世界 2019年12期
      關鍵詞:題庫評測功能區(qū)

      李星儒 北方民族大學

      關鍵字:LAMP OJ 在線編程測評平臺

      引言

      隨著國內(nèi)外各大算法競賽的興起,如藍橋杯,ACM/ICPC等。各大高校也越來越重視學生算法編程能力的培養(yǎng),也吸引了不少學子前去參賽,我校也不例外。但是我校目前還沒有一個能投入使用的在線評測平臺。鑒于此,我們開發(fā)了基于LAMP的在線編程測評平臺。LAMP是指基于Linux的,使用Apache作為網(wǎng)頁服務器,MySQL作為數(shù)據(jù)庫系統(tǒng),PHP作為編程語言的網(wǎng)站建站方案。在線編程評測平臺是一個在線的判題系統(tǒng)。使用者可以在上提交多種程序源代碼,并交由平臺自動編譯測評。

      1 平臺功能設計

      1.1 前臺使用

      首先,系統(tǒng)部署完成后,用戶訪問系統(tǒng)網(wǎng)址,在導航欄上可見題庫、評測狀態(tài)等幾個功能區(qū)。在用戶登錄后且具有管理員權限時,會出現(xiàn)“控制臺”功能區(qū)。

      (1)題庫功能區(qū)

      題庫功能區(qū)是整個評測系統(tǒng)最核心的部分,在這個功能區(qū),可以看到諸如題目標題、題目難度、題目提交數(shù)和正確通過數(shù)等重要的信息。

      (2)評測狀態(tài)功能區(qū)

      從這個功能區(qū)可以看到整個服務器的評測狀態(tài)。該功能區(qū)展示了一個列表,詳細顯示了目前正在排隊的測試案例和正在測評的測試案例。

      (3)我的功能區(qū)

      這里是用戶中心。用戶可以從這個功能區(qū)看到至今為止的自身測評統(tǒng)計數(shù)據(jù):總提交數(shù)、總通過數(shù)、通過率等。

      (4)控制臺功能區(qū)

      打開控制臺功能區(qū),其中又細分為下列幾個小功能區(qū):題目管理、組卷管理、用戶管理欄目。

      2.2 數(shù)據(jù)庫設計概要

      平臺數(shù)據(jù)庫由 coder_questions、sessions、tests、submit、users五個表組成。其中,coder_questions用于存儲題庫里的題目,sessions用于保存用戶登錄憑證,tests用于保存組卷信息,submit用于保存用戶提交的代碼供后臺測評,users用于保存平臺注冊的所有用戶信息。

      2 平臺具體實現(xiàn)

      (1)頁面路由顯示過程分析

      對整個平臺訪問將自動重定向到index.php。這個文件是首頁路由文件,再根據(jù)指定的規(guī)則過濾用戶請求之后,它將根據(jù)用戶的要求呈現(xiàn)不同的頁面。首頁路由文件核心代碼如下所示:

      $path=$_SERVER[`REQUEST_URI`];

      $path=preg_replace("/(?[w&=%:+-]*)/","",$path);

      if(file_exists("../smarty/tpl/oj-".$file_name.".tpl"))

      $smarty->display("oj-$file_name.tpl");

      else

      header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");

      (2)題庫讀取顯示關鍵代碼分析

      如下面所示,頁面首先會向數(shù)據(jù)庫發(fā)送查詢SQL請求,請求讀取題庫信息。為防止保存時亂碼,題庫數(shù)據(jù)都是經(jīng)過base64編碼過的,因此讀取之后需要經(jīng)過base64解碼。最后顯示到屏幕上。

      $ret=mysqli_query($GLOBALS[`db_conn`],"SELECT`id`,`title`,`ac`,`come_from` FROM `coder_questions` WHERE`showable`= 1");

      for($id=0;$id

      $question[$id]=mysqli_fetch_assoc($ret);

      foreach ($question[$id] as $key => $value)

      if($key!=`ac` ) $question[$id][$key]=base64_decode($value);

      (3)題目答案代碼提交過程分析

      核心代碼如下所示,當頁面嘗試提交代碼時,會通過WebSocket與后臺服務器建立連接,然后將會話憑據(jù)(sessionid)、base64編碼后的代碼(code)等編碼為JSON數(shù)據(jù)后發(fā)送至后臺服務器。

      var ws = new WebSocket("ws://{$domain}:3698");

      ws.onopen = function () {

      var params={`sessionid`:info[`sessionid`], method:`push`,

      code:window.btoa(unescape(encodeURIComponent(editor.getValue()))),type:$("#lang").val(),qid:info[`qid`] };

      ws.send(JSON.stringify(params));

      }

      然后后臺服務器接收到前端發(fā)過來的代碼,會將其插入數(shù)據(jù)庫的submit表,等待系統(tǒng)測評。

      3 結語

      經(jīng)過長達1年的艱苦建設,我校在線評測系統(tǒng)終于初步建成。這極大地提高了我校計算機學院學生們的算法及編程水平,也為以后我校參加諸如藍橋杯等競賽的選手提供了訓練平臺,相信在優(yōu)越的條件下,我校相關專業(yè)學生能在算法類競賽取得更好的成績。

      猜你喜歡
      題庫評測功能區(qū)
      “勾股定理”優(yōu)題庫
      次時代主機微軟XSX全方位評測(下)
      次時代主機微軟XSX全方位評測(上)
      “軸對稱”優(yōu)題庫
      “軸對稱”優(yōu)題庫
      “整式的乘法與因式分解”優(yōu)題庫
      燒結混合機各功能區(qū)的研究與優(yōu)化
      山東冶金(2019年3期)2019-07-10 00:53:54
      攻坡新利器,TOKEN VENTOUS評測
      衡水市不同功能區(qū)土壤營養(yǎng)元素的比較
      Canyon Ultimate CF SLX 8.0 DI2評測
      中國自行車(2017年1期)2017-04-16 02:54:06
      大丰市| 察哈| 延寿县| 蓬溪县| 阿拉尔市| 霍州市| 资阳市| 贺兰县| 平谷区| 嘉兴市| 璧山县| 绵竹市| 通城县| 土默特右旗| 郑州市| 上饶市| 广饶县| 望奎县| 乌海市| 长岭县| 彩票| 东乌珠穆沁旗| 铁岭市| 印江| 师宗县| 永丰县| 太原市| 平凉市| 武汉市| 武威市| 日照市| 怀安县| 丰都县| 正定县| 武胜县| 怀仁县| 长沙县| 印江| 元朗区| 涟水县| 兴山县|