国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

《C語(yǔ)言程序設(shè)計(jì)》課程自動(dòng)評(píng)分系統(tǒng)綜述

2015-03-24 03:59:57韋立梅張淑榮
電腦與電信 2015年10期
關(guān)鍵詞:C語(yǔ)言程序設(shè)計(jì)C語(yǔ)言控件

韋立梅 張淑榮

(廣東白云學(xué)院電氣與信息工程學(xué)院,廣東 廣州 510450)

《C語(yǔ)言程序設(shè)計(jì)》課程自動(dòng)評(píng)分系統(tǒng)綜述

韋立梅 張淑榮

(廣東白云學(xué)院電氣與信息工程學(xué)院,廣東 廣州 510450)

C語(yǔ)言是國(guó)際上廣泛流行的計(jì)算機(jī)高級(jí)程序設(shè)計(jì)語(yǔ)言,也是我校計(jì)算機(jī)、電子、自動(dòng)化、機(jī)電等相關(guān)專業(yè)的一門必修課。開(kāi)發(fā)一個(gè)合理的C語(yǔ)言程序設(shè)計(jì)課程自動(dòng)評(píng)分系統(tǒng),可以節(jié)省教師大量的改卷時(shí)間,實(shí)現(xiàn)無(wú)紙化考試,從而可以將自動(dòng)評(píng)分系統(tǒng)推廣到其它課程中。

C語(yǔ)言程序設(shè)計(jì);自動(dòng)評(píng)分系統(tǒng)

1 C語(yǔ)言簡(jiǎn)介

C語(yǔ)言是1972年由美國(guó)貝爾研究所的D.M.Ritchie提出的。它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。因此可用它開(kāi)發(fā)系統(tǒng)程序,也可以用來(lái)編寫應(yīng)用軟件。C語(yǔ)言具備很強(qiáng)的數(shù)據(jù)處理能力,是世界上應(yīng)用最廣泛的計(jì)算機(jī)語(yǔ)言之一。C語(yǔ)言一共有37個(gè)關(guān)鍵字、9種控制語(yǔ)句、34種運(yùn)算符、豐富的數(shù)據(jù)類型,能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算,尤其是指針類型數(shù)據(jù),使用靈活,提高程序效率;用C語(yǔ)言較易實(shí)現(xiàn)程序的模塊化、結(jié)構(gòu)化設(shè)計(jì),生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高;可移植性好,幾乎在所有的計(jì)算機(jī)系統(tǒng)中都可以使用C語(yǔ)言。

2 系統(tǒng)開(kāi)發(fā)工具

自動(dòng)評(píng)分系統(tǒng)的開(kāi)發(fā)工具是采用Visual Basic語(yǔ)言與C語(yǔ)言相結(jié)合,其中主體程序與界面均由Visual Basic語(yǔ)言實(shí)現(xiàn),對(duì)編程題的評(píng)分算法(詞法分析、語(yǔ)法分析等)則采用C語(yǔ)言編寫。

3 關(guān)鍵技術(shù)簡(jiǎn)介

3.1 Visual Basic數(shù)據(jù)庫(kù)編程技術(shù)

(1)Visual Basic的數(shù)據(jù)庫(kù)對(duì)象

Visual Basic訪問(wèn)數(shù)據(jù)庫(kù)常用三種方法,它們分別是:數(shù)據(jù)訪問(wèn)對(duì)象(DAO)、遠(yuǎn)程數(shù)據(jù)對(duì)象(RDO)和ActiveX(ADO)。

