[發明專利]一種程序作業自動批改的方法和裝置有效
| 申請號: | 201610673589.0 | 申請日: | 2016-08-15 |
| 公開(公告)號: | CN106326112B | 公開(公告)日: | 2019-02-15 |
| 發明(設計)人: | 方宏 | 申請(專利權)人: | 江蘇海事職業技術學院 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06Q50/20 |
| 代理公司: | 江蘇銀創律師事務所 32242 | 代理人: | 孫計良 |
| 地址: | 211170 江蘇省南京市*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 程序作業 方法和裝置 程序代碼 教師批改 測試用例執行 學生 內存占用 形式輸出 加載 加權 編譯 自動化 記錄 成功 | ||
1.一種程序作業自動批改的方法,其特征在于,包括如下步驟:
S1:獲取教師的作業題集和各個學生的作業程序數據;
S2:根據所述作業題集的作業題描述,對所述作業程序數據的程序代碼進行批改評分;
S3:以表格的形式輸出各個學生的作業評分數據;
其中,所述作業題集是作業題描述的集合;所述作業題描述包含有作業主題、程序執行時間限制、程序執行內存限制和測試用例集;所述測試用例集是測試用例數據的集合;所述測試用例數據包括測試輸入數據、測試輸出數據、標準執行時間、標準內存占用和測試通過分值;
所述作業程序數據包含有學生名稱和程序代碼;所述學生作業評分數據包含有學生名稱和作業評分值;所述步驟S2包括:
S21:初始化該學生的作業評分值為0;
S22:對該學生的程序代碼進行編譯,形成可執行代碼;如果編譯失敗,則完成對該學生的批改評分;如果編譯成功,則該學生的作業評分值加編譯成功分值;
S23:加載編譯后的可執行代碼;如果加載失敗,則完成對該學生的批改評分;如果加載成功,則作業評分值加加載成功分值;
S24:找出程序代碼所對應的作業題描述,然后根據作業題描述中的測試用例集中各個測試用例數據,通過執行所加載的可執行代碼對各個測試用例數據進行測試,然后通過對測試用例的測試過程中監控代碼執行時間、內存占用情況和測試用例通過情況進行評估,得到測試用例執行分值,將測試用例執行分值加入至作業評分值;
其中,
其中,Ti為第i個測試用例執行獲得的評分值,Si為第i個測試用例的測試通過分值;N為測試用例數;
第i個測試用例執行獲得的評分值其中,t為時間效率加權系數,通過以下方式確定:當測試用例執行時間小于標準執行時間時,t=1;當測試用例執行時間超過標準執行時間10%以內時,t=0.9;當測試用例執行時間超過標準執行時間20%以內時,t=0.8;當測試用例執行時間超過標準執行時間50%以內時,t=0.7;當測試用例執行時間超過標準執行時間100%以內時,t=0.6;否則為t=0.5,如果測試用例執行時間超過程序執行時間限制時,t=0;m為內存占用加權系數,通過以下方式確定:當測試用例執行時最大的內存占用小于標準內存占用時,m=1;當測試用例執行時最大的內存占用超過標準內存占用10%以內時,m=0.9;當測試用例執行時最大的內存占用超過標準內存占用20%以內時,m=0.8;當測試用例執行時最大的內存占用超過標準內存占用50%以內時,m=0.7;當測試用例執行時最大的內存占用超過標準內存占用100%以內時,m=0.6;否則為m=0.5,如果當測試用例執行時最大的內存占用超過程序內存占用限制時,m=0。
2.如權利要求1所述的程序作業自動批改的方法,其特征在于,所述作業題描述還包含有程序執行時間限制;所述步驟S24中當執行可執行代碼時,監控可執行代碼的執行時間;如果執行時間超過所述程序執行時間限制,則停止執行可執行代碼,并設定該測試用例的測試不通過。
3.如權利要求1所述的程序作業自動批改的方法,其特征在于,所述作業題描述還包含有程序內存占用限制;所述步驟S24中當執行可執行代碼時,監控可執行代碼執行的內存占用;如果內存占用超過所述程序內存占用限制,則停止執行可執行代碼,并設定該測試用例的測試不通過。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于江蘇海事職業技術學院,未經江蘇海事職業技術學院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610673589.0/1.html,轉載請聲明來源鉆瓜專利網。





