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

一種可以實現(xiàn)C語言過程評分的方法

2022-02-17 00:29:53王猛,趙軍富
電腦知識與技術 2022年35期

王猛,趙軍富

摘要:C語言程序設計在評分過程中,大多數(shù)的考試系統(tǒng)只能按照結果評分,這就導致學生考試成績要么滿分要么零分,不能夠真實反映學生的學習水平,利用正則表達式對C語言的程序進行知識點的過程評分,并通過預設輸入值,讓學生運行自己的程序,得出結果與預設結果值進行匹配,得出結果分,最終結合是否編譯,得出總分。

關鍵詞:C語言程序設計;過程評分;正則表達式

中圖分類號:G642? ? ? ? 文獻標識碼:A

文章編號:1009-3044(2022)35-0037-03

1 引言

C語言程序設計是大學本科工科類專業(yè)所開設的必修課程,對于程序設計題目,在平時的作業(yè)及考試都需要對程序設計題目進行評分,有些院校對于程序設計題還是人工評分,尤其是作業(yè);有些院校采購了考試系統(tǒng),但大多數(shù)的考試系統(tǒng)或網(wǎng)絡評測系統(tǒng)中,評測都是以運行結果作為評分依據(jù)。并不查看學生的編程過程,其評分原則并不能體現(xiàn)學生對知識的掌握程度,有其局限性。對于程序設計題這種間于自然語言和程序語言之間的主觀題,可部分擺脫語言的約束和限制[1-2],具有較高研究價值。本方法在對過程評分主要通過正則表達式進行評定,因為正則表達式不僅能夠處理傳統(tǒng)的文本匹配,更重要的是正則表達式具有強大的結構描述能力,同時能夠描述文本深層次的特征,可以通過簡單有效的方式對文本進行的復雜控制[3-4]。根據(jù)正則表達式的特點,其特別適用于程序類代碼的匹配評測。

2 C語言過程評分實現(xiàn)

C語言程序題在評分由三個部分構成:結果分值、編譯分值、過程分值[5]。結果分值通過評判數(shù)據(jù)庫中預設的結果來評定;編譯分值通過是否編譯評定;過程分值由事先設定的多個正則表達式評定,其中正則表達式由參考代碼中的關鍵代碼構成,然后利用ckstr函數(shù)對參考代碼進行匹配,得出過程分。C語言整體評測過程如圖 1所示:

對于正則表達式,常用的替換字符包括:.*可以匹配單行任意字符;[\s\S].*可以匹配多行任意字符;[ ].*可以匹配零個或多個空格;[ ]+可以匹配一個或多個空格。利用正則表達式的這些特點,我們可以對常用的C語言結構及部分帶代碼,用正則表達式去表示。

例如選擇結構單分支結構語法如下:

if(條件)

{

表達式;

}

轉(zhuǎn)換為正則表達式如下:if[ ]*\(.*\)[ ]*\{[\s\S]*\}

對于數(shù)據(jù)庫中題目表的部分主要字段設置如表 1:

最終分值計算的公式如下:

$fz_cfd=100*($bl_cfd/($bl_da+$bl_by+$bl_cfd))*($cfd/$sum)

$zf=$fz_da+$fz_by+$fz_cfd;

說明如下:

$sum為所有正則表達式的分值

$cfd為考生獲取正確正則表達式的值

$fz_cfd為過程分值

$fz_da為結果分值

$fz_by為編譯分值

以下為程序評定過程中的部分代碼:

$sum=0;

$cfd=0; ? ? //用于統(tǒng)計各個正則表達式采分點的和

while($row=mysqli_fetch_array($result_zz))

{

$sum=$sum+$row[1]; //row數(shù)組為數(shù)據(jù)庫中正則表達式

$str1="/".$row[0]."/";

$str2=$content;? ?//$content為參考代碼

if(ckstr($str1,$str2)==1)

{

$cfd=$cfd+$row[1];

}

}

if($sum==0)

$fz_cfd=0;

else

$fz_cfd=round(100*(1.0*$r_tm->bl_cfd/($r_tm->bl_da+$r_tm->bl_by+$r_tm->bl_cfd))*(1.0*round($cfd,2)/$sum),2);

$zf=$fz_da+$fz_by+$fz_cfd;

3 實例分析

1) 題目內(nèi)容:

實現(xiàn)功能:請編寫一個函數(shù)fun,該函數(shù)的功能是:計算正整數(shù)n以內(nèi)(包括n),能被5或9整除的所有自然數(shù)的倒數(shù)的和,并將計算結果作為函數(shù)值返回在主函數(shù)中保留兩個小數(shù)位輸出。

例如:若輸入n的值為20,則輸出結果為0.58.

注意:

① 所寫代碼中,不得定義其他變量;

② 本題必須使用for循環(huán),if語句;

③ 不允許改動預編譯命令行及主程序,且必須運行程序;

④ 程序代碼編寫在****BEGIN*****與****END****之間;

⑤*********BEGIN**********和*********

END**********不可刪除。

⑥ 其中函數(shù)void bky(? )為自動評分函數(shù),禁止修改、刪除

2)給出代碼如下:

#include<stdio.h>

void bky( );

float fun( int n)

{

int i;

float sum=0;

/***********BEGIN*********/

/***********END*********/

}

void main()

{

float fun( int n);

int m;

float s;

printf("\n 請輸入一個正整數(shù):");

scanf("%d",&m);

s=fun(m);

printf("\n the result is:%.2f",s);

bky();

}