DAO數(shù)據(jù)訪問(wèn)對(duì)象。Visual Basic把DAO模型封裝在Data控件,分別設(shè)置相應(yīng)的DatabaseName屬性和Recordsoucre屬性就可以將Data控件與數(shù)據(jù)庫(kù)中的記錄源連接起來(lái),以后就可以使用Data控件來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。因此DAO最適用于單系統(tǒng)應(yīng)用程序或在本地分布使用。RDO是Visual Basic訪問(wèn)關(guān)系型ODBC數(shù)據(jù)源的最佳界面接口,這種方法也集成于Visual Basic中。Active Data Objects(ADO)作為另一種可供選擇的技術(shù)出現(xiàn),正在逐漸代替其他數(shù)據(jù)訪問(wèn)接口。ADO“擴(kuò)展”了DAO和RDO所使用的對(duì)象模型,這意味著它包含較少的對(duì)象、更多的屬性、方法(和參數(shù)),以及事件。ADO是獨(dú)立于開(kāi)發(fā)工具和開(kāi)發(fā)語(yǔ)言的簡(jiǎn)單而且容易使用的數(shù)據(jù)接口,所有的數(shù)據(jù)源都可以通過(guò)ADO來(lái)訪問(wèn)。

(2)數(shù)據(jù)綁定控件

連接好數(shù)據(jù)庫(kù)后,還需要用數(shù)據(jù)綁定控件將數(shù)據(jù)源對(duì)象顯示出來(lái),然后才能對(duì)后臺(tái)中的數(shù)據(jù)信息進(jìn)行編輯和查詢等數(shù)據(jù)處理操作。常用的數(shù)據(jù)綁定控件有文本框、組合框等標(biāo)準(zhǔn)控件及數(shù)據(jù)列表(DataList)、數(shù)據(jù)網(wǎng)格(DataGrid)等ActiveX控件。數(shù)據(jù)綁定控件有兩個(gè)標(biāo)準(zhǔn)的屬性:Datasource和DataField屬性。Datasource屬性用于設(shè)置數(shù)據(jù)源,DataField屬性用來(lái)設(shè)置數(shù)據(jù)庫(kù)字段的名稱。

3.2 Visual Basic中調(diào)用API函數(shù)

Application Programming Interface,簡(jiǎn)稱API函數(shù),是Windows操作系統(tǒng)提供的函數(shù),可以實(shí)現(xiàn)對(duì)應(yīng)用程序的控制。要調(diào)用API函數(shù),必須先在Visual Basic中用Declare語(yǔ)句聲明??山柚赩isual Basic提供的應(yīng)用程序“API文本查看器”,正確地聲明與使用API函數(shù)。

3.3 TCC行編輯命令的使用

除了使用集成開(kāi)發(fā)環(huán)境之外,也可以用傳統(tǒng)的命令行界面來(lái)運(yùn)行Turbo C程序,TCC命令可以以命令行的方式編譯C源文件,將它們連接成可執(zhí)行文件。可在其它程序中將TCC作為外部程序調(diào)用,實(shí)現(xiàn)以命令行方式編譯連接C源程序。

除以上幾點(diǎn)外,系統(tǒng)還涉及到了編譯原理中的詞法分析及語(yǔ)法分析方法。

4 編程題自動(dòng)評(píng)分流程

對(duì)于編程題進(jìn)行自動(dòng)評(píng)卷,較復(fù)雜,因此本文重點(diǎn)介紹該題型自動(dòng)評(píng)分功能的實(shí)現(xiàn)方法。

由于本文針對(duì)的是非計(jì)算機(jī)專業(yè)的C語(yǔ)言課程,學(xué)生普遍剛剛接觸程序設(shè)計(jì),造成惡意代碼的概率較低,再結(jié)合C語(yǔ)言程序結(jié)構(gòu)、語(yǔ)法特點(diǎn),對(duì)編程題評(píng)分主要采用結(jié)果、靜態(tài)評(píng)分與動(dòng)態(tài)評(píng)分相結(jié)合的方法,具體步驟如下:

(1)結(jié)果對(duì)比

檢查指定的結(jié)果文件是否存在,若存在則與標(biāo)準(zhǔn)答案文件進(jìn)行對(duì)比,與標(biāo)準(zhǔn)答案文件內(nèi)容完全相同,則說(shuō)明結(jié)果正確,得滿分,否則轉(zhuǎn)去靜態(tài)評(píng)閱,若無(wú)結(jié)果文件,執(zhí)行動(dòng)態(tài)評(píng)分。

