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

基于Linux的OnlineJudge在線提交環境的搭建

2017-07-05 12:49:01盧云宏侯文涵趙前張麗穎
電子技術與軟件工程 2017年12期

盧云宏++侯文涵++趙前++張麗穎++周世平

摘 要OnlineJudge(OJ)是基于圖形化用戶界面的在線評測系統,用于在線檢測代碼的正確性。本文利用python語言和Linux環境的命令行方式,為當前OJ設計并搭建一個基于Linux的純命令行在線提交環境,使用該環境可以在純命令行下向OJ提交題目。該環境成本低,占用資源少,運行速度快,服務端便于統一管理。

【關鍵詞】程序設計 命令行 在線提交環境(平臺)

1 前言

人機交互隨軟件技術的發展而進步,一直在按照用戶的期望向著友好、方便、自然的方向發展。人機交互從原始的命令行(Command Line Interface,CLI)到圖形化用戶界面(Graphical User Interface, GUI),再發展到現在的自然用戶界面(NaturalUserInterface, NUI)。雖然當前CUI已經不是主流了,但命令行技術作為更接近底層的文本模式,永遠不會過時。

隨著程序設計基礎教學的發展,各個高校紛紛建立OJ,但當前OJ平臺是基于圖形化用戶界面的,目前還沒有OJ平臺使用命令行界面。針對當前的情況,本文使用純命令行界面,設計并搭建了純命令行的OJ在線提交環境。作為日常使用,圖形化界面是方便且易于操作的,但作為服務器,圖形模式會占用大量的系統資源,尤其是內存。基于服務器的考慮,該環境的搭建借用Linux環境的命令行方式。系統終端為純文本,不使用圖形化界面,占用資源少,運行速度快,可以對資源有效利用。另外,該系統運行環境相對簡單,不需要太多的外部環境,客戶端不需要特殊環境搭建,可以通過終端方式(借用putty,ssh,Xshell等工具)實現登錄。

2 實驗平臺環境搭建

本文基于遠程登錄,ssh映射的原理,將OJ服務器與用戶之間增加一個Linux服務器和一個中轉服務器,搭建該環境。使用的搭建工具包括Linux服務器,OJ服務器,終端軟件。搭建提交環境步驟如下:

(1)實現端口轉發。因為Linux服務器使用的是局域網,只能在特定(124)網段使用,需要將端口轉發到中轉服務器的特定(6666)端口上才能實現外網訪問。

(2)創建固定數目的學生賬戶和老師賬戶。

(3)給賬戶設定權限。使學生之間不能互相訪問進入各自的目錄下,但教師用戶可以進入學生的目錄。

(4)將特定的功能分配到每個用戶,如設定提交指令。

這其中所有的操作通過shell腳本實現,每一個操作都建了一個腳本。

當前OJ的結構是用戶直接登錄到OJ服務器,本文將OJ服務器與用戶之間增加一個Linux服務器和一個中轉服務器,各個服務器與運行在Linux服務器中的服務程序構成了為本校OJ設計的命令行提交系統。用戶需要通過終端方式遠程登錄到Linux服務器,再進行相應操作,Linux服務器將登錄請求和提交題目操作傳遞到OJ服務器,OJ服務器再對這些操作進行相應處理,再通過服務器之間的連接將結果依次返回。但是Linux服務器不能被用戶直接訪問,用戶需要通過一個能被直接訪問到的服務器登錄到Linux服務器,所以我們將OJ平臺的服務器作為中轉服務器,靠ssh端口映射將中轉服務器與Linux服務器聯系起來。為了加以區別,本文將中轉服務器與OJ服務器分別表示。系統的數據交互體系結構如圖1所示。

3 系統實現

該系統實現的功能主要包括用戶登錄、代碼編寫及編譯、代碼運行、代碼暫存、用戶提交、結果返回。用戶通過終端程序,遠程登錄到Linux服務器,再登錄OJ賬號,連接到OJ服務器,進行想要進行的操作。代碼的編寫可以使用Linux系統中的編輯器(如vim等)。在終端中輸入“vimtest(文件名稱).c”,回車進入vim編輯器,進入編輯狀態(按a鍵),輸入代碼語句。輸入完成后,退出編輯狀態(按esc鍵),輸入“:wq”,按回車,可保存代碼文件且退出vim編輯器回到終端命令窗口。代碼的編譯可以依靠gcc命令,輸入“gcctest.c”編譯代碼,最后使用“./test.out”執行,查看結果。因為代碼的編寫、編譯、運行和暫存功能是在Linux服務器內部實現的,所以在這里重點介紹一下用戶登錄,用戶提交(包括結果返回)的過程。

3.1 登錄

通過終端程序遠程登錄到Linux服務器后,用戶要進行登錄賬號操作,通過命令行向Linux服務器提交登錄請求,Linux服務器接收到請求后,返回相應結果,用戶輸入賬號密碼。登錄具體操作通過python語言中的提交表單實現,服務程序將用戶輸入的賬號密碼提交到OJ服務器,OJ服務器對賬號密碼進行驗證。若驗證錯誤,則登錄失敗,將結果依次返回;若驗證正確,Linux服務器對登錄結果進行處理,判斷用戶是否屬于學生組,若是,則需要判斷學生是否使用的自己的賬號,檢測cookie是否有效,是則登錄成功,否則登錄失敗。不屬于學生組(屬于教師組)則只需檢測cookie是否有效。用戶登錄的流程如圖2所示。

3.2 題目提交

