基于Java的考試系統對C語言程序題的考核及自動判卷功能的設計與實現-_第1頁
基于Java的考試系統對C語言程序題的考核及自動判卷功能的設計與實現-_第2頁
基于Java的考試系統對C語言程序題的考核及自動判卷功能的設計與實現-_第3頁
基于Java的考試系統對C語言程序題的考核及自動判卷功能的設計與實現-_第4頁
基于Java的考試系統對C語言程序題的考核及自動判卷功能的設計與實現-_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于Java的考試系統對C語言程序題的考核及自動判卷功能的設計與實現邵新慧李響等【論文摘要】在考試系統中,實現自動判卷是程序題考核設計的核心。圍繞該核心,開發設計“教師端程序題模板生成工具”、“學生端答題界面”、“服務端自動判卷邏輯業務”三個子模塊,以確保每一個程序題都有一個全面而準確的判卷模板與之對應,學生可以方便快捷地在可編輯區域編寫代碼并進行測試和提交,判卷模板和學生代碼自動組合并編譯成一個可執行程序,從而得到判卷得分臨時數據文件,考試系統通過讀取該臨時數據得到判卷結果。【論文關鍵詞】考試系統程序題自動判卷 C語言 Java語言隨著計算機技術的發展,越來越多的考試采用上機考試的形式。對選

2、擇題、判斷題這類有固定答案的考試題型的判卷是很簡單的;然而,對程序題這種表述形式多樣化的題型,很難通過自動判卷給出合理的分數,多數是針對某一個運行結果進行判斷,未能滿足根據得分點進行判卷的需求。本文通過詳細介紹“教師端程序題模板生成工具”、“學生端答題界面”、“服務端自動判卷邏輯業務”三個模塊的設計,闡述了程序題自動判卷、以及合理評分的解決方案,在一定程度上提升了程序題考試的可行性、以及程序題判卷的合理性。1 自動判卷功能的設計方案1.1 設計思路由于考試系統的開發語言是面向對象語言Java;程序題考核所用的語言為是C語言。所以很難通過代理模式實現對C語言程序的處理。因此,可將程序題判卷從系統

