c语言毕业论文开题报告

合集下载

c 毕业设计开题报告

c 毕业设计开题报告

c 毕业设计开题报告毕业设计开题报告一、选题背景随着信息技术的快速发展,计算机科学与技术的应用范围越来越广泛。

在这个信息化的时代,计算机已经渗透到我们生活的方方面面。

作为一名计算机专业的学生,我深感毕业设计的重要性。

本次毕业设计的选题是基于C语言的开发,旨在通过深入研究C语言的特点和应用,提高自己的编程能力和实践经验。

二、选题意义C语言作为一种高级程序设计语言,具有广泛的应用领域。

它不仅是其他高级语言的基础,也是操作系统、嵌入式系统和游戏开发等领域的重要工具。

通过深入学习和应用C语言,可以提高解决问题的能力和编程思维,为今后的职业发展打下坚实的基础。

三、研究目标本次毕业设计的主要目标是通过研究C语言的特点和应用,掌握C语言的基本语法和常用函数,能够独立完成一些简单的C语言程序设计。

同时,还将结合实际应用场景,探索C语言在不同领域的具体应用,如图像处理、数据分析等。

四、研究内容1. C语言基础知识的学习:包括C语言的语法、变量、运算符、控制结构等基本概念和知识点的学习。

2. C语言常用函数的研究:对于C语言中常用的函数,如输入输出函数、字符串处理函数、数学函数等,进行深入研究和实践。

3. C语言应用案例的开发:结合实际应用场景,选择一些具有代表性的C语言应用案例进行开发和实践,如简单的学生信息管理系统、图像处理算法等。

五、研究方法1. 文献研究法:通过查阅相关的书籍、论文和网络资料,系统学习C语言的相关知识和应用。

2. 实践探索法:通过编写C语言程序,实际操作和运行代码,深入理解C语言的特点和应用。

3. 经验总结法:在实践过程中,及时总结经验和教训,不断改进和提高编程能力。

六、预期成果1. 毕业设计报告:撰写一份完整的毕业设计报告,包括选题背景、研究目标、研究内容、研究方法、实验结果等内容。

2. C语言程序设计实践:完成一些简单的C语言程序设计实践,包括基本语法的运用、常用函数的应用等。

3. 应用案例开发:完成一个具有实际应用价值的C语言应用案例,如学生信息管理系统、图像处理算法等。

通用数据库的C语言实现【开题报告】

通用数据库的C语言实现【开题报告】