題目分為兩類,一類是OJ系統上普通的題目,可以任意選擇提交,需要輸入的參數有四個,格式如下:

--problem

其中第一個參數(problem)是題目的種類,第二個參數(Problemid)是題目序號,第三個參數(Code file)是代碼所在的文件,第四個參數(Language)是編程語言的種類。

另一類是作業題目,由學生將指定題目在規定時間內提交,需要輸入的參數如下:

--contest

第二個參數(Contestcid)作業序號,其他參數意義同上。

用戶提交的參數傳遞到Linux服務器,Linux服務器獲取到參數數據且未檢測到無異常后,程序會利用參數構造POST數據,如果線程不出現異常,學生提交的代碼會通過該程序的POST數據傳輸到OJ。OJ接收到數據后會進行提交、判題、檢測相似度和返回結果等操作。程序通過抓取網頁數據,返回抓取到的信息并顯示到命令行。學生提交題目流程如圖3所示。

4 結果分析

本文針對煙臺大學OJ(202.194.119.110)搭建了在線提交平臺,測試得到如下結果:命令行界面資源消耗少,占用內存少,運行速度優于圖形化用戶界面;對服務器配置要求低,成本低于圖形化界面;服務端實驗環境便于統一維護;暫存代碼功能相比u盤存儲,更加方便安全。另外學生使用該提交環境的同時增加了對命令行的使用,減少了對鼠標等外設的依賴。

5 總結

本文針對當前程序設計基礎教學中的需求,設計并搭建了基于Linux的在線提交環境,該環境實現了通過命令行提交代碼的一系列功能。命令行不需要頻繁地使用鼠標等其它交互手段,在熟練記憶命令的前提下,命令行的效率是所有的交互手段中最高的,通過使用該在線提交環境,可以快速便捷的進行命令行操作,提高了效率,節省了用戶的時間。使用者在使用該在線提交環境的同時,對命令行有了更深入的了解,也提高了自己操作計算機的效率。

參考文獻

[1]陳蒙,王鋒,鄧輝,季凱帆.基于Python的天文軟件命令行界面設計與實現[J].天文研究與技術,2015(02):196-203.

[2]李斌.怎樣在程序中與命令行程序交互[J].電腦編程技巧與維護,2015(12):95.

[3]房曉南,徐功文,孫云晨,張化祥,杜顏伶.基于.NET與在線評測的分布式程序設計教學實驗平臺[J].實驗室研究與探索,2013(11):351-354+380.

作者簡介

盧云宏(1972-),男,山東省煙臺市人。博士學位。現為煙臺大學計算機與控制工程學院講師。主要研究方向為程序設計和編譯技術。

作者單位

煙臺大學計算機與控制工程學院 山東省煙臺市 264005

主站蜘蛛池模板: 97视频在线观看免费视频| 欧美性久久久久| 国产在线小视频| 国产精品伦视频观看免费| 久久久精品国产亚洲AV日韩| 91丝袜在线观看| 久久久精品国产亚洲AV日韩| 国产凹凸视频在线观看| 中国毛片网| 高潮毛片免费观看| 青青草91视频| 欧美日韩中文国产| 亚洲国模精品一区| 最新亚洲人成无码网站欣赏网 | 亚洲日韩AV无码一区二区三区人| 色综合久久久久8天国| 日韩精品成人网页视频在线 | 国产精品久久久久久搜索| 久久毛片基地| AV老司机AV天堂| 国产亚洲精品97在线观看| 真实国产乱子伦高清| 亚洲一级毛片| 久久中文字幕av不卡一区二区| 免费人成视网站在线不卡| 国产精选小视频在线观看| 国产视频入口| 国产精品手机在线播放| 成人韩免费网站| 少妇被粗大的猛烈进出免费视频| 欧美中文字幕第一页线路一| 免费国产无遮挡又黄又爽| 欧美精品在线视频观看| 国产91特黄特色A级毛片| 国产不卡一级毛片视频| 亚国产欧美在线人成| 99久久性生片| 日韩成人在线网站| 欧美日本在线一区二区三区| 国产激情影院| 亚洲综合极品香蕉久久网| 日本精品视频| 亚洲中文无码av永久伊人| 久久久久亚洲Av片无码观看| 亚洲欧美日韩另类| 2020国产精品视频| 亚洲视频在线网| 亚洲精品午夜无码电影网| 欧美中文字幕在线视频| 狠狠色香婷婷久久亚洲精品| 国产精品粉嫩| 久久精品国产精品青草app| 福利一区三区| 91久久偷偷做嫩草影院精品| 久久午夜夜伦鲁鲁片无码免费| 色天天综合久久久久综合片| 精品伊人久久久久7777人| 九一九色国产| 亚洲天堂免费在线视频| 久久中文字幕av不卡一区二区| 特级精品毛片免费观看| 国产亚洲欧美日韩在线观看一区二区| 亚洲高清无码精品| 国产av剧情无码精品色午夜| 波多野结衣一区二区三区88| 亚洲第一成网站| 亚洲91在线精品| 亚洲激情99| 亚洲第一成网站| 18禁色诱爆乳网站| 亚洲精品国产综合99久久夜夜嗨| 国产精品任我爽爆在线播放6080 | 极品私人尤物在线精品首页| 中字无码精油按摩中出视频| 国产一级毛片高清完整视频版| 日本五区在线不卡精品| 农村乱人伦一区二区| 国内精品九九久久久精品| 国产一级二级在线观看| 一边摸一边做爽的视频17国产| 丁香婷婷在线视频| 成人国产精品一级毛片天堂|