- 相關推薦
c語言畢業(yè)論文開題報告
計算思維的本質(zhì)是抽象和自動化。對于C語言程序來說,抽象就是使用程序、函數(shù)、函數(shù)調(diào)用以及數(shù)據(jù)類型、常量、變量、數(shù)組和鏈表等元素描述現(xiàn)實生活中的系統(tǒng)、功能、功能調(diào)用以及單個特征或特征組合等,自動化則體現(xiàn)為函數(shù)內(nèi)部的語句在EIP寄存器加法操作支持下順序自動地執(zhí)行以及函數(shù)之間的調(diào)用在內(nèi)存堆棧區(qū)支持下自動地進行跳轉(zhuǎn)。下面是小編為大家整理的c語言畢業(yè)論文開題報告,僅供參考,歡迎大家閱讀。
一、研究背景及研究意義
信息技術的快速發(fā)展加速了教育信息化的進程,在線教育系統(tǒng)與測試系統(tǒng)的出現(xiàn)為學生提供了一個可以提高和檢測綜合能力的便捷途徑。另一方面,C語言教學在各大高校中都是必修課程之一,且在計算機相關課程教學中,針對某個理論性的知識點的考察,一般會以客觀題的形式給出。由于答案具有唯一性,通過簡單得匹配方式便能識別正確與否從而給出相應成績。針對這類客觀題的自動評分技術已經(jīng)相當成熟,因此后續(xù)在自動評分方向的研究中主要集中于主觀題的自動評判。在過去幾年的積極探索階段到現(xiàn)有的實際研究成果來看,有關C語言知識的檢測中對編程題的考察是必不可少的。雖然檢測的形式各不相同(填寫空缺代碼塊完成完整程序,按題目要求編寫整個程序),但終究是為了考察學生掌握編程技巧及編程思想的程度。
本課題研究的主要目的是結(jié)合編程實現(xiàn)的特征,為一個正在初始運營中的在線測試平臺提供一個能查重與自動評分的功能模塊。其中最終評分包括兩個部分,一是對每個學生提交的程序代碼文件相互之間進行相似度檢測,當相似度超過預定閾值作為抄襲處理,此為查重檢測。二是將學生程序與模板程序匹配檢測相似度并由此計算最終得分。
程序語言與自然語言在各自適用領域上有較大差異,其語言雖然都有詞法、語法規(guī)則等,但編寫程序語言時并沒有自然語言那么的靈活,不會出現(xiàn)一詞多義,一義多詞,他只有固定的關鍵字,標識符編寫規(guī)則,功能實現(xiàn)結(jié)構(gòu)等,所以較于自然語言來說識別起來要容易一些。國內(nèi)外對編程題相似度檢測及自動評分都有不少的研究,現(xiàn)也有一些系統(tǒng)比較成熟。
目前,各大高校對C語言課程考察方式一般還是以傳統(tǒng)的紙質(zhì)化考試為主。
這樣的考試方法在人工閱卷的過程中存在著些許的不確定因素,隨著教育的普及,能力測試之后需要批改的試卷絕不是一個小數(shù)目。這單一單調(diào)的工作很容易使得批改人員疲憊不堪,從而閱卷出錯率將會被動的提高。利用計算機完成自動閱卷將杜絕這一問題的出現(xiàn),同時,其運行速度快能及時的給學生反饋結(jié)果也沒有人的感官情緒,能公平公正的對待每一份試卷。
對于主觀題的自動評分技術還在不斷的完善中,由于在主觀題的識別所需的技術:人工智能、自然語言處理、模式識別等還處于起步階段。所以主觀題自動閱卷技術不能一蹴而就,還需要不斷的實驗研究。目前,探索開發(fā)出合理試用的主觀題自動評分系統(tǒng)是一個技術難題,若能將開發(fā)的系統(tǒng)投入教學或是別的考察里面,將會大大的節(jié)省人力物力。
二、國內(nèi)外研究現(xiàn)狀
國外對文本相似度檢測的研究早國內(nèi),在20世紀中期,就有學者提出讓計算機同人工閱卷一般來對主觀題如作文進行評閱。至今,經(jīng)過數(shù)多學者的致力研究,出現(xiàn)了許多與教育結(jié)合的應用系統(tǒng),并已投入使用。在對自然語言的文本分析處理方法的研究同時,隨著計算機教育的普及,程序代碼的檢測也在逐漸興起。
1966年,Ellis Page開發(fā)了一個模擬人工評分的系統(tǒng)Project EssayGrade(PEG),該系統(tǒng)是總結(jié)學生提交文本的特征向量,然后將文本的特征進行量化,最后根據(jù)量化的結(jié)果對其文本進行判分。
1967年,Halstead提出了用屬性計數(shù)法計算程序代碼之間的相似度,所謂的屬性是指代碼的某些度量值,如:空行的數(shù)目,字符量,語句量,控制結(jié)構(gòu)量等,在他的研究基礎之上,1977年Otteiistein設計了檢測FORTRAN編程語言的代碼抄襲檢測系統(tǒng),該系統(tǒng)基于屬性技術的相似度檢測技術;趯傩约夹g求解程序代碼之間相似度的系統(tǒng)還有Faidhi和Robinson的程序抄襲檢測系統(tǒng),以及Grier設計的Accuse程序抄襲檢測系統(tǒng)。
單方面只考慮屬性計數(shù)而忽略程序的結(jié)構(gòu)組成,得出的代碼相似度比值準確率較低,在1996年,Verco和Wise對Accuse程序抄襲檢測系統(tǒng)進行了一系列可能性的測試,通過在源程序中加入不影響代碼運行的字符串或用其他結(jié)構(gòu)代替原結(jié)構(gòu)等方式。在對測試結(jié)果分析研究之后指出:只是單純的增加供于檢測的程序?qū)傩詳?shù)量,在程序相似度檢測中并不能得到更加精確的檢測結(jié)果。
G.Whal首次提出了程序結(jié)構(gòu)方向的研究思路,通過分析程序的內(nèi)部結(jié)構(gòu)來匹配兩源代碼之間的相似度。在此后,學者們朝著這兩個方向開始研究,同時也有將二者結(jié)合研究的。
G.Whal設計的Plague系統(tǒng),Micheal Wise設計的YAP3系統(tǒng),Sim系統(tǒng)都是采用的程序結(jié)構(gòu)度量技術進行研究。Donaldson是結(jié)合了屬性技術與程序結(jié)構(gòu)度量兩種技術完成對程序相似度的檢測。
還有用token(標記)序列來表示程序的字符串匹配算法,是根據(jù)編譯原理技術,將程序的語句進行分詞的操作,然后將得到的單詞存入token序列。然后使用字符串匹配算法計算相似度。常用的字符串匹配算法有:最長公共子序列(LCS)算法、余弦算法、編輯距離(Levenshtein)算法等。采用這種方法的有Duploc、NICAD、Dup、Clone Detective、CCFinder、CP-Miner等。
現(xiàn)在使用比較廣泛是Online Judge系統(tǒng),簡稱OJ,是一個在線的判題系統(tǒng),系統(tǒng)通過對用戶提交的代碼進行編譯和運行,對于能夠運行的程序通過預先設定的測試集來檢測代碼運行的結(jié)果,以及運行時間是否在規(guī)定范圍之內(nèi)。該系統(tǒng)最早使用在ACM-ICPC國際大學生程序設計賽和 OI 信息學奧林匹克競賽中。該系統(tǒng)的返回結(jié)果有7種:Wrong Answer:答案不完全正確;Time Limit Exceeded:
運行超出時間限制;Memory Limit Exceeded:超出內(nèi)存限制;Output LimitExceeded:輸出超過限制;Runtime Error:運行時錯誤;Compile Error:編譯錯誤;Accepted :程序通過。該系統(tǒng)采用的是動態(tài)評分方式。
三、研究內(nèi)容
本文的主要研究內(nèi)容以及創(chuàng)新點有:
1)研究文本相似度檢測技術,分別比較點陣圖法、空間向量的余弦算法、最長公共子序列LCS算法、最小編輯距離Levenshtein distance算法對源程序相似度檢測效果。提出基于LCS的C語言程序查重算法。并對源代碼進行適用于LCS算法匹配的預處理操作,改進匹配方式以提高算法匹配效率,提取源代碼的特征屬性求解閾值。
2)研究程序識別相關技術,以及自動評分的兩種常見方法:動態(tài)評分;靜態(tài)評分。本文主要研究靜態(tài)評分方法,將程序抽象提取為SDG的表現(xiàn)形式,分析結(jié)構(gòu)語義對源代碼進行預處理,并提出基于控制流程匹配度的C語言自動評分算法。
3)分析C語言程序的結(jié)構(gòu),分析抽象語法樹的表現(xiàn)形式,將程序劃分為多個不同粒度的子程序,并轉(zhuǎn)換為結(jié)構(gòu)樹。運用編譯原理技術分析數(shù)據(jù)依賴、控制依賴完成樹的構(gòu)建。因此提出基于最小子程序匹配的C語言自動評分算法。
四、提綱
摘要
ABSTRACT
第1章緒論
1.1研究背景及研究意義
1.2國內(nèi)外研究現(xiàn)狀
1.2.1國外研究現(xiàn)狀
1.2.2國內(nèi)研究現(xiàn)狀
1.3本論文的主要研究內(nèi)容
1.4論文組織安排
第2章相關理論及技術介紹
2.1正則表達式
2.1.1正則表達式的符號元
2.1.2正則表達式的使用的規(guī)則
2.1.3Java字符串匹配
2.2編譯原理技術
2.2.1詞法分析
2.2.2語法分析
2.2.3語義分析
2.3系統(tǒng)依賴圖
2.3.1結(jié)構(gòu)化程序設計
2.3.2程序流程圖
2.3.3程序依賴圖
2.3.4系統(tǒng)依賴圖
2.4C語言
2.4.1C語言程序設計
2.4.2C語言結(jié)構(gòu)特點
2.4.3C語言基礎概述
2.4.4C語言代碼多樣性分析
2.5本章小結(jié)
第3章基于LCS的C語言程序查重算法
3.1代碼抄襲概述
3.2抄襲常用方法
3.3源代碼查重預處理
3.4程序代碼查重算法
3.4.1文本相似度算法
3.4.2LCS最長公共子序列
3.4.3閾值分析
3.4.4檢測代碼重復率
3.4.5算法分析
3.5實驗結(jié)果及分析
3.6本章小結(jié)
第4章基于流程控制匹配的自動評分算法
4.1流程控制結(jié)構(gòu)圖
4.1.1流程控制結(jié)構(gòu)劃分
4.1.2流程控制結(jié)構(gòu)劃分細節(jié)說明
4.1.3結(jié)構(gòu)依賴關系劃分
4.1.4結(jié)構(gòu)依賴關系劃分說明
4.2程序流程控制結(jié)構(gòu)圖
4.2.1代碼預處理
4.2.2自定義函數(shù)分析
4.2.3生成流程控制結(jié)構(gòu)圖算法
4.3程序流程控制結(jié)構(gòu)圖匹配算法
4.3.1匹配單位元素定義
4.3.2程序代碼自動評分算法
4.3.3算法分析
4.4實驗結(jié)果及分析
4.5本章小結(jié)
第5章基于最小子程序匹配的自動評分算法
5.1子程序的概述
5.1.1子程序的定義
5.1.2定義基本語句單元
5.2基于結(jié)構(gòu)樹的程序中間表示
5.2.1代碼預處理
5.2.2結(jié)構(gòu)樹定義
5.2.3生成樹狀圖算法
5.3最小子程序匹配評分算法
5.3.1劃分最小粒度子程序
5.3.2子程序匹配描述
5.3.3子程序匹配的自動評分算法
5.3.4算法分析
5.4實驗結(jié)果及分析
5.5本章小結(jié)
第6章總結(jié)與展望
6.1結(jié)論
6.2展望
參考文獻
致謝
五、組織安排
整個論文包含個章節(jié),整體組織結(jié)構(gòu)如下所示:
第一章緒論,根據(jù)研讀的國內(nèi)外文獻簡要描敘一下本文所研究主題的背景、意義,然后介紹國內(nèi)外相關研究方法及成果,以及自己研究的內(nèi)容簡介。
第二章介紹了完成本文實驗的相關理論知識:正則表達式的應用、編譯原理技術、程序與圖的關系、C語言編碼特性、多樣性等。
第三章介紹程序查重算法動態(tài)求解最長公共子序列。
第四章介紹了基于流程控制匹配的自動評分算法第五章介紹了基于最小子程序匹配的自動評分算法。
第六章總結(jié)了整個算法實現(xiàn)過程中主要工作,分析優(yōu)缺點,并對后續(xù)的工作進行展望。
六、進度安排
20XX年11月01日-11月07日 論文選題、
20XX年11月08日-11月20日 初步收集畢業(yè)論文相關材料,填寫《任務書》
20XX年11月26日-11月30日 進一步熟悉畢業(yè)論文資料,撰寫開題報告
20XX年12月10日-12月19日 確定并上交開題報告
20XX年01月04日-02月15日 完成畢業(yè)論文初稿,上交指導老師
20XX年02月16日-02月20日 完成論文修改工作
20XX年02月21日-03月20日 定稿、打印、裝訂
20XX年03月21日-04月10日 論文答辯
七、參考文獻
[1]王甜甜。結(jié)構(gòu)語義相似的程序識別方法研究[D].哈爾濱工業(yè)大學, 2009.
[2]Gupta S, Dubey S K.Automatic Assessment of Programming assignment[J].ComputerScience & Engineering, 2012, 2(1)。
[3]劉月霞,牛志堯,吳寧。面向大規(guī)模在線開放課程的編程題多特征綜合自動評分方法[J].西安交通大學學報, 2016, 50(10):64-70.
[4]Jacobi R P, Ayalarincón M, Carvalho L G, et al. Reconfigurable systems for sequencealignment and for general dynamic programming.[J]. Genetics & Molecular Research Gmr,2005, 4(3):543.
[5]Guo P, Deng Y W, Zhang H Y. A CAPTCHA Image Recognition Algorithm Based on EditDistance[J]. Key Engineering Materials, 2011, 474-476:2203-2207.
[6]Al-Anzi F S, Abuzeina D. Toward an enhanced Arabic text classification using cosinesimilarity and Latent Semantic Indexing[J]. Journal of King Saud University - Computer andInformation Sciences, 2016.
[7]Ducasse S, phane, Rieger M, et al. A language independent approach for detecting duplicatedcode. In: ICSM[J]. 2000:109--118.
[8]Roy C K, Cordy J R. NICAD: Accurate Detection of Near-Miss Intentional Clones UsingFlexible Pretty-Printing and Code Normalization[C]// The, IEEE International Conference onProgram Comprehension. IEEE Computer Society, 2008:172-181.
[9]Baker B S. On finding duplication and near-duplication in large software systems[C]//Reverse Engineering,1995. Proceedings of, Working Conference on. IEEE, 1995:86-95.
[10]Baker B S. Parameterized Duplication in Strings: Algorithms and an Application to SoftwareMaintenance[J]. Siam Journal on Computing, 1997, 26(5):1343-1362.
[11]Juergens E, Deissenboeck F, Hummel B. Clone Detective - A workbench for clone detectionresearch[C]// IEEE, International Conference on Software En
[12]Higo Y, Kamiya T, Kusumoto S, et al. Method and implementation for investigating codeclones in a software system[J]. Information & Software Technology, 2007,49(9–10):985-998.
[13]Livieri S, Higo Y, Matushita M, et al. Very-Large Scale Code Clone Analysis and Visualization of Open Source Programs Using Distributed CCFinder:D-CCFinder[C]//International Conference on Software Engineering. IEEE, 2007:106-115.
【c語言畢業(yè)論文開題報告】相關文章:
漢語言文學畢業(yè)論文開題報告范例03-03
畢業(yè)論文開題報告要求03-18
畢業(yè)論文開題報告的范文03-19
畢業(yè)論文開題報告封面03-18
銀行畢業(yè)論文開題報告03-08
畢業(yè)論文開題報告格式03-26
畢業(yè)論文開題報告范例12-07
教育畢業(yè)論文開題報告12-13
中文畢業(yè)論文開題報告11-28