开题报告信息与计算科学通用数据库的C语言实现一、综述本课题国内外研究动态, 说明选题的依据和意义dbm是在UNIX系统中很流行的数据库函数库, 它是由Ken Thompson开发的, 当时使用了动态散列结构. BSD的开发者扩充了dbm函数库, 并将其改名为ndbm. ndbm函数库包括在BSD和SVR4中. 而在Linux系统上, 开发者们用gdbm库来支持dbm函数库和ndbm函数库[7].dbm函数库所管理的数据库是一个轻量级的数据库, 纯粹以二进制储存的一种数据库, 常用于系统底层的数据库.dbm函数库主要的两个特点是动态散列算法和键值查找方式. 采用动态散列算法时在查找数据时非常快速, 当然其付出的代价就是插入数据异常的缓慢[2] ,故其适合于储存相对比较静态的索引话数据. 另外对于键值查找方式, dbm数据库是通过包括两个基本元素数据块, 一块是想要保存起来的数据, 另一块是对其进行检索时用做关键字的数据. 关键字的取值被用做检索储存数据的索引, 就如同书签一般.至今, dbm有许多版本, 但这些实现都有一个根本的缺点是: 他们都不支持多个进程对数据库的并发更新. 它们都没有提供并发控制(如记录锁).绝大部分商用数据库函数库提供多进程同时更新数据库所需要的并发控制[5]. 这些系统一般都使用建议记录锁, 不过, 它们也常常实现自己的锁原语, 以避免为获得一把无竞争的锁而需的系统调用开销[6]. 本文就针对此, 通过锁机制来改进它.二、研究的基本内容, 拟解决的主要问题:研究的基本内容:在Linux环境下用C语言实现有并发控制的类dbm数据库函数库.解决的主要问题:1.数据在内存处理时使用的结构数据在文件和内存的读取问题.2.数据在文件和内存的读取问题.3.数据库文件的并发控制问题.三、研究步骤、方法及措施:研究步骤:1.查阅文献资料, 做好笔记;2.仔细阅读研究文献资料;3.翻译英文资料, 并在老师指导下修改英文翻译;4. 修改英文翻译, 撰写文献综述;5. 在老师指导下, 确定整个论文的思路, 列出论文提纲, 撰写开题报告;6.论文定稿.撰写毕业论文初稿;6. 编写程序, 并调试完善;7.根据程序完成论文初稿, 并反复修改;8. 完成论文正稿.方法、措施: 通过到图书馆, 上网等查阅收集资料, 上万方数据库查找文章, 参考相关内容.在老师指导下, 根据dbm的函数接口开发自己的等价接口类型,并做好程序调试. 最后根据程序运行结果的数据来完成论文.四、参考文献:[1](美)W.Richard Stevens, Setphen A Rago. Advanced Programming in the UNIXEnvironment [M]. 人民邮电出版社, 2006. 2.[2](英)Neil Matthew, Richard Stones著. 杨晓云等译. Linux程序设计(第二版) [M]. 机械工业出版社, 2002. 1.[3]萨师煊, 王珊. 数据库系统概论(第四版) [M]. 高等教育出版社, 2006. 5.[4]王珊, 孟小峰. 数据库系统导论(第七版) [M]. 机械工业出版社, 2000. 10.[5]Abnhrmx Silbersehaa. 数据库系统概念[M]. 机械工业出版, 2006. 10.[6](美)沃尔特, 本-甘, 萨卡. Microsoft SQL Server 2005技术内幕-T-SQL程序设计[M].北京:电子工业出版社, 2007: 50-80.[7]微软公司著. 熊盛新, 许志庆, 李钦译. Visual C# .NET语言参考手册[M]. 北京:清华大学出版社, 2002年: 160-180.[8](美)Kaili Watson . C#2005数据库编程经典教程[M]. 人民邮电出版社, 2007: 90-120.[9]刘乃丽. 精通2.0+SQLServer 2005项目开发[M]. 北京:人民邮电出版社,2007: 100-150.[10]Craig Hunt. Linux Sendmail Administration (Craig Hunt Linux Library) [M]. Sybex, 2001-2[11]欧立奇, 康祥顺, 马煜编著. Visual C# .NET 案例开发集锦[M].北京:电子工业出版社,2006: 233-245.。

C语言教学网站及网上考试系统的设计与实现——开题报告

C语言教学网站及网上考试系统的设计与实现——开题报告

毕业设计(论文)开题报告设计(论文)题目:C语言教学网站及网上考试系统的设计与实现20年月日毕业设计(论文)开题报告1本课题的研究意义,国内外研究现状、水平和发展趋势现行考试组织方式是先由教师向打字室提供试卷初稿,再由打字室统一排版打印,最后分发给学生考试。

教师在试题的筛选、更新、对稿,试卷评定和试卷的分析上需要花费大量的时间。

因此建立网络考试系统来实现试题库的管理与分析,试卷的评分与统计,能把老师从繁重的工作中解脱出来,将提高教师的工作效率。

教师需求:能通过系统实现快速的检索题库,并对题库进行编辑修改;题库能按课程、题型、章节、难度进行分类;自动生成的试卷难度适中,题型分布和知识点分布合理,符合客观试卷实际;对不同场次的同一科试卷难度相同,内容不同。

系统能够对客观题自动评分,对主观题实现手动评分,使分数评定趋于合理。

考试情况能自动统计分析。

