亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種可以實(shí)現(xiàn)C語(yǔ)言過(guò)程評(píng)分的方法

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

        王猛,趙軍富

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

        關(guān)鍵詞:C語(yǔ)言程序設(shè)計(jì);過(guò)程評(píng)分;正則表達(dá)式

        中圖分類(lèi)號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A

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

        1 引言

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

        2 C語(yǔ)言過(guò)程評(píng)分實(shí)現(xiàn)

        C語(yǔ)言程序題在評(píng)分由三個(gè)部分構(gòu)成:結(jié)果分值、編譯分值、過(guò)程分值[5]。結(jié)果分值通過(guò)評(píng)判數(shù)據(jù)庫(kù)中預(yù)設(shè)的結(jié)果來(lái)評(píng)定;編譯分值通過(guò)是否編譯評(píng)定;過(guò)程分值由事先設(shè)定的多個(gè)正則表達(dá)式評(píng)定,其中正則表達(dá)式由參考代碼中的關(guān)鍵代碼構(gòu)成,然后利用ckstr函數(shù)對(duì)參考代碼進(jìn)行匹配,得出過(guò)程分。C語(yǔ)言整體評(píng)測(cè)過(guò)程如圖 1所示:

        對(duì)于正則表達(dá)式,常用的替換字符包括:.*可以匹配單行任意字符;[\s\S].*可以匹配多行任意字符;[ ].*可以匹配零個(gè)或多個(gè)空格;[ ]+可以匹配一個(gè)或多個(gè)空格。利用正則表達(dá)式的這些特點(diǎn),我們可以對(duì)常用的C語(yǔ)言結(jié)構(gòu)及部分帶代碼,用正則表達(dá)式去表示。

        例如選擇結(jié)構(gòu)單分支結(jié)構(gòu)語(yǔ)法如下:

        if(條件)

        {

        表達(dá)式;

        }

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

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

        最終分值計(jì)算的公式如下:

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

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

        說(shuō)明如下:

        $sum為所有正則表達(dá)式的分值

        $cfd為考生獲取正確正則表達(dá)式的值

        $fz_cfd為過(guò)程分值

        $fz_da為結(jié)果分值

        $fz_by為編譯分值

        以下為程序評(píng)定過(guò)程中的部分代碼:

        $sum=0;

        $cfd=0; ? ? //用于統(tǒng)計(jì)各個(gè)正則表達(dá)式采分點(diǎn)的和

        while($row=mysqli_fetch_array($result_zz))

        {

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

        $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 實(shí)例分析

        1) 題目?jī)?nèi)容:

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

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

        注意:

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

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

        ③ 不允許改動(dòng)預(yù)編譯命令行及主程序,且必須運(yùn)行程序;

        ④ 程序代碼編寫(xiě)在****BEGIN*****與****END****之間;

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

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

        ⑥ 其中函數(shù)void bky(? )為自動(dòng)評(píng)分函數(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 請(qǐng)輸入一個(gè)正整數(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) 題目?jī)?nèi)容設(shè)置如圖 2所示,設(shè)置答案、編譯及過(guò)程的采分比例如圖 3所示:

        4) 設(shè)置的正則表達(dá)式采分點(diǎn)如所表 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兩位測(cè)試同學(xué)進(jìn)行測(cè)試,學(xué)生代碼如圖 4下:

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

        4 結(jié)語(yǔ)

        本文提出了一種可以實(shí)現(xiàn)C語(yǔ)言程序自動(dòng)評(píng)分的方案。在C語(yǔ)言程序中,評(píng)分過(guò)程無(wú)非三個(gè)方面:結(jié)果是否正確,是否進(jìn)行編譯,代碼準(zhǔn)確率三個(gè)方面,本方法不僅可以評(píng)判結(jié)果,更重要的是可以評(píng)判代碼的準(zhǔn)確率,使得C語(yǔ)言程序的評(píng)判更加客觀和準(zhǔn)確,減輕了教師的負(fù)擔(dān)。

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

        參考文獻(xiàn):

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

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

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

        [4] 張雪英.基于機(jī)器學(xué)習(xí)的文本自動(dòng)分類(lèi)研究進(jìn)展[J].情報(bào)學(xué)報(bào),2006(6):730-739.

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

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

        老熟妇乱子伦av| 青青草成人免费在线视频| 日本真人添下面视频免费| 玩弄放荡人妻少妇系列视频| 99re在线视频播放| 国产人成视频免费在线观看| 99久久精品一区二区国产| 欧美老妇多毛xxxxx极瑞视频| 精品久久久久久中文字幕大豆网| 在线丝袜欧美日韩制服| 久久久噜噜噜久久熟女| 无码精品一区二区三区在线| 999久久久无码国产精品| 亚洲 日韩 在线精品| 少妇性l交大片免费快色| 亚洲视频网站大全免费看| 欧美日韩视频在线第一区| 国产日韩欧美网站| 玩弄丝袜美腿超短裙校花| 蜜桃视频在线看一区二区三区| 国产青草视频在线观看| 亚洲AV无码乱码1区久久| 国产精品黄色在线观看| 亚洲av色欲色欲www| 亚洲最大av资源站无码av网址| 一区二区三区国产美女在线播放| 日本三区在线观看视频| 国产乱妇无码大片在线观看 | 一本色道久久99一综合| 久久精品国产亚洲综合色| 懂色av一区二区三区网久久| 色综合久久中文娱乐网| 丰满人妻妇伦又伦精品国产| 国产精品女同学| 精品国产亚洲av高清大片| 最近中文字幕大全在线电影视频| 国产成人美女AV| 偷拍视频十八岁一区二区三区| 久久精品亚洲精品国产色婷| 天天做天天爱天天综合网| 亚洲美女av一区二区|