C语言查重与自动评分算法研究
摘要 | 第4-5页 |
ABSTRACT | 第5-6页 |
第1章 绪论 | 第10-14页 |
1.1 研究背景及研究意义 | 第10-11页 |
1.2 国内外研究现状 | 第11-13页 |
1.2.1 国外研究现状 | 第11-12页 |
1.2.2 国内研究现状 | 第12-13页 |
1.3 本论文的主要研究内容 | 第13页 |
1.4 论文组织安排 | 第13-14页 |
第2章 相关理论及技术介绍 | 第14-23页 |
2.1 正则表达式 | 第14-16页 |
2.1.1 正则表达式的符号元 | 第14页 |
2.1.2 正则表达式的使用的规则 | 第14-15页 |
2.1.3 Java字符串匹配 | 第15-16页 |
2.2 编译原理技术 | 第16-17页 |
2.2.1 词法分析 | 第17页 |
2.2.2 语法分析 | 第17页 |
2.2.3 语义分析 | 第17页 |
2.3 系统依赖图 | 第17-20页 |
2.3.1 结构化程序设计 | 第17-18页 |
2.3.2 程序流程图 | 第18-19页 |
2.3.3 程序依赖图 | 第19页 |
2.3.4 系统依赖图 | 第19-20页 |
2.4 C语言 | 第20-22页 |
2.4.1 C语言程序设计 | 第20页 |
2.4.2 C语言结构特点 | 第20-21页 |
2.4.3 C语言基础概述 | 第21页 |
2.4.4 C语言代码多样性分析 | 第21-22页 |
2.5 本章小结 | 第22-23页 |
第3章 基于LCS的C语言程序查重算法 | 第23-35页 |
3.1 代码抄袭概述 | 第23-24页 |
3.2 抄袭常用方法 | 第24页 |
3.3 源代码查重预处理 | 第24-27页 |
3.4 程序代码查重算法 | 第27-33页 |
3.4.1 文本相似度算法 | 第28页 |
3.4.2 LCS最长公共子序列 | 第28-29页 |
3.4.3 阈值分析 | 第29-30页 |
3.4.4 检测代码重复率 | 第30-32页 |
3.4.5 算法分析 | 第32-33页 |
3.5 实验结果及分析 | 第33-34页 |
3.6 本章小结 | 第34-35页 |
第4章 基于流程控制匹配的自动评分算法 | 第35-48页 |
4.1 流程控制结构图 | 第35-38页 |
4.1.1 流程控制结构划分 | 第35-36页 |
4.1.2 流程控制结构划分细节说明 | 第36页 |
4.1.3 结构依赖关系划分 | 第36-37页 |
4.1.4 结构依赖关系划分说明 | 第37-38页 |
4.2 程序流程控制结构图 | 第38-42页 |
4.2.1 代码预处理 | 第38页 |
4.2.2 自定义函数分析 | 第38-40页 |
4.2.3 生成流程控制结构图算法 | 第40-42页 |
4.3 程序流程控制结构图匹配算法 | 第42-44页 |
4.3.1 匹配单位元素定义 | 第42页 |
4.3.2 程序代码自动评分算法 | 第42-44页 |
4.3.3 算法分析 | 第44页 |
4.4 实验结果及分析 | 第44-46页 |
4.5 本章小结 | 第46-48页 |
第5章 基于最小子程序匹配的自动评分算法 | 第48-56页 |
5.1 子程序的概述 | 第48-49页 |
5.1.1 子程序的定义 | 第48页 |
5.1.2 定义基本语句单元 | 第48-49页 |
5.2 基于结构树的程序中间表示 | 第49-51页 |
5.2.1 代码预处理 | 第49页 |
5.2.2 结构树定义 | 第49页 |
5.2.3 生成树状图算法 | 第49-51页 |
5.3 最小子程序匹配评分算法 | 第51-54页 |
5.3.1 划分最小粒度子程序 | 第51-52页 |
5.3.2 子程序匹配描述 | 第52页 |
5.3.3 子程序匹配的自动评分算法 | 第52-53页 |
5.3.4 算法分析 | 第53-54页 |
5.4 实验结果及分析 | 第54-55页 |
5.5 本章小结 | 第55-56页 |
第6章 总结与展望 | 第56-58页 |
6.1 结论 | 第56页 |
6.2 展望 | 第56-58页 |
参考文献 | 第58-61页 |
致谢 | 第61-62页 |
附录A 攻读硕士学位期间发表的论文 | 第62页 |