能打印试卷、试卷分析表和成绩表。

学生需求:可以分场次在计算机上登陆考试,在一定时间后可以查询成绩、试卷、标准卷。

随着教育科学和计算机网络技术的发展,以多媒体技术、网络技术等为代表的信息技术迅猛的发展,给现代教育带来了发展动力,对教学手段和模式产生了巨大的影响。

在这种形式下发展以互联网为基础的远程教育必将成为现代教育的发展方向。

基于技术开发的网上考试系统是采用三层WEB应用体系结约的模块设计方法,借助服务器组件数据访问技术来实现。

网络化教育代表了教育改革的一个发展方向,已经成为现代教育的一个特征,并对教育的发展形成新的推动力。

随着Internet的迅速发展和广泛普及,建立在其上的远程教育成为现代教育技术未来发展方向之一,考试测试作为远程教育的一个子系统也成为一个重要的研究领域。

现代远程教育作为一种新的教学手段已经开始进入我们的生活,正在给传统教育模式带来新的变革,并对教育的发展形成新的推动力。

Internet技术的发展使得考试的技术手段和载体发生了革命性的变化,Internet的开放性、分布性的特点和基于Intemet的巨大的计算能力使得考试突破了时间和空间的限制。

C语言考试系统的设计[开题报告]

C语言考试系统的设计[开题报告]

(2011届)本科毕业论文(设计)开题报告题目:C语言考试系统的设计专业:信息管理与信息系统班级:学号:姓名:指导教师:一、选题的背景、意义1.选题的背景教育信息化正成为现代教育发展的必然趋势,作为教育评价和衡量学生能力的考试也正经历着无纸化和网络化的飞跃。

计算机网络技术应用于教育领域,经历了从传统的纸笔考试到计算机辅助考试,再到基于Web的考试。

在线考试系统正成为人们的研究热点之一,且考试的标准化也是要解决的重点问题。

目前,国内外基于网络的远程教学正迅速发展起来。

迫切需要一个能够很好地支持远程教学的专用远程平台。

在这种远程教学平台上,远程作业、远程考试、远程自我练习与测试是非常重要的一环。

而试题库是实现这种教学平台的一种基础和工具,特别是智能化网络试题库系统的研究和实现[1]。

许多高校都为实现学校信息化作出了很大的努力,并取得了很好的效果,如很多学校都在使用的自动排课系统、教务管理系统、学生管理系统等,部分院校都已经基本实现了这一工程。

但是在调查中发现,目前很少有大学拥有正规的在线考试系统。

当然,也有很多的考试系统,如很多学校使用的C/S架构的系统,在应用到实际的考试中时出现了很多问题,例如要安装相应软件、应用面较小等缺点,在很大程度上不能够满足这一领域的需求[2]。

2.选题的意义目前的考试系统主要应用于英语、计算机、会计电算化等考试,而对于理工类的考试由于要涉及到计算过程和程序等的描绘,目前还很少有开发出完全由计算机自动阅卷的网上在线考试系统,目前现有的一些主要是对客观题进行设置,比如选择、填空等,有些程序设计题也只是以部分关键词匹配作为判分标准,改卷时准确率方面还稍有欠缺。

还有一些考题仍然要分为主观题和客观题,但主观题部分要求教师要进行人工协作阅卷。

为了充分利用网络资源,提高教学管理水平,减轻考务负担,提高工作效率,实现在线考试是当前考试系统的一个必然发展趋势,最终能够达到在线考试自动化的真正安全、可靠、完善的网上在线考试系统。

c 毕业设计开题报告

c 毕业设计开题报告

c 毕业设计开题报告c 毕业设计开题报告一、选题背景和意义计算机科学与技术是一门涉及计算机硬件和软件的学科,它在当今社会中扮演着重要的角色。

随着计算机技术的不断发展和普及,计算机科学与技术的研究和应用也日益广泛。