void bky()

{

FILE *IN,*OUT;

float s ;

int t;

float o;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("Read FILE Error");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("Write FILE Error");

}

fscanf(IN,"%d",&t);

o=fun(t);

fprintf(OUT,"%.2f\n",o);

fclose(IN);

fclose(OUT);

}

3) 題目內(nèi)容設置如圖 2所示,設置答案、編譯及過程的采分比例如圖 3所示:

4) 設置的正則表達式采分點如所表 2示:

5) 參考答案如下:

for(i=1;i<=n;i++)

if(i%5==0 || i%9==0)

sum=sum+1.0/i;

return sum;

6) 分別找cs和cs2兩位測試同學進行測試,學生代碼如圖 4下:

根據(jù)前面題目分值比例的設置:本題的結果分為50分;編譯分為10分;過程分為40分。cs這位同學的結果、編譯、正則表達式所有的采分點全部正確,得分100;而cs2這位同學的結果錯誤,結果分為:0分、編譯過,編譯分為:10分,過程分共40分,但正則表達式中,其中第5項和第8項不正確,只能拿到6/8的過程分,故總分=0+10+40*6/8=40分,具體評分結果如表 3 :

4 結語

本文提出了一種可以實現(xiàn)C語言程序自動評分的方案。在C語言程序中,評分過程無非三個方面:結果是否正確,是否進行編譯,代碼準確率三個方面,本方法不僅可以評判結果,更重要的是可以評判代碼的準確率,使得C語言程序的評判更加客觀和準確,減輕了教師的負擔。

但在評判代碼準確率的時候,通過前文可知道,需要對給定程序做出很多限定,例如:功能實現(xiàn)時,限定代碼必須用for循環(huán)結構實現(xiàn);還有代碼中限定不得再定義其他變量;還有些較復雜代碼,限定變量的含義等缺陷。但是鑒于目前人工智能、信息技術的發(fā)展水平,目前這種評判方法是一種高效、客觀、準確率高的方法,而且本方法也可適用于其他類編程語言的自動評分,具有較高的推廣價值。

參考文獻:

[1] 曹亞妮.C語言在線考試系統(tǒng)開發(fā)及關鍵技術的研究[D].西安:西安理工大學,2016.

[2] 吳艷玲.基于WEB的C語言編程題自動閱卷系統(tǒng)的設計與實現(xiàn)[D].成都:電子科技大學,2011.

[3] 姜英杰.支持正則表達式的文本匹配優(yōu)化算法[D].沈陽:東北大學,2012.

[4] 張雪英.基于機器學習的文本自動分類研究進展[J].情報學報,2006(6):730-739.

[5] 刁善會.C程序設計考試系統(tǒng)設計與實現(xiàn)[D].重慶:重慶大學,2009.

【通聯(lián)編輯:王力】

主站蜘蛛池模板: 天天躁日日躁狠狠躁中文字幕| 国产一在线观看| 不卡的在线视频免费观看| 久久6免费视频| 亚洲性视频网站| 国产高清免费午夜在线视频| 亚洲色大成网站www国产| 亚洲区欧美区| 欧美综合区自拍亚洲综合绿色| 国产高潮流白浆视频| 无码 在线 在线| 好紧好深好大乳无码中文字幕| 国产在线观看91精品亚瑟| 2021亚洲精品不卡a| 无码免费的亚洲视频| 欧美成人a∨视频免费观看 | 91在线播放免费不卡无毒| 中文字幕av一区二区三区欲色| 国产免费一级精品视频| 毛片卡一卡二| 老司国产精品视频| 成人av手机在线观看| 青青草久久伊人| www.99在线观看| 农村乱人伦一区二区| 一区二区日韩国产精久久| 搞黄网站免费观看| 在线欧美一区| 精品国产Av电影无码久久久| 日韩毛片在线播放| 亚洲色图另类| 欧美一区二区啪啪| 国产福利免费视频| 91国内外精品自在线播放| 毛片a级毛片免费观看免下载| 在线欧美一区| 亚洲精品无码在线播放网站| 99精品热视频这里只有精品7| 国产一级毛片yw| 91欧美在线| 91精品啪在线观看国产91九色| 成AV人片一区二区三区久久| 久久五月天综合| 日韩精品一区二区三区视频免费看| 国产第一页亚洲| AV无码一区二区三区四区| 国产人人乐人人爱| 婷婷综合色| 老汉色老汉首页a亚洲| 99久久精品免费看国产免费软件 | 亚洲色无码专线精品观看| 国产香蕉在线视频| 免费日韩在线视频| 亚洲AV永久无码精品古装片| 国产丝袜精品| 日韩av在线直播| 99久久性生片| 色综合天天综合中文网| 在线观看欧美国产| 人妻21p大胆| 91热爆在线| 老熟妇喷水一区二区三区| 亚洲人成网站观看在线观看| 亚洲 日韩 激情 无码 中出| 国产精鲁鲁网在线视频| 国产精品性| 日韩色图在线观看| 国产菊爆视频在线观看| 亚洲水蜜桃久久综合网站 | 丝袜国产一区| 韩日免费小视频| 色网站免费在线观看| 成人福利在线视频免费观看| 99精品热视频这里只有精品7| 就去吻亚洲精品国产欧美| 亚洲成人免费在线| 男女猛烈无遮挡午夜视频| 日韩精品资源| 国产色网站| 亚洲欧美不卡中文字幕| 女人av社区男人的天堂| 国产99久久亚洲综合精品西瓜tv|