一種在線判題系統(tǒng)的后臺處理方法及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及信息技術領域,尤其涉及一種在線判題系統(tǒng)的后臺處理方法及系統(tǒng)。
【背景技術】
[0002]代碼判題系統(tǒng)是基于開源的在線判題系統(tǒng)來實現的,可以作為公司招聘軟件工程師替代傳統(tǒng)筆試的系統(tǒng)、老師給學生出考卷的機試系統(tǒng)。該系統(tǒng)通過將答題者提交的代碼編譯成可運行的程序,并用系統(tǒng)預設好的多組測試用例來檢測程序的輸入輸出是否跟預設好的結果符合,如果完全符合,則判定該題目通過,反之,則判斷題目不通過并給出不通過的原因。
[0003]然而,一道題有多個測試用例,只要有一個測試用例執(zhí)行出錯,該題不得分,很可能答題者的整套試卷的總分會非常低,從而無法體現出答題者的真實水平。
【發(fā)明內容】
[0004]本發(fā)明實施例提供了一種在線判題系統(tǒng)的后臺處理方法及系統(tǒng),解決了只要有一個測試用例執(zhí)行出錯,該題不得分,測試結果準確性低,從而無法體現出答題者的真實水平的問題。
[0005]本發(fā)明一種在線判題系統(tǒng)的后臺處理方法,包括:
[0006]接收用戶錄入的題目答案信息;
[0007]根據答案信息和預設的至少兩個測試用例,計算至少兩個測試用例的困難值;
[0008]根據至少兩個測試用例的困難值和題目總分值計算至少兩個測試用例的默認分值。
[0009]可選的,根據至少兩個測試用例的困難值和題目總分值計算至少兩個測試用例的默認分值之后還包括:
[0010]生成分值分配操作界面,分值分配操作界面包括至少兩個測試用例的分值分配比例、默認分值及分值錄入對話框;
[0011]判斷用戶是否在分值錄入對話框中錄入新分值,若是,則為至少兩個測試用例分配新分值,若否,則保持默認分值。
[0012]可選的,
[0013]根據答案信息和預設的至少兩個測試用例,計算至少兩個測試用例的困難值具體包括:
[0014]把答案信息和預設的題目條件信息進行編譯得到代碼程序;
[0015]采用預設的至少兩個測試用例運行代碼程序,得到預設的至少兩個測試用例的占用內存值和處理時間;
[0016]根據預設的至少兩個測試用例的占用內存值或處理時間,計算至少兩個測試用例的困難值。
[0017]可選的,
[0018]至少兩個測試用例的分值分配比例表現形式包括餅狀圖、柱狀圖或折線圖。
[0019]可選的,
[0020]餅狀圖、柱狀圖或折線圖由內嵌統(tǒng)計軟件生成。
[0021]本發(fā)明還提供了一種在線判題系統(tǒng)的后臺處理系統(tǒng),包括:
[0022]接收單元,用于接收用戶錄入的題目答案信息;
[0023]第一計算單元,用于根據答案信息和預設的至少兩個測試用例,計算至少兩個測試用例的困難值;
[0024]第二計算單元,用于根據至少兩個測試用例的困難值和題目總分值計算至少兩個測試用例的默認分值。
[0025]可選的,
[0026]生成單元,用于生成分值分配操作界面,分值分配操作界面包括至少兩個測試用例的分值分配比例、默認分值及分值錄入對話框;
[0027]判斷單元,用于判斷用戶是否在分值錄入對話框中錄入新分值;
[0028]分配新值單元,用于若用戶在分值錄入對話框中錄入新分值,則為至少兩個測試用例分配新分值。
[0029]可選的,
[0030]第一計算單元包括:
[0031]編譯子單元,用于把答案信息和預設的題目條件信息進行編譯得到代碼程序;
[0032]運行子單元,用于采用預設的至少兩個測試用例運行代碼程序,得到預設的至少兩個測試用例的占用內存值和處理時間;
[0033]計算子單元,用于根據所述預設的至少兩個測試用例的占用內存值或處理時間,計算至少兩個測試用例的困難值。
[0034]可選的,
[0035]所述至少兩個測試用例的分值分配比例表現形式包括餅狀圖、柱狀圖或折線圖。
[0036]可選的,
[0037]餅狀圖、柱狀圖或折線圖由內嵌統(tǒng)計軟件生成。
[0038]從以上技術方案可以看出,本發(fā)明實施例具有以下優(yōu)點:
[0039]本發(fā)明中的,系統(tǒng)首先接收用戶錄入的題目答案信息;根據答案信息和預設的至少兩個測試用例,計算至少兩個測試用例的困難值;根據至少兩個測試用例的困難值和題目總分值計算至少兩個測試用例的默認分值。從而在原有系統(tǒng)的基礎上增加了依據測試用例屬性合理得出分值的功能。
【附圖說明】
[0040]圖1為本發(fā)明中一種在線判題系統(tǒng)的后臺處理方法一個實施例流程圖;
[0041]圖2為本發(fā)明中一種在線判題系統(tǒng)的后臺處理方法另一個實施例流程圖;
[0042]圖3為本發(fā)明中一種在線判題系統(tǒng)的后臺處理系統(tǒng)實施例結構示意圖。
【具體實施方式】
[0043]本發(fā)明實施例提供了一種在線判題系統(tǒng)的后臺處理方法及系統(tǒng),能夠提供在題目內依據測試用例屬性合理得出分值的功能。
[0044]請參閱圖1,本發(fā)明中一種在線判題系統(tǒng)的后臺處理方法,包括:
[0045]101、接收用戶錄入的題目答案信息;
[0046]在本實施例中,系統(tǒng)首先接收用戶錄入的一道題目中多個測試用例的答案信息,例如:一道題可以包括4測試用例,題目是計算一個數字的階乘,其中第I至4測試用例為分別計算3!、14!、25!、36 !;其中,答案信息包括可運行的輸入代碼和邏輯運算內容。
[0047]102、根據答案信息和預設的至少兩個測試用例,計算至少兩個測試用例的困難值;
[0048]在本實施例中,系統(tǒng)根據前面接收的測試用例的答案信息,計算至少兩個測試用例的困難值,具體計算規(guī)則將在后續(xù)實施例中進行說明。
[0049]103、根據至少兩個測試用例的困難值和題目總分值計算至少兩個測試用例的默認分值。
[0050]在本實施例中,系統(tǒng)能夠根據上述多個測試用例的困難值和題目總分值計算至少兩個測試用例的默認分值。
[0051]系統(tǒng)首先接收用戶錄入的題目答案信息;根據答案信息和預設的至少兩個測試用例,計算至少兩個測試用例的困難值;根據至少兩個測試用例的困難值和題目總分值計算至少兩個測試用例的默認分值。從而在原有系統(tǒng)的基礎上增加了測試用例分值分配的功會K。
[0052]請參閱圖2,本發(fā)明中一種在線判題系統(tǒng)的后臺處理方法另一個實施例,包括:
[0053]201、接收用戶錄入的題目答案信息;
[0054]在本實施例中,系統(tǒng)首先接收用戶錄入的一道題目中多個測試用例的答案信息,例如:一道題可以包括4測試用例,題目是計算一個數字的階乘,其中第I至4測試用例為分別計算3 !、14 !、25 !、36 !;其中,答案信息包括可運行的輸入代碼和邏輯運算內容。
[0055]202、把答案信息和預設的題目條件信息進行編譯得到代碼程序;
[0056]203、采用預設的至少兩個測試用例運行代碼程序,得到預設的至少兩個測試用例的占用內存值和處理時間;
[0057]204、根據預設的至少兩個測試用例的占用內存值或處理時間,計算至少兩個測試用例的困難值;
[0058]需要說明的是本技術方案中使用占用內存值和處理時間來表征