在这个信息化时代,计算机技术已经渗透到了各行各业,为人们的生活和工作带来了巨大的便利。

本次毕业设计的选题是基于C语言的开发,C语言作为一种高级程序设计语言,具有广泛的应用领域。

通过深入研究C语言的开发,可以更好地理解和掌握计算机科学与技术的核心知识和技能。

同时,本次毕业设计的选题也具有一定的实际意义,可以为相关领域的研究和应用提供有益的参考和借鉴。

二、研究目标和内容本次毕业设计的主要目标是设计和开发一个基于C语言的应用程序。

通过该应用程序的设计和开发,旨在加深对C语言的理解和运用,并掌握软件开发的基本方法和技巧。

具体的研究内容包括以下几个方面:1. C语言基础知识的学习和掌握:深入了解C语言的语法规则、数据类型、运算符和控制语句等基础知识,为后续的应用程序设计打下坚实的基础。

2. 应用程序需求分析和设计:通过对实际应用场景的调研和需求分析,确定应用程序的功能和特性,并进行详细的设计和规划。

3. 应用程序的开发和测试:根据设计方案,使用C语言进行应用程序的开发,包括界面设计、功能实现和错误处理等。

同时,进行充分的测试和调试,确保应用程序的正确性和稳定性。

4. 应用程序的优化和改进:在基本功能实现的基础上,进一步对应用程序进行优化和改进,提高其性能和用户体验。

三、研究方法和技术路线本次毕业设计的研究方法主要包括文献调研、实证分析和实验研究。

通过对相关文献和资料的查阅和分析,了解C语言的开发现状和发展趋势。

在此基础上,通过实证分析和实验研究,验证和评估所设计和开发的应用程序的性能和效果。

技术路线方面,首先进行C语言基础知识的学习和掌握,包括语法规则、数据类型和运算符等。

然后,进行应用程序需求分析和设计,确定应用程序的功能和特性。

OSPF协议的C语言仿真设计--开题报告

OSPF协议的C语言仿真设计--开题报告

毕业设计(论文)开题报告题目:OSPF协议的C语言仿真设计学生姓名: xxxx学号: 050703236专业:通信工程指导教师:xxxxxxxxxxxxx2009 年月日1.结合毕业设计(论文)课题情况,根据所查阅的文献资料,每人撰写2000字左右的文献综述:随着Internet技术在全球范围的飞速发展,OSPF已成为目前Internet广域网和Intranet企业网采用最多、应用最广泛的路由协议之一。

OSPF(Open Shortest Path First)路由协议是IEIF(Internet Engineering Task Force)IGP工作小组提出的,其规范是公开的,目前使用的OSPF是其第二版,定义于RFC2328。

OSPF协议是基于链路状态和SPF 技术[1],是以传统使用的TCP/IP环境设计的,包括支持CIDR,带标记的外部路由信息。

OSPF是内部网关协议,它被设计为运行在单个自治系统内,也就是说是在一个自治系统内部各个路由器之间相互交换发布路由信息[2]。

OSPF协议是一种动态路由协议,它内迅速地检测到自治系统内网络拓扑的变化(比如某个网络端口不能工作),在一段网络路由信息汇聚的时间后,计算出新的、正确的路由[3]。

路由信息的汇聚时间很短,并且引起的网络的开销很小。

OSPF路由协议是一种典型的链路状态的路由协议,在一个自治系统中,所有的OSPF路由器都维护一个相同的描述这个自治系统结构的数据库,数据库描述了整个自治系统的拓扑信息,也叫链路状态数据库[4]。

该数据库中存放的是路由域中相应链路的状态信息,是由一个个链路状态广告(Link State Advertisement,我们简称为LSA)构成的。

OSPF路由器正是通过这个数据库计算出其OSPF路由表的。

在一个自治系统中,所有的路由器并行的运行同样的算法。

路由器以自己为根节点,由链路状态数据库构造出最短路径生成树,这个最短路径生成树描述了去自治系统内的每一个目的地址的路由信息,自治系统外的地址以叶子的形式出现在最短树上。

