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

        ?

        相似度算法在源程序比較中的應(yīng)用

        2016-10-18 23:20:17朱利龍
        電腦知識與技術(shù) 2016年21期

        朱利龍

        "

        摘要:在計算機程序課的教學(xué)過程中,時常需要對學(xué)生所提交的源程序進行檢查,特別是源程序的重復(fù)率檢查。純?nèi)斯Ρ炔坏ㄙM時間長,而且效率低下。因此,本文提出利用文本相似度算法解決源程序?qū)Ρ鹊姆椒?,并設(shè)計出相應(yīng)的源程序比較系統(tǒng),來幫助老師從繁重的工作中解脫出來。

        關(guān)鍵詞: 相似度;距離編輯算法;源程序?qū)Ρ?/p>

        中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2016)21-0214-01

        源程序?qū)Ρ确治鍪且粋€復(fù)雜的過程,不僅需要考慮實用性和考慮準(zhǔn)確性,而且還要兼顧運行效率等問題。在程序上機課的過程性考核中,很多同學(xué)提交的程序源代碼之間重復(fù)率很高。本文借助計算機實現(xiàn)源程序的自動對比,不但可以降低勞動強度,提高工作效率,而且可以減少誤判的可能性,進一步保證源程序?qū)Ρ冉Y(jié)果的正確性。

        1 特征提取

        要獲取源程序重復(fù)率,判斷是否抄襲程度,可以通過計算源程序的相似率來代替。相似率越高說明源程序重復(fù)部分越多,學(xué)生抄襲的可能性越高。要計算代碼的相似率,就得提取源代碼的有關(guān)特征參數(shù)。

        根據(jù)源程序塊粒度大小不同,可以利用源程序中諸如換行符之類的分割符來分解成程序語句,分解得到的每一部分稱為一個程序塊。源程序塊的選擇將在很大程度上影響程序的效率,要比較源程序部分復(fù)制,就必須減少源程序塊的長度。本文將每一個語句看成一個源程序塊,即粒度大小為一條語句。于是,源程序就被分解為語句集合,源程序的相似程度便可以由語句的相似率來計算。因此,對于源程序的對比,選擇程序語句作為源程序的對比粒度塊是具有可行性的。

        本文系統(tǒng)采用的是距離編輯算法,利用字符串的模式匹配實現(xiàn)對源程序相似度進行判斷。把兩篇源程序進行全文對比得出相似度;得出相似度后,根據(jù)源程序分隔符把兩源程序分割成逐條語句的,然后對這些語句進行一一對比,得出語句的相似度;比較出來的超過語句的相似度的語句稱為相似句,把相似句對應(yīng)的原句進行紅色標(biāo)記;統(tǒng)計出相似句對應(yīng)原句占原源程序的比例,在比較中可以通過紅色顯示相同。

        2 距離編輯算法

        距離編輯算法,簡稱為LD算法。該方法主要從源程序中選取一些源程序塊,利用LD算法比較兩源程序塊字符串的相似性,由此得出比較子串相似度(即子串間的距離)。兩個字符串距離就是一個字符串轉(zhuǎn)換成另一個字符串過程中,進行添加、刪除、修改等基本操作的次數(shù),將源程序的語句作為字符串,借助LD算法對比代碼間的距離,然后計算取其占代碼長度的比例作為判斷代碼重復(fù)率,從而即可得到學(xué)生源程序的抄襲程度。如果兩個源程序字符串的距離越大,就說明他們越不同。

        該算法對兩個字符串(句子或整篇源程序)進行對比,得出兩個字符串之間的“距離”,然后根據(jù)相似度計算公式計算出兩個字符串之間的相似度。下面給出了在Visual Basic編程環(huán)境下,利用遞歸法實現(xiàn)的算法代碼。

        Dim mA() As Byte,mB() As Byte 模塊級變量,存放語句單元

        計算編輯距離函數(shù)LD

        Public Function LD(ByVal A As String,ByVal B As String) As Integer

        mA = StrConv(A,vbFromUnicode) :mB = StrConv(B,vbFromUnicode)

        ReDim L(Len(A),Len(B)) As Integer

        For i = 1 To Len(A)

        L(i, 0) = i

        Next

        For j = 1 To Len(B)

        L(0, j) = j

        Next

        For I = 1 To Len(A)

        For j = 1 To Len(B)

        If mA(I - 1) = mB(j - 1) Then

        L(I, j) = L(I - 1, j - 1)

        Else

        L(I, j) = Min(L(I - 1, j - 1), L(I - 1, j), L(I, j - 1)) + 1

        End If

        Next

        Next

        LD = L(Len(A), Len(B))

        End Function

        計算最小值函數(shù)Min

        Public Function Min(ByVal A As Integer,ByVal B As Integer,ByVal C As Integer) As Integer

        Min = IIF(A > B,A,B) :Min = IIF(Min < C,Min,C)

        End Function

        3 源程序比較過程

        在上述算法的基礎(chǔ)上,本文所設(shè)計的源程序比較系統(tǒng)主要有三個步驟,該系統(tǒng)所對應(yīng)的流程圖見圖1。

        1)從存放源程序的數(shù)據(jù)庫里取出程序代碼,構(gòu)成源程序集合。學(xué)生提交的程序代碼都會被提煉出主要部分匯總到程序數(shù)據(jù)庫中。在后期進行代碼對比時,就可以直接從數(shù)據(jù)庫中讀取學(xué)生提交的源代碼,甚至可以用于年級之間學(xué)生編程能力的縱向比較。

        2)分割源程序并從中提取特征參數(shù)。本文使用語句結(jié)束標(biāo)記或其他代碼間隔符(如“空格”“換行”等)作為語句的天然分割符,刨除源程序中影響對比操作的無用代碼,即程序通用框架部分,例如集成開發(fā)工具產(chǎn)生的代碼,只保留學(xué)生自己編寫的主要代碼,然后借助系統(tǒng)提取相關(guān)的特征參數(shù)。

        3)計算源程序相似度。從上一步分割得到的語句集合,計算出語句之間的編輯距離,其占語句長度的百分比即為語句相似度;將所有語句間的編輯距離累加作為源程序間的編輯距離,其占源程序代碼長度的百分比就是源程序間的相似度;若相似度量值大于教師所給定的臨界值,說明程序代碼間的重復(fù)率過高,學(xué)生存在復(fù)制抄襲的可能,并通過顏色標(biāo)示出重復(fù)部分,從而達(dá)到系統(tǒng)自動對比源程序的目的,而且可以提高學(xué)生的自律性和積極性。

        4 總結(jié)

        本文所設(shè)計的源程序比較系統(tǒng),在程序類課程的教學(xué)過程中,已經(jīng)作為該類課程過程考核手段之一,不僅幫助老師從繁重的工作中解脫出來,而且提高了學(xué)生的學(xué)習(xí)積極性。在今后將逐步引入數(shù)據(jù)挖掘的處理過程,以便可以實現(xiàn)程序類課程教學(xué)效果的縱向?qū)Ρ?,從而更好促進程序類教學(xué)。

        參考文獻:

        [1] 李俊民,趙東. 零基礎(chǔ)學(xué)Visual Basic[M].北京:機械工業(yè)出版社,2010.

        [2] 劉宏哲. 文本語義相似度計算[M]. 北京:電子工業(yè)出版,2014.

        [3] 張憲超. 數(shù)據(jù)結(jié)構(gòu)、算法及應(yīng)用[M].北京:科學(xué)出版社,2012.

        [4] 程海濤,王俏,盧亮,等.探索Visual Basic教學(xué)方法改革[J].科技信息,2011(12):225.

        亚欧美日韩香蕉在线播放视频| 一本到亚洲av日韩av在线天堂| 亚洲色图在线免费视频| 精品亚洲国产成人| 国产精品午夜福利视频234区| 亚洲av成人中文无码专区| 国产精品视频yuojizz| 亚洲第一页综合av免费在线观看| 国产草逼视频免费观看| 男人吃奶摸下挵进去啪啪软件| 一品二品三品中文字幕| 亚洲AV毛片无码成人区httP| 台湾自拍偷区亚洲综合| 国产精品视频自拍在线| 欧美成人免费全部| 91视频爱爱| 青青视频在线播放免费的| 午夜无码一区二区三区在线观看| 大肉大捧一进一出好爽视频mba| 五月天综合社区| 国产另类av一区二区三区| 色多多性虎精品无码av| 国产精品成人一区二区三区| 被黑人做的白浆直流在线播放| 久久精品国产亚洲一级二级| 丰满少妇按摩被扣逼高潮| 欧美 丝袜 自拍 制服 另类| 国产xxxxx在线观看免费| 亚洲一区二区av免费观看| 亚洲s色大片在线观看| 国产精品伦一区二区三级视频| 日韩国产一区| 日本视频一区二区三区三州 | 欧洲女人与公拘交酡视频| 人妻无码久久一区二区三区免费| 午夜无码片在线观看影院y| 久久这黄色精品免费久| 色综合天天综合网国产成人网| 洗澡被公强奷30分钟视频| 亚洲中字幕永久在线观看| 色和尚色视频在线看网站|