




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于Java的考試系統(tǒng)對C語言程序題的考核及自動判卷功能的設(shè)計與實現(xiàn)邵新慧李響等【論文摘要】在考試系統(tǒng)中,實現(xiàn)自動判卷是程序題考核設(shè)計的核心。圍繞該核心,開發(fā)設(shè)計“教師端程序題模板生成工具”、“學(xué)生端答題界面”、“服務(wù)端自動判卷邏輯業(yè)務(wù)”三個子模塊,以確保每一個程序題都有一個全面而準(zhǔn)確的判卷模板與之對應(yīng),學(xué)生可以方便快捷地在可編輯區(qū)域編寫代碼并進行測試和提交,判卷模板和學(xué)生代碼自動組合并編譯成一個可執(zhí)行程序,從而得到判卷得分臨時數(shù)據(jù)文件,考試系統(tǒng)通過讀取該臨時數(shù)據(jù)得到判卷結(jié)果?!菊撐年P(guān)鍵詞】考試系統(tǒng)程序題自動判卷 C語言 Java語言隨著計算機技術(shù)的發(fā)展,越來越多的考試采用上機考試的形式。對選
2、擇題、判斷題這類有固定答案的考試題型的判卷是很簡單的;然而,對程序題這種表述形式多樣化的題型,很難通過自動判卷給出合理的分?jǐn)?shù),多數(shù)是針對某一個運行結(jié)果進行判斷,未能滿足根據(jù)得分點進行判卷的需求。本文通過詳細介紹“教師端程序題模板生成工具”、“學(xué)生端答題界面”、“服務(wù)端自動判卷邏輯業(yè)務(wù)”三個模塊的設(shè)計,闡述了程序題自動判卷、以及合理評分的解決方案,在一定程度上提升了程序題考試的可行性、以及程序題判卷的合理性。1 自動判卷功能的設(shè)計方案1.1 設(shè)計思路由于考試系統(tǒng)的開發(fā)語言是面向?qū)ο笳Z言Java;程序題考核所用的語言為是C語言。所以很難通過代理模式實現(xiàn)對C語言程序的處理。因此,可將程序題判卷從系統(tǒng)
3、整體設(shè)計中獨立出來,兩者之間通過某個簡單的數(shù)據(jù)存儲建立聯(lián)系。其中,judgeMain.cpp文件是可以實現(xiàn)自動判卷、并將得分紀(jì)錄寫入記事本的源代碼文件。因此,只要獲得judgeMain.cpp文件,自動判卷問題就可以得到解決。1.2 設(shè)計方案獲取judgeMain.cpp文件,使考試系統(tǒng)整體設(shè)計和程序題自動判卷業(yè)務(wù)邏輯相對獨立,通過exec(String command方法編譯、鏈接、運行判卷程序。假設(shè)A:每個用于學(xué)生考試的考試模板都有一個與之對應(yīng)的判卷模板,該判卷模板通過輸出流生成一個記事本文件,并且學(xué)生在考試模板里填寫的內(nèi)容可以自動而正確地填寫到判卷模板里。假設(shè)B、有一個簡單可用的程序題模
4、板生成工具,通過該工具,結(jié)合某個欲要考核算法或知識點的源代碼文件,能夠簡單快速的生成一一對應(yīng)的考試模板和判卷模板。假設(shè)C、有一個嚴(yán)格規(guī)范而且靈活簡潔的程序題答題編譯界面,既方便學(xué)生填寫、編譯、運行程序,而且可以準(zhǔn)確地將學(xué)生填寫區(qū)域的代碼上傳到服務(wù)器。可見,假設(shè)B和C成立時,A成立,從而可獲得judgeMain.cpp文件。(1教師端程序題模板生成工具;(2嚴(yán)格而便捷的學(xué)生斷答題界面。2 教師端程序題模板生成工具2.1 功能實現(xiàn)為實現(xiàn)程序題自動判卷功能,設(shè)計程序題模板生成工具,并讓其實現(xiàn)以下功能:導(dǎo)入一個源文件,生成一一對應(yīng)的考試模板、判卷模板,并為生成的考試、判卷模板提供瀏覽、測試功能,以便及
5、時修改和調(diào)整。2.2 設(shè)計方法對源文件以注釋的形式添加一些特殊標(biāo)記,通過識別這些特殊標(biāo)記對源代碼自動修改或增添。例如:/code_fosOpen 開文件流標(biāo)記,在判卷模板中自動增加定義記事本文件的輸出流代碼;/code_fosClose 關(guān)文件流標(biāo)記,在判卷模板中自動增加關(guān)閉文件流和釋放內(nèi)存代碼;/code_judge 判卷變量標(biāo)記,設(shè)置得分點;/code_delete 挖空行標(biāo)記,所設(shè)置行變?yōu)橄聞澗€;/edit_function 編輯函數(shù)標(biāo)記,設(shè)置函數(shù),由學(xué)生編寫函數(shù)體;/code_resetInstance 修改用例標(biāo)記,為判卷模板和考試模板設(shè)置不同的測試用例。功能:在判卷模板中將考生答案
6、和正確答案進行對比。文件描述:(1頭文件(compare.h,文件內(nèi)容如右圖。(2靜態(tài)庫文件(compare.lib,為compare.h中聲明的方法提供具體實現(xiàn)。文件引用:#include"compare.h"#pragma comment(lib,"compare.lib"針對1中的不同標(biāo)記,該工具會自動生成相應(yīng)的按鈕,通過點擊按鈕和簡單的設(shè)置生成判卷、考試模板:(1判卷模板。點擊按鈕實現(xiàn)函數(shù)體編寫、代碼段填空、判卷變量的選擇,通過對判卷變量正確值的設(shè)置、以及判卷代碼插入位置的設(shè)置,可預(yù)覽、測試、生成判卷模板。(2考試模板。在判卷模板設(shè)置的基礎(chǔ)上,通
7、過對測試用例進行修改,可預(yù)覽、測試、生成考試模板,并具有相應(yīng)題目說明文件的編寫功能。2.3 原理解釋與圖解現(xiàn)結(jié)合一個簡單的例子對模板生成工具的原理進行解釋,并用圖解展示:第一步:選擇載入用于生成考試、判卷模板的.cpp源文件,然后根據(jù)按鈕提示,選擇挖空行、編輯函數(shù)、判卷變量等,并根據(jù)提示進行必要的設(shè)置(見圖3。附:為便于說明問題,此處以一個求取平方數(shù)的簡單程序為例,本例中只有一個判卷變量(對應(yīng)一個得分點的設(shè)置,對于較復(fù)雜的程序,可以設(shè)置多個得分點。第二步:點擊“預(yù)覽”菜單對將要生成的判卷模板進行預(yù)覽,初步查看是否正確,然后點擊“測試”菜單選擇對判模板進行自動編譯運行,若正常運行,轉(zhuǎn)步驟三;若失
8、敗,根據(jù)編譯運行的錯誤提示,返回步驟一進行修改設(shè)置。第三步:點擊“生成”菜單,選擇保存位置,即可生成判卷模板(見圖4。第四步:進行用例修改,修改后的用例用于生成學(xué)生考試模板(見圖5。第五步:預(yù)覽、測試運行,最終生成考試模板,并根據(jù)運行結(jié)果編寫題意說明文件(見圖6,圖7。3 學(xué)生端答題界面3.1 功能要求為嚴(yán)格保證自動判卷的實現(xiàn),同時滿足學(xué)生方便答題需求,學(xué)生端答題界面須滿足如下功能要求:(1無需啟動客戶端編譯器,學(xué)生直接在答題界面的可編輯區(qū)域編寫代碼,其他區(qū)域的代碼無法修改;(2具有便捷的編譯運行程序的功能,并提示編譯或運行錯誤;(3學(xué)生編寫的函數(shù)體和填寫的代碼段可準(zhǔn)確無誤上傳至服務(wù)端。3.2
9、 實現(xiàn)方法要點(1將題意說明和不可修改的源代碼部分顯示為只讀;(2識別考試源代碼中的“/添加函數(shù)實現(xiàn)代碼”字段,以及填空標(biāo)記下劃線“_”,將對應(yīng)區(qū)域設(shè)置為可編輯;(3在可編輯區(qū)域?qū)?yīng)的控制程序中添加鍵盤監(jiān)聽:實現(xiàn)對括號、引號的自動配對,以及換行時提供自動縮進,為學(xué)生快速編寫格式規(guī)范的代碼提供方便。由于僅提取學(xué)生編寫的函數(shù)題代碼和學(xué)生填空代碼段,只需提取可編譯區(qū)域的文本記錄即可,而且信息量小,因此可采用一般socket通信的形式(不用文件上傳等形式將代碼段上傳至服務(wù)端。3.3 例子與圖解(1將2中得到的考試模板和題意說明文件用于學(xué)生考試端程序題考試(如圖8;(2在函數(shù)編寫區(qū)域編寫代碼,將填空橫線
10、刪除并填寫代碼,然后直接點擊編譯運行(圖9。(3根據(jù)錯誤提示修改代碼,重新編譯運行(圖10。(4點擊交卷后,學(xué)生編寫的函數(shù)體和填空代碼行上傳至服務(wù)器(圖11。4 服務(wù)端自動判卷邏輯業(yè)務(wù)4.1 自動判卷業(yè)務(wù)設(shè)計基于模板生成工具、學(xué)生答題客戶端的設(shè)計和實現(xiàn),自動判卷邏輯業(yè)務(wù)設(shè)計如下:(1一般情況下:只需把學(xué)生上傳的答題信息寫入相應(yīng)的判卷模板中,然后生成臨時判卷源文件,針對這個臨時文件編譯運行即可得到判卷結(jié)果。(2異常情況:如果學(xué)生提交的程序沒來得及調(diào)試正常而存在死循環(huán),需要在A的基礎(chǔ)上進行如下改進:通過倒計時線程啟動判卷程序,倒計時線程結(jié)束后,若判卷程序還在運行,則殺死,并將異常記錄寫入數(shù)據(jù)庫。邏
11、輯圖如下(圖12。4.2 評分過程在考試、判卷模板制作過程中,可以根據(jù)每個題目的實際情況設(shè)計判卷(得分變量,并針對每一個判卷變量考核知識點難度設(shè)置得分權(quán)重(學(xué)生不知道具體的得分變量和權(quán)重。然后,將學(xué)生上傳的代碼插入到判卷模板中,生成judgeMain.cpp,針對每個得分點都會調(diào)用compare函數(shù)比較學(xué)生答案和標(biāo)準(zhǔn)答案,得到一個布爾型返回值,然后根據(jù)這個返回值在記事本文件(grade.txt里寫入1(得分或0(不得分。該自動判卷程序可滿足對一個程序題進行細節(jié)得分點的判斷,而不是籠統(tǒng)的僅僅判斷最終答案,在一定程度上保證了給分的合理性。中國論文榜-中國權(quán)威論文發(fā)表平臺,我們?yōu)槟峁I(yè)的論文發(fā)表咨詢和論文發(fā)表輔導(dǎo)! 5 結(jié)語 通過上述方案設(shè)計的程序題考核與判卷模塊, 是東北大學(xué)數(shù)值分析考試系統(tǒng) (可通過程序題考核學(xué)生對數(shù)值算法的理解與應(yīng)用能力)的重要組成部分, 該 考試系統(tǒng)的測試結(jié)果和初期使用情況證明:對于程序題考核和自動判卷,這樣的 設(shè)計方案是可行的、對判卷過程中的常處理是可行的,最終判卷結(jié)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025餐飲服務(wù)承包經(jīng)營合同樣本
- 導(dǎo)尿病人護理要點與流程
- 苗族女孩創(chuàng)意美術(shù)課件
- 2025年壓力容器管理人員試題
- 學(xué)生會權(quán)益部工作總結(jié)模版
- 2025年2月高一下學(xué)期入學(xué)考試生物試題總結(jié)模版
- 小學(xué)書法進校園活動總結(jié)模版
- 合同管理工作總結(jié)模版
- 新質(zhì)生產(chǎn)力策略
- 浙江省衢州市五校聯(lián)盟2024-2025學(xué)年高二下學(xué)期期中聯(lián)考試題 地理 PDF版含答案
- 建設(shè)工程質(zhì)量管理手冊范本
- 中國文化遺產(chǎn)資料長城100字
- 高中生物選擇性必修1基礎(chǔ)背誦 課件
- 中醫(yī)適宜技術(shù)操作規(guī)程及評分標(biāo)準(zhǔn)
- 2023-2024學(xué)年貴州省六盤水市小學(xué)語文六年級期末提升測試題詳細參考答案解析
- 江蘇南通軌道交通集團有限公司運營分公司社會招聘工作人員考試真題及答案2022
- 頸椎JOA腰椎JOA 評分-表格-日本骨科協(xié)會評估治療
- 人工智能時代小學(xué)勞動教育的現(xiàn)實困境與突破路徑 論文
- 野生動物管理學(xué)智慧樹知到答案章節(jié)測試2023年東北林業(yè)大學(xué)
- 國際友人在中國智慧樹知到答案章節(jié)測試2023年西北大學(xué)
- 函數(shù)的零點與方程的解(說課稿)
評論
0/150
提交評論