大一C语言课题报告总结(5篇)

大一C语言课题报告总结(5篇)

大一C语言课题报告总结(5篇)在本学期学习C语言将近一个学期后,我们进展了C语言实训,做了一个比拟简单、功能较全的学籍治理系统。

虽然实训为期不长,但对我C 语言水平的提高和对C的熟悉理解有很大帮忙。

在这次实训中,我对C语言有了一个更深的了解熟悉,也使我这个学期学的学问得到了稳固。

虽然在实训中遇到了很多的困难,比方说一开头在文件方面的学问比拟薄弱,在对输入的数据保存、已输入条数的统计方面做得缺乏。

但经过自己对文件内容的学习和向他人的请教,在这方面的学问得到补充,问题也得到了解决。

在这次实训中,当自己每次解决一个问题时,当自己经过屡次调试、修改使程序得以运行时,自己心中那份自信、满意、满意感油然而生。

经过这次实训,使我加强了对C语言的兴趣。

同时在这次实训中,也使我发觉了很多的问题。

在实训中,我熟悉到自己还有许多的学问没学好,根底学问没理清,而且很多东西还要去翻书,去上网搜寻。

而且遇到一些小错误运行不出来,就会烦躁担心,觉得有些自暴自弃,以后要克制,尽量保持一颗良好的心态,学好C语言,也学好用C语言编写一个按要求的系统。

同时这次实训也使我更加深化了C语言学习方法。

算法是程序的灵魂,在我们每遇到一个比拟简单的编程问题时,我们应当先写出该问题解决的算法,然后再去实现编代码。

做到了这样,问题才能更快地解决。

软件开发少不了合作,只有合作才能共同提高,只有互补才能取长补短,共同进步。

通过这次实训,我也熟悉到自己有很多的方面需要改良和有待提高。

对于以后,我会从以下几方面连续努力:1、加强对算法的学习,到达精通一些根本算法的水平。

2、编程多加强实践,多上机学习。

3、打好根底,扎实功底,注意根底理论学习,不好高骛远。

4、加强和同学的合作,遇到问题多争论,多查找解决问题的方法,总之,这一切将对我C语言的学习有很大帮忙。

大一C语言课题报告总结二在初学C语言的一个学期后,我们进展了C语言实训阶段,尝试编写一个比拟简单的程序系统。

《C语言程序设计》网络课程设计开题报告

《C语言程序设计》网络课程设计开题报告

《C语言程序设计》网络课程设计一.题目来源生产/社会实际。

二.阅读的主要参考文献及资料名称[1] 张琴珠,计算机辅助教育,北京师范大学出版社[2] 何克抗、郑永柏、谢幼如,教学系统设计,北京师范大学出版社,2002年[3] 何克抗,教育技术学,北京师范大学出版社,2002年[4] http://219.220.233.125:501/dzswwl/lw.doc[5] /myjianjie/beyerongwen12.htm[6] /Print.php?PID=72091d80[7] /shownews.asp?newsid=510[8] 贾义敏,华南师范大学电教系网络课程学习支撑环境的设计,中国教育技术网[9] 谢幼如,高等学校网络课程的开发,电化教育研究,2000年第8期[10] 方慕云,网上课程的建设与教学实践,中国远程教育,2000年8月[11] 王英玫,基于建构主义学习理论网络课程的设计研究,中国教育技术网[12] 林君芬、余胜泉,关于我国网络课程现状与问题的思考,中国教育技术网[13] 郑世良,基于资源型网络学习的教学设计,信息技术教育杂志[13] 施旭瑛,网络课程的功能结构及教学模式初探,中国教育技术网[14] 毕强,网络信息资源管理,吉林科学技术出版社,1992年[16]「美」小威廉姆E多尔著,王红宇译,后现代课程观,教育科学出版社,2000年9月[17] Learning and Teaching in Cyberspace, Gkearsley, /~gkearsley三.网络课程定义及国内外研究现状◆网络课程的定义网络课程,顾名思义就是用于网络教育的课程,具有网络的特点,通过网络表现的某门学科的教学内容及实施的教学活动的总和,它包括两个组成部分:按一定的教学目标、教学策略组织起来的教学内容和网络教学支撑环境,其中网络教学支撑环境特指支持网络教学的软件工具、教学资源以及在网络教学平台上实施的教学活动。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c语言毕业论文开题报告c语言毕业论文开题报告本文简介:计算思维的本质是抽象和自动化。

