c语言毕业论文开题报告
- 格式:doc
- 大小:49.00 KB
- 文档页数:13
某高职院校C语言教学辅助系统设计与实现的开题报告一、选题背景随着计算机应用领域的不断拓宽,C语言已成为计算机专业学生必修的编程语言。
在C语言的教学中,通常需要学生完成一定数量的编程作业,并具有一定的难度和复杂程度。
但目前,大多数高职院校C语言教学仍停留在传统的黑板书写、教材讲解、学生练习等教学模式,教学效率低下,教学评价难以客观准确。
因此,设计一种C语言教学辅助系统,能够有效提高C语言教学效率和质量,是当前C语言教学工作中亟需解决的问题。
二、项目意义本系统旨在为高职院校C语言教学提供一种新的教学方式,实现教师与学生之间的互动与交流,创造积极的学习氛围和环境,提高学生的编程能力和创新意识,培养学生动手实践、自主学习的能力。
同时,本系统还可为教师提供辅助教学工具,帮助教师更好地掌握每位学生的学习情况,及时调整教学内容和方法,提高教学效率和质量。
三、项目内容本系统的主要功能包括以下几个方面:(1)C语言知识库:整理并梳理C语言相关知识点和应用技巧,帮助学生全面掌握C语言编程的基础知识。
(2)编程练习:提供多种难度和复杂程度不同的编程题目,让学生通过实际操作和练习掌握C语言编程的基本思想和方法。
(3)在线编程环境:系统内置C语言编程环境,学生可以在线编写、调试、运行程序,并获得实时反馈和错误提示。
(4)作业批改:系统可自动检测学生编写的程序是否符合要求,并为学生提供详细的分析、评价和建议。
(5)学习记录:学生每次编程练习和作业评测的结果将被记录下来,方便教师及时查看和分析学生的学习情况。
(6)实时帮助:学生在学习和编程过程中遇到问题可通过系统在线求助,教师可实时解答学生的疑问,提高学生学习成效。
四、项目技术路线本系统采用B/S架构,前端页面使用HTML、CSS、JavaScript进行开发,后端使用Java编程语言实现。
系统数据库采用MySQL,使用Mybatis作为数据访问框架,使用SpringMVC进行控制层的开发。
基于混合式学习的c语言程序设计课程的教学研究的开题报告一、研究背景和目的:随着信息技术的不断发展,计算机程序设计已经成为应用领域中不可或缺的技能。
在计算机科学与技术教育中,C语言是一门重要的编程语言,它在工程实践中有着广泛的应用。
然而,传统的C语言程序设计教学中,学生只是被要求掌握一些基本的语法规则和程序设计思想,缺乏实际的编程实践,无法真正理解程序设计的本质和过程。
因此,在教学实践中如何提高学生的编程实践能力是一个十分重要的问题。
本研究旨在通过混合式学习的方式,设计一门针对C语言程序设计的教学课程,引导学生深入理解程序设计的本质和过程,提高学生的编程实践能力和解决实际问题的能力,进而培养学生的综合素质和竞争能力。
二、研究内容和方法:1. 研究内容(1)对混合式学习的理论、教学模式及特点进行归纳和总结。
(2)探索基于混合式学习的C语言程序设计课程的设计原则和方法,构建合适的课程教学架构和教学资源,开发相应的教学软件和工具。
(3)通过教育实验和调查研究,评估混合式学习教学模式对学生学习效果和学生综合素质的提高作用。
2. 研究方法(1)文献调研法:对混合式学习教学模式和C语言程序设计课程的相关文献进行综合分析和比较。
(2)教学设计法:结合混合式学习的理论和实践,设计C语言程序设计的混合式学习课程,在课程教学中不断优化和完善教学资源和教学工具。
(3)实验验证法:选择具有一定专业基础的学生,对混合式学习教学模式进行教育实验。
通过比较实验组和对照组的学习效果和学生综合素质的提高情况,评估混合式学习教学模式的有效性和实用性。
三、研究意义和预期成果:1. 研究意义(1)推进C语言程序设计教育教学研究和教学改革。
(2)促进混合式学习在计算机程序设计教育中的应用。
(3)提高学生的编程实践能力和综合素质,培养具有较高应用能力的计算机人才。
2. 预期成果(1)混合式学习的C语言程序设计课程设计方案。
(2)混合式学习教学软件和教学工具。
毕业设计(论文)开题报告
BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。
BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。
它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。
BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)(如图3.9所示)。
BP网络的学习过程主要由四部分组成:
(1)输入模式顺传播(输入模式由输入层经中间层向输出层传播计算);
(2)输出误差逆传播(输出的误差由输出层经中间层传向输入层);
(3)循环记忆训练(模式顺传播与误差逆传播的计算过程反复交替循环进行);
(4)学习结果判别(判定全局误差是否趋向极小值)。
就是根据这四个过程并分别编程。
二、设计(论文)的基本内容
1. 熟悉C语言软件
2.研究BP网络工作原理
3. 神经网络训练、测试过程编程
4. 预测实例。
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语言实现一、综述本课题国内外研究动态, 说明选题的依据和意义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.。
(2011届)本科毕业论文(设计)开题报告题目:C语言考试系统的设计专业:信息管理与信息系统班级:学号:姓名:指导教师:一、选题的背景、意义1.选题的背景教育信息化正成为现代教育发展的必然趋势,作为教育评价和衡量学生能力的考试也正经历着无纸化和网络化的飞跃。
计算机网络技术应用于教育领域,经历了从传统的纸笔考试到计算机辅助考试,再到基于Web的考试。
在线考试系统正成为人们的研究热点之一,且考试的标准化也是要解决的重点问题。
目前,国内外基于网络的远程教学正迅速发展起来。
迫切需要一个能够很好地支持远程教学的专用远程平台。
在这种远程教学平台上,远程作业、远程考试、远程自我练习与测试是非常重要的一环。
而试题库是实现这种教学平台的一种基础和工具,特别是智能化网络试题库系统的研究和实现[1]。
许多高校都为实现学校信息化作出了很大的努力,并取得了很好的效果,如很多学校都在使用的自动排课系统、教务管理系统、学生管理系统等,部分院校都已经基本实现了这一工程。
但是在调查中发现,目前很少有大学拥有正规的在线考试系统。
当然,也有很多的考试系统,如很多学校使用的C/S架构的系统,在应用到实际的考试中时出现了很多问题,例如要安装相应软件、应用面较小等缺点,在很大程度上不能够满足这一领域的需求[2]。
2.选题的意义目前的考试系统主要应用于英语、计算机、会计电算化等考试,而对于理工类的考试由于要涉及到计算过程和程序等的描绘,目前还很少有开发出完全由计算机自动阅卷的网上在线考试系统,目前现有的一些主要是对客观题进行设置,比如选择、填空等,有些程序设计题也只是以部分关键词匹配作为判分标准,改卷时准确率方面还稍有欠缺。
还有一些考题仍然要分为主观题和客观题,但主观题部分要求教师要进行人工协作阅卷。
为了充分利用网络资源,提高教学管理水平,减轻考务负担,提高工作效率,实现在线考试是当前考试系统的一个必然发展趋势,最终能够达到在线考试自动化的真正安全、可靠、完善的网上在线考试系统。
c 毕业设计开题报告c 毕业设计开题报告一、选题背景和意义计算机科学与技术是一门涉及计算机硬件和软件的学科,它在当今社会中扮演着重要的角色。
随着计算机技术的不断发展和普及,计算机科学与技术的研究和应用也日益广泛。
在这个信息化时代,计算机技术已经渗透到了各行各业,为人们的生活和工作带来了巨大的便利。
本次毕业设计的选题是基于C语言的开发,C语言作为一种高级程序设计语言,具有广泛的应用领域。
通过深入研究C语言的开发,可以更好地理解和掌握计算机科学与技术的核心知识和技能。
同时,本次毕业设计的选题也具有一定的实际意义,可以为相关领域的研究和应用提供有益的参考和借鉴。
二、研究目标和内容本次毕业设计的主要目标是设计和开发一个基于C语言的应用程序。
通过该应用程序的设计和开发,旨在加深对C语言的理解和运用,并掌握软件开发的基本方法和技巧。
具体的研究内容包括以下几个方面:1. C语言基础知识的学习和掌握:深入了解C语言的语法规则、数据类型、运算符和控制语句等基础知识,为后续的应用程序设计打下坚实的基础。
2. 应用程序需求分析和设计:通过对实际应用场景的调研和需求分析,确定应用程序的功能和特性,并进行详细的设计和规划。
3. 应用程序的开发和测试:根据设计方案,使用C语言进行应用程序的开发,包括界面设计、功能实现和错误处理等。
同时,进行充分的测试和调试,确保应用程序的正确性和稳定性。
4. 应用程序的优化和改进:在基本功能实现的基础上,进一步对应用程序进行优化和改进,提高其性能和用户体验。
三、研究方法和技术路线本次毕业设计的研究方法主要包括文献调研、实证分析和实验研究。
通过对相关文献和资料的查阅和分析,了解C语言的开发现状和发展趋势。
在此基础上,通过实证分析和实验研究,验证和评估所设计和开发的应用程序的性能和效果。
技术路线方面,首先进行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语言毕业论文开题报告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]王甜甜。