3、整體設計中獨立出來,兩者之間通過某個簡單的數據存儲建立聯系。其中,judgeMain.cpp文件是可以實現自動判卷、并將得分紀錄寫入記事本的源代碼文件。因此,只要獲得judgeMain.cpp文件,自動判卷問題就可以得到解決。1.2 設計方案獲取judgeMain.cpp文件,使考試系統整體設計和程序題自動判卷業務邏輯相對獨立,通過exec(String command方法編譯、鏈接、運行判卷程序。假設A:每個用于學生考試的考試模板都有一個與之對應的判卷模板,該判卷模板通過輸出流生成一個記事本文件,并且學生在考試模板里填寫的內容可以自動而正確地填寫到判卷模板里。假設B、有一個簡單可用的程序題模

4、板生成工具,通過該工具,結合某個欲要考核算法或知識點的源代碼文件,能夠簡單快速的生成一一對應的考試模板和判卷模板。假設C、有一個嚴格規范而且靈活簡潔的程序題答題編譯界面,既方便學生填寫、編譯、運行程序,而且可以準確地將學生填寫區域的代碼上傳到服務器。可見,假設B和C成立時,A成立,從而可獲得judgeMain.cpp文件。(1教師端程序題模板生成工具;(2嚴格而便捷的學生斷答題界面。2 教師端程序題模板生成工具2.1 功能實現為實現程序題自動判卷功能,設計程序題模板生成工具,并讓其實現以下功能:導入一個源文件,生成一一對應的考試模板、判卷模板,并為生成的考試、判卷模板提供瀏覽、測試功能,以便及

5、時修改和調整。2.2 設計方法對源文件以注釋的形式添加一些特殊標記,通過識別這些特殊標記對源代碼自動修改或增添。例如:/code_fosOpen 開文件流標記,在判卷模板中自動增加定義記事本文件的輸出流代碼;/code_fosClose 關文件流標記,在判卷模板中自動增加關閉文件流和釋放內存代碼;/code_judge 判卷變量標記,設置得分點;/code_delete 挖空行標記,所設置行變為下劃線;/edit_function 編輯函數標記,設置函數,由學生編寫函數體;/code_resetInstance 修改用例標記,為判卷模板和考試模板設置不同的測試用例。功能:在判卷模板中將考生答案

6、和正確答案進行對比。文件描述:(1頭文件(compare.h,文件內容如右圖。(2靜態庫文件(compare.lib,為compare.h中聲明的方法提供具體實現。文件引用:#include"compare.h"#pragma comment(lib,"compare.lib"針對1中的不同標記,該工具會自動生成相應的按鈕,通過點擊按鈕和簡單的設置生成判卷、考試模板:(1判卷模板。點擊按鈕實現函數體編寫、代碼段填空、判卷變量的選擇,通過對判卷變量正確值的設置、以及判卷代碼插入位置的設置,可預覽、測試、生成判卷模板。(2考試模板。在判卷模板設置的基礎上,通

7、過對測試用例進行修改,可預覽、測試、生成考試模板,并具有相應題目說明文件的編寫功能。2.3 原理解釋與圖解現結合一個簡單的例子對模板生成工具的原理進行解釋,并用圖解展示:第一步:選擇載入用于生成考試、判卷模板的.cpp源文件,然后根據按鈕提示,選擇挖空行、編輯函數、判卷變量等,并根據提示進行必要的設置(見圖3。附:為便于說明問題,此處以一個求取平方數的簡單程序為例,本例中只有一個判卷變量(對應一個得分點的設置,對于較復雜的程序,可以設置多個得分點。第二步:點擊“預覽”菜單對將要生成的判卷模板進行預覽,初步查看是否正確,然后點擊“測試”菜單選擇對判模板進行自動編譯運行,若正常運行,轉步驟三;若失

8、敗,根據編譯運行的錯誤提示,返回步驟一進行修改設置。第三步:點擊“生成”菜單,選擇保存位置,即可生成判卷模板(見圖4。第四步:進行用例修改,修改后的用例用于生成學生考試模板(見圖5。第五步:預覽、測試運行,最終生成考試模板,并根據運行結果編寫題意說明文件(見圖6,圖7。3 學生端答題界面3.1 功能要求為嚴格保證自動判卷的實現,同時滿足學生方便答題需求,學生端答題界面須滿足如下功能要求:(1無需啟動客戶端編譯器,學生直接在答題界面的可編輯區域編寫代碼,其他區域的代碼無法修改;(2具有便捷的編譯運行程序的功能,并提示編譯或運行錯誤;(3學生編寫的函數體和填寫的代碼段可準確無誤上傳至服務端。3.2

9、 實現方法要點(1將題意說明和不可修改的源代碼部分顯示為只讀;(2識別考試源代碼中的“/添加函數實現代碼”字段,以及填空標記下劃線“_”,將對應區域設置為可編輯;(3在可編輯區域對應的控制程序中添加鍵盤監聽:實現對括號、引號的自動配對,以及換行時提供自動縮進,為學生快速編寫格式規范的代碼提供方便。由于僅提取學生編寫的函數題代碼和學生填空代碼段,只需提取可編譯區域的文本記錄即可,而且信息量小,因此可采用一般socket通信的形式(不用文件上傳等形式將代碼段上傳至服務端。3.3 例子與圖解(1將2中得到的考試模板和題意說明文件用于學生考試端程序題考試(如圖8;(2在函數編寫區域編寫代碼,將填空橫線

10、刪除并填寫代碼,然后直接點擊編譯運行(圖9。(3根據錯誤提示修改代碼,重新編譯運行(圖10。(4點擊交卷后,學生編寫的函數體和填空代碼行上傳至服務器(圖11。4 服務端自動判卷邏輯業務4.1 自動判卷業務設計基于模板生成工具、學生答題客戶端的設計和實現,自動判卷邏輯業務設計如下:(1一般情況下:只需把學生上傳的答題信息寫入相應的判卷模板中,然后生成臨時判卷源文件,針對這個臨時文件編譯運行即可得到判卷結果。(2異常情況:如果學生提交的程序沒來得及調試正常而存在死循環,需要在A的基礎上進行如下改進:通過倒計時線程啟動判卷程序,倒計時線程結束后,若判卷程序還在運行,則殺死,并將異常記錄寫入數據庫。邏

11、輯圖如下(圖12。4.2 評分過程在考試、判卷模板制作過程中,可以根據每個題目的實際情況設計判卷(得分變量,并針對每一個判卷變量考核知識點難度設置得分權重(學生不知道具體的得分變量和權重。然后,將學生上傳的代碼插入到判卷模板中,生成judgeMain.cpp,針對每個得分點都會調用compare函數比較學生答案和標準答案,得到一個布爾型返回值,然后根據這個返回值在記事本文件(grade.txt里寫入1(得分或0(不得分。該自動判卷程序可滿足對一個程序題進行細節得分點的判斷,而不是籠統的僅僅判斷最終答案,在一定程度上保證了給分的合理性。中國論文榜-中國權威論文發表平臺,我們為您提供專業的論文發表咨詢和論文發表輔導! 5 結語 通過上述方案設計的程序題考核與判卷模塊, 是東北大學數值分析考試系統 (可通過程序題考核學生對數值算法的理解與應用能力)的重要組成部分, 該 考試系統的測試結果和初期使用情況證明:對于程序題考核和自動判卷,這樣的 設計方案是可行的、對判卷過程中的常處理是可行的,最終判卷結

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論