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

一種可以實現C語言過程評分的方法

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

王猛,趙軍富

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

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

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

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

1 引言

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

2 C語言過程評分實現

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

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

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

if(條件)

{

表達式;

}

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

對于數據庫中題目表的部分主要字段設置如表 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; ? ? //用于統計各個正則表達式采分點的和

while($row=mysqli_fetch_array($result_zz))

{

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

$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) 題目內容:

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

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

注意:

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

② 本題必須使用for循環,if語句;

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

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

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

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

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

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 請輸入一個正整數:");

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) 題目內容設置如圖 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下:

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

4 結語

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

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

參考文獻:

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

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

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

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

[5] 刁善會.C程序設計考試系統設計與實現[D].重慶:重慶大學,2009.

【通聯編輯:王力】

主站蜘蛛池模板: 在线观看精品国产入口| 精品无码国产自产野外拍在线| 国产在线拍偷自揄观看视频网站| 国产精欧美一区二区三区| 性视频一区| 中文字幕无码电影| 久操中文在线| 色香蕉影院| 熟女视频91| 五月婷婷欧美| 国产精品片在线观看手机版 | 98超碰在线观看| 91欧美在线| 狼友av永久网站免费观看| 国产精品视频白浆免费视频| 色首页AV在线| 国产精品原创不卡在线| 国产三级视频网站| 国产成人综合久久精品下载| 国产农村精品一级毛片视频| 欧美精品亚洲精品日韩专区va| 最新加勒比隔壁人妻| 国内黄色精品| 日韩成人免费网站| 国产剧情国内精品原创| 国产熟睡乱子伦视频网站| 亚洲天堂网在线视频| 亚洲第一色网站| 91福利片| 色爽网免费视频| 中文字幕久久亚洲一区| 18禁黄无遮挡网站| 在线观看精品自拍视频| 久久久亚洲国产美女国产盗摄| 亚洲精品天堂在线观看| 亚洲国语自产一区第二页| 欧美翘臀一区二区三区| 婷婷亚洲视频| 国产精品无码一二三视频| 亚洲男人天堂2020| 日韩欧美国产成人| 国产精品视频系列专区| 2021天堂在线亚洲精品专区| 国产人人乐人人爱| 成人日韩视频| 亚洲制服丝袜第一页| 色婷婷成人| 亚洲开心婷婷中文字幕| 国产特级毛片aaaaaaa高清| 国产亚洲精品资源在线26u| www.精品国产| 国产9191精品免费观看| 午夜免费小视频| 国产主播喷水| 人妻精品久久无码区| 在线观看国产精品日本不卡网| 欧美日韩高清在线| 亚洲乱强伦| 无码AV高清毛片中国一级毛片| 日韩A级毛片一区二区三区| 69视频国产| 婷婷伊人五月| 国产成人精品男人的天堂 | 午夜视频免费一区二区在线看| 日韩成人在线一区二区| 网久久综合| 成人免费黄色小视频| 久久精品视频一| 青青极品在线| www亚洲天堂| 粉嫩国产白浆在线观看| 无码网站免费观看| 久久国产亚洲偷自| 亚洲一区二区三区香蕉| 色天天综合| 亚洲人成网线在线播放va| 国产白浆视频| 一级毛片在线播放免费| 久久久成年黄色视频| 91福利一区二区三区| 国产日本欧美亚洲精品视| 老色鬼欧美精品|