对于C 语言程序来说,抽象就是使用程序、函数、函数调用以及数据类型、常量、变量、数组和链表等元素描述现实生活中的系统、功能、功能调用以及单个特征或特征组合等,自动化则体现为函数内部的语句在EIP寄存器加法操作支持下顺序自动地执行以及函数之间的调用在内存堆栈区支持下自动地进c语言毕业论文开题报告本文内容:计算思维的本质是抽象和自动化。

对于C语言程序来说,抽象就是使用程序、函数、函数调用以及数据类型、常量、变量、数组和链表等元素描述现实生活中的系统、功能、功能调用以及单个特征或特征组合等,自动化则体现为函数内部的语句在EIP寄存器加法操作支持下顺序自动地执行以及函数之间的调用在内存堆栈区支持下自动地进行跳转。

以下是我们分享的c语言毕业论文开题报告,供你参考借鉴。

一、研究背景及研究意义信息技术的快速发展加速了教育信息化的进程,在线教育系统与测试系统的出现为学生提供了一个可以提高和检测综合能力的便捷途径。

另一方面,C语言教学在各大高校中都是必修课程之一,且在计算机相关课程教学中,针对某个理论性的知识点的考察,一般会以客观题的形式给出。

由于答案具有唯一性,通过简单得匹配方式便能识别正确与否从而给出相应成绩。

针对这类客观题的自动评分技术已经相当成熟,因此后续在自动评分方向的研究中主要集中于主观题的自动评判。

在过去几年的积极探索阶段到现有的实际研究成果来看,有关C语言知识的检测中对编程题的考察是必不可少的。

虽然检测的形式各不相同(填写空缺代码块完成完整程序,按题目要求编写整个程序),但终究是为了考察学生掌握编程技巧及编程思想的程度。

本课题研究的主要目的是结合编程实现的特征,为一个正在初始运营中的在线测试平台提供一个能查重与自动评分的功能模块。

其中最终评分包括两个部分,一是对每个学生提交的程序代码文件相互之间进行相似度检测,当相似度超过预定阈值作为抄袭处理,此为查重检测。

二是将学生程序与模板程序匹配检测相似度并由此计算最终得分。

程序语言与自然语言在各自适用领域上有较大差异,其语言虽然都有词法、语法规则等,但编写程序语言时并没有自然语言那么的灵活,不会出现一词多义,一义多词,他只有固定的关键字,标识符编写规则,功能实现结构等,所以较于自然语言来说识别起来要容易一些。

国内外对编程题相似度检测及自动评分都有不少的研究,现也有一些系统比较成熟。

目前,各大高校对C 语言课程考察方式一般还是以传统的纸质化为主。

这样的考试方法在人工阅卷的过程中存在着些许的不确定因素,随着教育的普及,能力测试之后需要批改的试卷绝不是一个小数目。

这单一单调的工作很容易使得批改人员疲惫不堪,从而阅卷出错率将会被动的提高。

利用计算机完成自动阅卷将杜绝这一问题的出现,同时,其运行速度快能及时的给学生反馈结果也没有人的感官情绪,能公平公正的对待每一份试卷。

对于主观题的自动评分技术还在不断的完善中,由于在主观题的识别所需的技术:人工智能、自然语言处理、模式识别等还处于起步阶段。

所以主观题自动阅卷技术不能一蹴而就,还需要不断的实验研究。

