999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關于C語言程序設計題自動評分算法的探究

2020-11-08 12:30:16許芝卉李建華
關鍵詞:程序方法

許芝卉,李建華

(山西大同大學數學與統計學院,山西大同 037009)

目前,計算機程序設計語言考試評卷軟件,對于客觀題的自動評分工作能很好地完成,但對于主觀題并沒有很好的解決方法。比如程序設計題,多數采用比對結果法,即根據程序運行出來的結果給出相應的評分,而對于考生程序的內容并不查看。在這樣的評分方案下,程序題的得分只有兩個,正確滿分,錯誤或沒有結果是零分。而程序設計題若有一個小小的錯誤(如語法錯誤)都不可能有結果,而考生也將丟失整個程序的分數,這與通常意義下的人工評閱試卷的結果是不一致的,文中就是探討一種接近傳統人工閱卷的計算機自動評分算法[2]。

1 C 語言程序設計題評分系統現狀與發展趨勢

C程序設計是國際上廣泛流行的計算機程序設計語言,在高等院校中,大多數非計算機專業的理科生都將C 程序設計語言作為一門必修課來開設,對該門課程的考核多數采用人工命題、人工閱卷評分的方法,采用這種方法往往效率不高,通常還會受到任課教師人為因素的影響,比如代碼不規范等等。這種人工評閱程序設計試卷的方法已經不能適應高等教育發展的需要了,而利用計算機實現無紙化考試是今后教育發展的需要,現在國家計算機等級考試就是采用的這種方式。對于客觀題的自動評分工作能很好地完成,但對于主觀題的評分還是沒有好的解決方案。比如常用的結果比對法還是不能很好地反映考生的真實水平,存在很大的不合理性[4]。

2 C 程序設計自動評分系統的流程設計與實現

對于C程序設計題自動評分主要從兩個方面著手,首先是要檢查程序的運行結果是否正確;其次是要檢查程序中的語法和程序中的邏輯是否合理。本系統的程序設計題自動評分可用結構化流程圖1。同一題目,每個人的編程思路和編程習慣是不相同的,當然程序運行結果也會有差異,錯誤也各種各樣,可能有的結果大致三種情況:(1)有結果文件,且編譯運行后得到正確結果;(2)有結果文件,但運行結果不正確;(3)沒有結果文件,源程序不能編譯運行。對于第一種情況,可利用結果比對法,對于第二種情況,說明程序代碼有問題,可能是邏輯錯誤也可能是輸出錯誤等,對于這種情況,需要針對程序中的一些特征屬性進行分析,并進行結構相似度匹配,綜合給出評分[2],對于第三種情況,那可能是由多種因素形成,需具體問題具體分析。

2.1 程序運行結果比對法

對于程序設計題中有運行結果的可通過比對考生的運行結果文件,若與標準答案中的結果完全一致,則可得滿分,若不完全一致,則可依據輸出數據的正確數量給予一定比例的得分[1]。

2.2 程序動態評分法

若考生程序出現無程序運行結果的情況,通常的處理方法為:(1)可以在C 系統下對程序進行模擬運行來獲得程序的運行結果;(2)若程序中有語法錯誤,則可根據語法分析來找出程序中錯誤的地方,去設計程序的改錯算法,改正考生程序中可能出現的錯誤,最終使程序能夠運行,當然錯誤信息仍需保留,若考生程序經過評閱修改得以運行,同時也獲得了正確結果,則可根據保留的錯誤信息來扣除對應的分數;(3)若利用上述方法設計仍無法運行或結果仍然不正確的情況,則可以采用下面的評閱方法[1]。

圖1 結構化流程圖

2.3 程序靜態評閱法

程序靜態評閱方法是指通過程序中的若干條語句靜態檢查來得到對應的評閱信息。首先本系統應做好準備工作,根據準備好的題目在考生題庫文件中設置若干條關鍵語句,然后根據關鍵語句的數量檢查學生程序的邏輯是否合理,并給出對應的分數值[1]。

3 動態和靜態相結合的評分方案和可行性

上述3種評閱方法,相對于只用結果比對成績的評閱方法是有積極意義的,但和人工閱卷按步驟評分有一定差別,主要針對高等院校理科專業學生期末考試而設計的,評分規模不大且測評語句的行數也不會太多。程序自動測評準確性的提高是本文要解決的主要問題[1],下面通過實例來探討。

例1編寫程序:通過輸入x的值,輸出y的值。

例2從鍵盤輸入10個學生的成績放入score數組中,統計并輸出這10個學生的平均成績。

下面是例1 和例2 的C 程序設計題的人工評分標準。

例1 C程序如下:

