• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于HUSTOJ的高級語言考試系統(tǒng)的設(shè)計與實現(xiàn)

    2018-04-27 11:51:38卜明磊浙江廣廈建設(shè)職業(yè)技術(shù)學(xué)院
    數(shù)碼世界 2018年4期
    關(guān)鍵詞:源碼進(jìn)程試卷

    卜明磊 浙江廣廈建設(shè)職業(yè)技術(shù)學(xué)院

    1 引言

    自第一臺計算機誕生至今,短短數(shù)十載,信息時代已然改變?nèi)藗兩a(chǎn)生活方式。本課題就是設(shè)計并實現(xiàn)一套基于HUSTOJ的高級語言考試系統(tǒng)。HUSTOJ遵守GPL協(xié)議,其開源的特性有利于實現(xiàn)代碼的二次開發(fā)并能為本系統(tǒng)所用。

    通過本高級語言考試系統(tǒng),管理員可以對教師、學(xué)生和題庫進(jìn)行管理,教師可以根據(jù)具體情況從已有題庫中選擇所需題目進(jìn)行人工組卷,也可對已有試卷進(jìn)行查看,更也可以查看每次考試的統(tǒng)計信息,而這些統(tǒng)計信息是計算機自動運用數(shù)學(xué)知識運算所得,即高效又準(zhǔn)確。學(xué)生可以通過考試系統(tǒng)完成在線評測并第一時間獲取自己成績,實時反饋,促進(jìn)教育教學(xué)良好有序進(jìn)行。

    2 HUSTOJ的分析

    HUSTOJ作為一個開源在線評測系統(tǒng)已經(jīng)被廣泛用于計算機程序設(shè)計比賽和編程能力測試中。通過分析它的源代碼我們可以發(fā)現(xiàn),HUSTOJ由core和web兩個文件組成, web主要用于存放數(shù)據(jù),core主要用于實現(xiàn)判題功能。其中,core分為三部分:judged(其中最核心部分是服務(wù)進(jìn)程源碼judged.cc)、judge_client(其中最核心部分是判題進(jìn)程源碼judged_client.cc)、sim(其中最核心部分是sim.sh,是一個第三方軟件,用于檢測相似度,防止作弊)。這里主要用到了judged和judge_client,因此在判題源碼分析中主要介紹服務(wù)進(jìn)程源碼和判題進(jìn)程源碼。

    2.1 判題源碼分析

    2.1.1 服務(wù)進(jìn)程源碼分析

    服務(wù)進(jìn)程代碼(judged.cc)是由519行C語言編寫的源代碼組成,總大小為13.4KB。該源代碼實現(xiàn)的主要功能在第485行至519行的main函數(shù)中得以表現(xiàn)。首先創(chuàng)建家目錄(默認(rèn)家目錄為home/judge)并進(jìn)入,在確認(rèn)輸入無誤后創(chuàng)建守護(hù)進(jìn)程,然后在確認(rèn)家目錄無誤且守護(hù)進(jìn)程尚未運行后配置數(shù)據(jù)庫信息,通過執(zhí)行SQL語句獲取符合要求的題目標(biāo)記值信息(這里是對應(yīng)的是題目的主鍵solution_id),之后計算機一直處于等待返回信息狀態(tài),一旦接收到對應(yīng)信號,則立馬結(jié)束判題服務(wù)進(jìn)程,如果進(jìn)程未結(jié)束則表示準(zhǔn)備就緒。接下來進(jìn)入循環(huán)體,該創(chuàng)建的守護(hù)進(jìn)程就正式成為執(zhí)行題目的判題守護(hù)進(jìn)程并開始起作用,直到出現(xiàn)錯誤或題目全部已經(jīng)答完。

    2.1.2 判題進(jìn)程源碼分析

    判題進(jìn)程代碼(judge_client.cc)是由1989行C語言編寫的源代碼組成,總大小為70.8KB。獲取題目solution_id并為之編號,在配置數(shù)據(jù)庫配置信息后驗證數(shù)據(jù)庫是否運行正常,結(jié)果(記錄在result中)共有0至13共14種情況,其中, result為4表示AC,即結(jié)果正確,其他數(shù)字對應(yīng)代表一種出錯情況。判題進(jìn)程源碼采用的是沙箱技術(shù),通過創(chuàng)建一個虛擬環(huán)境并在其中運行,待得出結(jié)果后刪除它。這就保證了系統(tǒng)的安全性。

    2.2 數(shù)據(jù)庫分析

    HUSTOJ數(shù)據(jù)庫共有17張數(shù)據(jù)表。中本系統(tǒng)調(diào)用的最主要數(shù)據(jù)表是記錄題目提交運行相關(guān)信息的表solution solution_id,problem_id,user_id,time,memory,in_date,result,language,ip,contest_id,valid,num,code_length,judgetime,pass_rate)和表 source_code(solution_id,source)。

    值得注意的是,HUSTOJ數(shù)據(jù)表中不存在外鍵,數(shù)據(jù)的完整性由web中的PHP代碼保證。

    3 系統(tǒng)模塊設(shè)計

    4 系統(tǒng)實現(xiàn)

    本考試系統(tǒng)功能分為四大模塊:用戶登錄驗證模塊、系統(tǒng)管理員模塊、教師模塊和學(xué)生模塊。

    4.1 用戶登錄驗證模塊

    首先輸入正確的姓名、密碼,并選擇相應(yīng)的身份,然后單擊登錄按鈕即可。如果輸入無誤,則進(jìn)入相應(yīng)界面,否則顯示錯誤提示信息。

    4.2 系統(tǒng)管理員模塊

    4.2.1 教師管理

    根據(jù)教師姓名、職稱和部門查詢教師信息,符合條件的教師信息(教師姓名、密碼、職稱、部門)以一張表格形式展現(xiàn),在信息的最后,管理員可以選擇修改該教師信息或刪除該教師信息。

    4.2.2 學(xué)生管理

    根據(jù)學(xué)生學(xué)號、姓名、專業(yè)和年級查詢學(xué)生信息,符合條件的學(xué)生信息(學(xué)生學(xué)號、姓名、密碼、性別、專業(yè)、年級)以一張表格形式展現(xiàn),在信息的最后,管理員可以選擇修改該學(xué)生信息功能或刪除該學(xué)生信息

    4.2.3 題庫管理

    根據(jù)題目內(nèi)容、題型、知識點和章節(jié)查詢題庫信息,符合條件的題庫信息(題目內(nèi)容、題型、知識點、章節(jié))以一張表格形式展現(xiàn),在信息的最后,管理員可以選擇修改該題目或刪除該題目。

    4.3 教師模塊

    4.3.1 人工組卷

    輸入試卷基本信息(試卷名稱、考試時間、選擇題數(shù)量、判斷題數(shù)量、填空題數(shù)量、程序題數(shù)量、選擇題分值、填空題分值、判斷題分值、程序題分值)后單擊提交,進(jìn)入組卷界面。單擊“選擇題”后題庫中的所有選擇題將顯示,教師可任意選取,不過必須與試卷基本信息中的題數(shù)相對應(yīng),否則最終提交將會無效。其他還有“填空題”、“判斷題”和“程序題”,于此類似。最后,單擊“提交”,在系統(tǒng)提示完成后組卷工作完成。

    4.3.2 人工閱卷

    從數(shù)據(jù)庫中選取該教師出的試卷,從中再選取未曾批改過的題目,將信息(學(xué)號、試卷編號、題目編號、考生答案、參考答案、機器批閱結(jié)果、是否已核對、更正)顯示出來。對于已核對的題目,則在“核對”中打鉤,并作為最終結(jié)果。如果遇到自動批改試卷有出路的地方,則在“核對”中選中之后還需在更正一欄中填入正確得分。

    4.3.3 試卷分析

    選中條件信息(學(xué)號、試卷編號、題目編號)進(jìn)行查閱試卷。在選中試卷條件之后單擊“查詢”,可以得到相應(yīng)學(xué)號、試卷編號、題目編號、得分、該題平均分以及排名統(tǒng)計信息。

    4.3.4 試卷查詢

    選中試卷條件信息(試卷編號、題目編號編號)進(jìn)行查詢。在選中試卷條件之后單擊“查詢”,可以得到相應(yīng)試卷編號、題目編號、試卷名稱、題目內(nèi)容和刪除信息。如果教師對該每一題目不滿意欲刪除,則可以通過單擊左鍵“刪除”來達(dá)到目的。

    4.3.5 成績查詢

    選中條件信息(學(xué)號、試卷編號)進(jìn)行查閱。在選中條件之后單擊“查詢”,可以得到相應(yīng)學(xué)號、試卷名稱、題目編號、得分、平均分信息。

    4.4 學(xué)生模塊

    4.4.1 進(jìn)入考試

    單擊導(dǎo)航欄中的“進(jìn)入考試”鏈接,顯示信息分為兩部分:功能區(qū)以及信息區(qū)。功能區(qū)位于上方。學(xué)生選擇試卷編號并單擊“進(jìn)入考試”按鈕進(jìn)入答題頁面。而信息區(qū)域顯示勵志故事,旨在激勵學(xué)生。答題頁面是本次考試試卷全部內(nèi)容。每一道題目由題號、題目內(nèi)容、題型和考生答案四部分構(gòu)成??荚囋凇翱忌鸢浮敝刑顚懘鸢负髥螕繇撁嫦路降摹疤峤弧卑粹o即可交卷。本系統(tǒng)采用系統(tǒng)自動閱卷功能,在學(xué)生提交答案后系統(tǒng)自動在后臺運行批改程序,在第一時間得到結(jié)果。

    4.4.2 成績查詢

    選中條件信息(學(xué)號、試卷編號)進(jìn)行查閱。在選中條件之后單擊“查詢”,可以得到相應(yīng)學(xué)號、試卷名稱、題目編號、得分、平均分信息。

    5 總結(jié)展望

    5.1 總結(jié)

    因為基于HUSTOJ的高級語言考試系統(tǒng)是一套能夠?qū)崿F(xiàn)計算機自動批改試卷的高級語言考試系統(tǒng),而本系統(tǒng)的研究重點是在LAMP( Linux + Apache + MySQL + PHP )的框架下,在自動程序判題系統(tǒng)HUSTOJ的基礎(chǔ)上進(jìn)行自行設(shè)計并創(chuàng)建一套高級語言考試系統(tǒng)。可以毫不夸張地說,這是一個新的領(lǐng)域,而我就是一個純粹地探索者——在網(wǎng)絡(luò)地幫助下(特別是百度、谷歌等搜索引擎的幫助以及CSDN等網(wǎng)站的幫助),功能基本實現(xiàn)。

    5.2 展望

    此次實現(xiàn)了高級語言考試系統(tǒng)的基本功能。其主要特色是借助HUSTOJ實現(xiàn)對程序的自動判題。由于本系統(tǒng)是開源系統(tǒng),而且是參照工程化的已有項目搭建完成,所以結(jié)構(gòu)清晰,編程規(guī)范,為以后編程人員解讀代碼或再次開發(fā)提供了保障??傊?,對于本系統(tǒng)的未來努力方向總結(jié)如下:

    (1)美觀性:增強界面美觀設(shè)計,使界面更符合大眾對審美的需求;

    (2)防作弊性:通過數(shù)學(xué)工具實現(xiàn)數(shù)據(jù)統(tǒng)計計算,達(dá)到防作弊的效果;

    (3)數(shù)據(jù)表現(xiàn)多樣性:對于各種統(tǒng)計信息,實現(xiàn)數(shù)據(jù)與圖形圖畫的轉(zhuǎn)換,實現(xiàn)諸如折線圖、圓餅圖等功能;

    (4)安全性:對于每次用戶登錄(特別是文本框等數(shù)據(jù)輸入),都要通過多種手段進(jìn)行安全驗證,比如正則表達(dá)式等。

    [1]張浩斌.基于開放式云平臺的開源在線評測系統(tǒng)設(shè)計與實現(xiàn)[J]. 計算機科學(xué)2012年增刊,第39 卷第11A 期:339-343,348.

    [2]何莉輝,梁滄.基于ACM 國際大學(xué)生程序設(shè)計競賽的學(xué)習(xí)模式[J].邊疆經(jīng)濟(jì)與文化,2008(6):95-96.

    [3]網(wǎng)絡(luò)教育_維基百科[EB/OL]. http://zh.wikipedia.org/wiki/Linux.

    [4]車明洙,紀(jì)洪波.一種基于ACM 程序設(shè)計競賽在線評測系統(tǒng)解決方案 [J].微型機與應(yīng)用,2010(4):11-13.

    猜你喜歡
    源碼進(jìn)程試卷
    基于網(wǎng)頁源碼結(jié)構(gòu)理解的自適應(yīng)爬蟲代碼生成方法
    基于圖神經(jīng)網(wǎng)絡(luò)的軟件源碼漏洞檢測方法
    計算機時代(2023年6期)2023-06-15 17:49:09
    企業(yè)如何保護(hù)源碼
    債券市場對外開放的進(jìn)程與展望
    中國外匯(2019年20期)2019-11-25 09:54:58
    Module5 A Trip Along the Three Gorges
    Module5 Great People and Great Inventions of Ancient China
    Module 4 Sandstorms in Asia
    Module 1 Europe
    基于數(shù)據(jù)結(jié)構(gòu)教輔系統(tǒng)的實驗課程改革
    計算機教育(2016年4期)2016-05-20 02:36:05
    社會進(jìn)程中的新聞學(xué)探尋
    区。| 托克逊县| 宣威市| 深水埗区| 资源县| 百色市| 金山区| 嘉荫县| 梁平县| 涞源县| 泾川县| 昌平区| 大石桥市| 蒙山县| 绥阳县| 新建县| 米泉市| 义乌市| 新和县| 荥阳市| 辰溪县| 边坝县| 丰宁| 台湾省| 抚州市| 临清市| 兖州市| 田林县| 平武县| 荣昌县| 天等县| 清涧县| 千阳县| 紫云| 库车县| 时尚| 石泉县| 临澧县| 湖北省| 阿拉善右旗| 定襄县|