(2)基于可執(zhí)行文件的動(dòng)態(tài)評(píng)分

對(duì)考生源程序進(jìn)行編譯連接,若生成可執(zhí)行文件成功,則運(yùn)行考生程序,用預(yù)先定義的測(cè)試數(shù)據(jù)集中的各組測(cè)試數(shù)據(jù)作為輸入值,進(jìn)行測(cè)試,比較運(yùn)行結(jié)果和期望結(jié)果,并通過(guò)比較結(jié)果評(píng)定學(xué)生程序的分?jǐn)?shù)。若生成失敗,說(shuō)明考生程序存在語(yǔ)法錯(cuò)誤,轉(zhuǎn)入以下過(guò)程繼續(xù)處理:

1)對(duì)考生源程序進(jìn)行詞法分析。掃描源程序,將其轉(zhuǎn)化為特定格式的TOKEN串,存入TOKEN文件;

2)根據(jù)詞法分析的結(jié)果,即TOKEN文件,進(jìn)行語(yǔ)法分析,詳細(xì)指出程序中存在的語(yǔ)法錯(cuò)誤,生成錯(cuò)誤文件,在保證不對(duì)考生程序正確部分產(chǎn)生破壞的前提下,盡最大可能將考生程序修改正確,生成修改后的TOKEN文件;

3)調(diào)用轉(zhuǎn)換程序?qū)⑿薷暮蟮腡OKEN文件重新生成為C語(yǔ)言源程序,其與考生源程序的名字不同,稱其為新生成源程序;

4)調(diào)用TCC程序以命令行方式對(duì)新生成源程序進(jìn)行編譯連接;

5)編譯連接成功,運(yùn)行新源程序的執(zhí)行文件,并調(diào)用API函數(shù)控制程序運(yùn)行,以防由于死鎖的發(fā)生導(dǎo)致系統(tǒng)崩潰;編譯失敗則退出動(dòng)態(tài)評(píng)閱過(guò)程,改用靜態(tài)評(píng)閱;

6)對(duì)新生成源程序的運(yùn)行結(jié)果進(jìn)行檢測(cè),若有結(jié)果,則轉(zhuǎn)去進(jìn)行結(jié)果比較,若無(wú)結(jié)果則轉(zhuǎn)去進(jìn)行靜態(tài)評(píng)閱。

(3)基于程序代碼的靜態(tài)評(píng)分

與動(dòng)態(tài)評(píng)分相比,代碼靜態(tài)評(píng)分不需要運(yùn)行學(xué)生的程序,因此不用考慮對(duì)系統(tǒng)安全性的影響,作為編程題評(píng)分的必要環(huán)節(jié),代碼靜態(tài)檢查對(duì)于可執(zhí)行和不可執(zhí)行的程序都適用。代碼靜態(tài)檢查分為軟件質(zhì)量度量方法和源程序分析比較方法。軟件質(zhì)量度量方法主要是對(duì)程序的常量、變量和關(guān)鍵字等內(nèi)容進(jìn)行分析后,根據(jù)匹配程度給出分?jǐn)?shù)。源程序分析比較方法主要是通過(guò)將學(xué)生源程序和標(biāo)準(zhǔn)程序進(jìn)行匹配,該方法依賴于標(biāo)準(zhǔn)答案的數(shù)據(jù)集,根據(jù)模板最為匹配的答案與學(xué)生源程序進(jìn)行對(duì)比,根據(jù)匹配程度給出評(píng)分。源程序分析比較方法主要采用的是基于結(jié)構(gòu)度量的技術(shù)。從程序設(shè)計(jì)題題庫(kù)文件中讀取該試題的關(guān)鍵語(yǔ)句,對(duì)考生程序進(jìn)行檢測(cè),根據(jù)檢測(cè)出的考生程序中的關(guān)鍵語(yǔ)句的條數(shù),判斷程序的邏輯合理性,給出相應(yīng)分值。