例1 中若輸入函數寫成這樣scanf(“%d”,x); 編譯時不顯示語法有錯誤,再比如y=2*x-1; 若寫成y=2x-1;出現這樣的錯誤程序都不會有結果。例2中最容易錯的就是sum=0; 語句的位置,若位置錯了就不能出現正確結果。若采用結果比對法就是零分,若是人工閱卷只會失去很少的分數。為了避免這種情況的發生就需要采用動態和靜態相結合的評閱方法[4]。

C程序設計題的評分方案應從如下幾個方面來探討:

(1)通過程序運行結果來評定;

C 程序有自己的特殊性,在程序設計中可以通過設置,把程序運行結果的數據保存成數據文件,學生考試結束后,就可以根據這個數據文件中的結果與標準答案進行比對,而標準答案文件在抽取試題時已經生成。

(2)通過對源程序進行修改的方法進行評定;

C程序文件可以作為文本文件進行讀和寫的操作,C 程序經過編譯運行可能會出現兩種情況:有運行結果但不正確或沒有運行結果。若程序沒有運行結果大致的原因是這幾個方面:出現死循環、有語法錯誤、有語句問題,通過分析我們去找錯和改錯,當然要盡可能地把程序中的語法及語句錯誤標記出來,生成錯誤文件;同時也要保證學生所編寫程序正確的那些部分不被破壞。學生程序經過修改沒有問題后,可生成修改后的文件,并重新命名,新的源程序若編譯正確后生成可執行文件,若該可執行文件生成正確,則可以通過Shell 函數去調用可執行文件使學生程序得以運行,若編譯不正確則退出系統[2]。

(3)通過關鍵語句對程序進行評定。

一個程序應該如何給出合理的評閱分數呢?對同一道編程題目來說,編程思路和編程方法會有很多種,但基本語句是確定的,比如循環類問題(如求1-100 之和、求5!等),循環語句有三種(while 語句、do—while 語句和for 語句),但無論用哪一種循環基本算法是確定的,在題庫文件中先存入考試題目的關鍵語句,評分時可結合關鍵語句的數量給出較為合理的分數[3]。

4 結束語

主要用于在校大學生期末C程序題的考查,所考題目的程序語句不會太多(一般不會超過50行),通過上述幾種評閱方法,盡可能地給考生一個合理的評閱分數,與傳統的結果比對評分方法相比較,這種設計更加接近人工閱卷,更具推廣性。

猜你喜歡
程序方法
學習方法
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 国产最新无码专区在线| 91在线日韩在线播放| 国产成人高清在线精品| 亚洲成网站| 国产激情在线视频| 99视频精品在线观看| 国产99在线观看| 国产成人精品三级| 久久99久久无码毛片一区二区| 亚洲VA中文字幕| 国内精品久久人妻无码大片高| 成人福利在线视频| 久久综合激情网| 成年看免费观看视频拍拍| 中文字幕 欧美日韩| 2020国产免费久久精品99| 国产成人一区免费观看| 一区二区三区成人| 国产美女无遮挡免费视频网站| 国产小视频免费| 亚洲日韩久久综合中文字幕| 91啪在线| 香蕉国产精品视频| 日本久久久久久免费网络| 国产精品亚洲天堂| 欧美亚洲第一页| 国产91成人| 亚洲区第一页| 免费xxxxx在线观看网站| www.91在线播放| 亚洲中文字幕无码爆乳| 亚洲欧美成aⅴ人在线观看 | AV不卡在线永久免费观看| 久久久精品无码一区二区三区| 久久77777| 欧美日韩一区二区三区在线视频| 亚洲久悠悠色悠在线播放| 亚洲第一精品福利| 极品国产在线| 中文字幕在线播放不卡| 中文字幕乱码中文乱码51精品| jizz国产视频| 在线播放国产一区| 午夜成人在线视频| 天天色天天综合网| 欧美午夜理伦三级在线观看| 亚洲第一视频网站| 青青操视频在线| 国产亚洲高清视频| 久久五月视频| 精品乱码久久久久久久| 91精品国产自产在线观看| 91亚洲精选| 久久婷婷六月| 国产精品免费电影| 91色综合综合热五月激情| 91九色视频网| 国产日韩欧美中文| 日韩不卡高清视频| 亚洲最大在线观看| 动漫精品中文字幕无码| aa级毛片毛片免费观看久| 亚洲中文制服丝袜欧美精品| 中文字幕久久波多野结衣| 国产成人高清在线精品| 女同国产精品一区二区| 亚洲成aⅴ人在线观看| 国产黄网永久免费| 色综合天天娱乐综合网| 欧美成人综合视频| 亚洲欧美不卡| 午夜在线不卡| 久久特级毛片| 日韩一级毛一欧美一国产| 国产亚洲欧美在线专区| 无码专区第一页| 亚洲国产精品VA在线看黑人| 国产精品hd在线播放| 亚洲精品人成网线在线| 尤物成AV人片在线观看| 国产人成网线在线播放va| 中文字幕人妻无码系列第三区|