目前,探索开发出合理试用的主观题自动评分系统是一个技术难题,若能将开发的系统投入教学或是别的考察里面,将会大大的节省人力物力。

二、国内外研究现状国外对文本相似度检测的研究早国内,在20世纪中期,就有学者提出让计算机同人工阅卷一般来对主观题如作文进行评阅。

至今,经过数多学者的致力研究,出现了许多与教育结合的应用系统,并已投入使用。

在对自然语言的文本分析处理方法的研究同时,随着计算机教育的普及,程序代码的检测也在逐渐兴起。

1966年,Ellis Page开发了一个模拟人工评分的系统Project EssayGrade(PEG),该系统是总结学生提交文本的特征向量,然后将文本的特征进行量化,最后根据量化的结果对其文本进行判分。

1967年,Halstead提出了用属性计数法计算程序代码之间的相似度,所谓的属性是指代码的某些度量值,如:空行的数目,字符量,语句量,控制结构量等,在他的研究基础之上,1977年Otteiistein了检测FORTRAN编程语言的代码抄袭检测系统,该系统基于属性技术的相似度检测技术。

基于属性技术求解程序代码之间相似度的系统还有Faidhi和Robinson的程序抄袭检测系统,以及Grier设计的Accuse程序抄袭检测系统。

单方面只考虑属性计数而忽略程序的结构组成,得出的代码相似度比值准确率较低,在1996年,Verco和Wise对Accuse程序抄袭检测系统进行了一系列可能性的测试,通过在源程序中加入不影响代码运行的字符串或用其他结构代替原结构等方式。

在对测试结果分析研究之后指出:只是单纯的增加供于检测的程序属性数量,在程序相似度检测中并不能得到更加精确的检测结果。

G.Whal首次提出了程序结构方向的研究思路,通过分析程序的内部结构来匹配两源代码之间的相似度。

在此后,学者们朝着这两个方向开始研究,同时也有将二者结合研究的。

G.Whal设计的Plague系统,Micheal Wise设计的YAP3系统,Sim系统都是采用的程序结构度量技术进行研究。

Donaldson是结合了属性技术与程序结构度量两种技术完成对程序相似度的检测。

还有用token(标记)序列来表示程序的字符串匹配算法,是根据编译原理技术,将程序的语句进行分词的操作,然后将得到的单词存入token序列。

然后使用字符串匹配算法计算相似度。

常用的字符串匹配算法有:最长公共子序列(LCS)算法、余弦算法、编辑距离(Levenshtein)算法等。

采用这种方法的有Duploc、NICAD、Dup、Clone Detective、CCFinder、CP-Miner等。

现在使用比较广泛是 Online Judge 系统,简称 OJ,是一个在线的判题系统,系统通过对用户提交的代码进行编译和运行,对于能够运行的程序通过预先设定的测试集来检测代码运行的结果,以及运行时间是否在规定范围之内。

该系统最早使用在 ACM-ICPC 国际大学生程序设计赛和 OI 信息学奥林匹克竞赛中。

该系统的返回结果有 7 种:Wrong Answer : 不完全正确;Time Limit Exceeded : 运行超出时间限制;Memory Limit Exceeded : 超出内存限制;Output LimitExceeded: 输出超过限制;Runtime Error : 运行时错误;Compile Error : 编译错误;Accepted : 程序通过。

该系统采用的是动态评分方式。

三、研究内容本文的主要研究内容以及创新点有: 1)研究文本相似度检测技术,分别比较点阵图法、空间向量的余弦算法、最长公共子序列LCS算法、最小编辑距离Levenshtein distance算法对源程序相似度检测效果。

提出基于LCS的C语言程序查重算法。

并对源代码进行适用于LCS算法匹配的预处理操作,改进匹配方式以提高算法匹配效率,提取源代码的特征属性求解阈值。

2)研究程序识别相关技术,以及自动评分的两种常见方法:动态评分;静态评分。