5 結(jié)束語(yǔ)

目前,利用計(jì)算機(jī)對(duì)學(xué)校各門課程考試試題庫(kù)進(jìn)行管理、組卷、測(cè)試、評(píng)分系統(tǒng)的開(kāi)發(fā)與使用,已成為各個(gè)院校教學(xué)改革的重點(diǎn)內(nèi)容之一。限于篇幅,本文只重點(diǎn)介紹編程題目的自動(dòng)評(píng)分方法的實(shí)現(xiàn)。

[1]赫伽寧.結(jié)合動(dòng)態(tài)測(cè)試與靜態(tài)分析的編程題自動(dòng)評(píng)分方法研究[D].哈爾濱工業(yè)大學(xué),2008.

[2]譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2004.

[3]王春霞.自動(dòng)閱卷系統(tǒng)的開(kāi)發(fā)[J].鹽城工學(xué)院學(xué)報(bào),2002(15).

[4]郭琦.Visual Basic數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)技術(shù)[M].北京:人民郵電出版社,2003.

Overview of the Automatic Scoring System of C Language Programming Design

Wei LiMeiZhang ShuRong
(College of Electrical and Information Engineering,Guangdong Baiyun University,Guangzhou 510450,Guangdong)

C programming language is the international popular advanced computer programming language.It is also a compulsory course for computer,electronics,automation,mechatronics and other related majors in our school.This paper develops a reasonable automatic scoring system for C language programming design,which can save a lot of time for teachers and realize the paperless examination,so that the automatic scoring system can be extended to other courses.

C language programming design;automatic scoring system

G434

A

1008-6609(2015)10-0072-02

韋立梅,女,遼寧凌源人,碩士,講師,研究方向:數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)、多媒體技術(shù)。

猜你喜歡
C語(yǔ)言程序設(shè)計(jì)C語(yǔ)言控件
基于Visual Studio Code的C語(yǔ)言程序設(shè)計(jì)實(shí)踐教學(xué)探索
基于C語(yǔ)言的計(jì)算機(jī)軟件編程
電子制作(2018年16期)2018-09-26 03:27:08
關(guān)于.net控件數(shù)組的探討
軟件(2018年7期)2018-08-13 09:44:42
高職高專院校C語(yǔ)言程序設(shè)計(jì)教學(xué)改革探索
以“學(xué)生為中心”的《C語(yǔ)言程序設(shè)計(jì)》教學(xué)設(shè)計(jì)探究
基于翻轉(zhuǎn)課堂的《C語(yǔ)言程序設(shè)計(jì)》課程教學(xué)系統(tǒng)的實(shí)現(xiàn)與研究
軟件工程(2016年8期)2016-10-25 16:02:07
淺談《C語(yǔ)言程序設(shè)計(jì)》課程的教學(xué)改革
《C語(yǔ)言程序設(shè)計(jì)》課程的教學(xué)改革與實(shí)踐
科技視界(2016年22期)2016-10-18 16:12:24
論子函數(shù)在C語(yǔ)言數(shù)據(jù)格式輸出中的應(yīng)用
就這樣玩會(huì)VBA中常見(jiàn)的自定義控件
電腦迷(2012年24期)2012-04-29 00:44:03
郴州市| 白城市| 石台县| 普陀区| 沽源县| 贡觉县| 青神县| 昔阳县| 内黄县| 乐山市| 保定市| 宿州市| 玉山县| 遂溪县| 渑池县| 宜昌市| 太湖县| 昌江| 淳化县| 黄龙县| 罗江县| 原平市| 买车| 洛川县| 永修县| 车险| 阳谷县| 特克斯县| 金川县| 富裕县| 揭阳市| 英超| 临西县| 西华县| 昭觉县| 湟源县| 襄汾县| 木兰县| 汾阳市| 介休市| 大竹县|