本文主要研究静态评分方法,将程序抽象提取为SDG的表现形式,分析结构语义对源代码进行预处理,并提出基于控制流程匹配度的C语言自动评分算法。

3)分析 C语言程序的结构,分析抽象语法树的表现形式,将程序划分为多个不同粒度的子程序,并转换为结构树。

运用编译原理技术分析数据依赖、控制依赖完成树的构建。

因此提出基于最小子程序匹配的C语言自动评分算法。

四、提纲摘要 ABSTRACT 第 1 章绪论 1.1 研究背景及研究意义 1.2 国内外研究现状 1.2.1 国外研究现状 1.2.2 国内研究现状 1.3 本的主要研究内容 1.4 论文组织安排第 2 章相关理论及技术介绍 2.1 正则表达式2.1.1 正则表达式的符号元 2.1.2 正则表达式的使用的规则 2.1.3Java字符串匹配 2.2 编译原理技术 2.2.1 词法分析 2.2.2 语法分析 2.2.3 语义分析 2.3 系统依赖图 2.3.1 结构化程序设计 2.3.2 程序流程图 2.3.3 程序依赖图 2.3.4 系统依赖图 2.4C语言 2.4.1C语言程序设计 2.4.2C语言结构特点 2.4.3C语言基础概述 2.4.4C语言代码多样性分析 2.5 本章小结第 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 实验结果及分析 3.6 本章小结第 4 章基于流程控制匹配的自动评分算法 4.1 流程控制结构图 4.1.1 流程控制结构划分4.1.2 流程控制结构划分细节说明 4.1.3 结构依赖关系划分 4.1.4 结构依赖关系划分说明 4.2 程序流程控制结构图 4.2.1 代码预处理 4.2.2 自定义函数分析 4.2.3 生成流程控制结构图算法 4.3 程序流程控制结构图匹配算法 4.3.1 匹配单位元素定义 4.3.2 程序代码自动评分算法 4.3.3 算法分析 4.4 实验结果及分析 4.5 本章小结第 5 章基于最小子程序匹配的自动评分算法 5.1 子程序的概述 5.1.1 子程序的定义 5.1.2 定义基本语句单元 5.2 基于结构树的程序中间表示 5.2.1 代码预处理 5.2.2 结构树定义 5.2.3 生成树状图算法 5.3 最小子程序匹配评分算法 5.3.1 划分最小粒度子程序 5.3.2 子程序匹配描述 5.3.3 子程序匹配的自动评分算法5.3.4 算法分析 5.4 实验结果及分析 5.5 本章小结第 6 章与展望 6.1 结论 6.2 展望参考文献致谢五、组织安排整个论文包含个章节,整体组织结构如下所示:第一章绪论,根据研读的国内外文献简要描叙一下本文所研究主题的背景、意义,然后介绍国内外相关研究方法及成果,以及自己研究的内容简介。

第二章介绍了完成本文实验的相关理论知识:正则表达式的应用、编译原理技术、程序与图的关系、C语言编码特性、多样性等。

第三章介绍程序查重算法动态求解最长公共子序列。

第四章介绍了基于流程控制匹配的自动评分算法第五章介绍了基于最小子程序匹配的自动评分算法。

第六章总结了整个算法实现过程中主要工作,分析优缺点,并对后续的工作进行展望。

六、进度安排 20XX年11月01日-11月07日论文选题、 20XX年11月08日-11月20日初步收集毕业论文相关材料,填写《任务书》 20XX年11月26日-11月30日进一步熟悉毕业论文资料,撰写开题 20XX年12月10日-12月19日确定并上交开题报告 20XX年01月04日-02月15日完成毕业论文初稿,上交指导老师 20XX年02月16日-02月20日完成论文修改工作 20XX年02月21日-03月20日定稿、打印、装订 20XX年03月21日-04月10日论文答辩七、参考文献 [1]王甜甜。

相关文档
最新文档