c语言毕业论文开题报告范文

日期:2018年05月04日

编辑:ad201107111759308692

作者:无忧论文网

点击次数:832

论文价格:0元

论文编号:lw201804231900312933

论文字数:3685

所属栏目:开题报告范文

论文地区:中国

论文语种:中文

论文用途:论文格式 Paper format

本文是一篇开题报告,开题报告是指开题者对科研课题的一种文字说明材料。这是一种新的应用写作文体,这种文字体裁是随着现代科学研究活动计划性的增强和科研选题程序化管理的需要而产生的。(以上内容来自百度百科)今天无忧论文网为大家推荐一篇开题报告,供大家参考。

一、研究背景及研究意义

信息技术的快速发展加速了教育信息化的进程,在线教育系统与测试系统的出现为学生提供了一个可以提高和检测综合能力的便捷途径。另一方面,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 划分最小粒度子程序

<

c语言大作业开题报告,c语言毕业论文开题报告范文相关推荐

  1. 陕科大c语言大作业,西工大c语言大作业.ppt

    西工大c语言大作业 求最小非平凡因子 1.题目描述 给定一个整整数n(2 ≤ n ≤ 50),求n的最小非平凡因子. 2.输入 输入仅一行,一个正整数n(2 ≤ n ≤ 50). 3.输出 输出仅一行 ...

  2. c语言大作业车票管理系统,c语言车票管理系统.docx

    c语言车票管理系统 课 程 设 计 报 告课程名称 C语言课程设计 课题名称 车票管理系统 专 业 自动化 班 级 1402 学 号 201401020208 姓 名 宋爱军 指导教师 陈世清 杨子华 ...

  3. 万年历c语言大作业实验,用C语言写的一个万年历

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. #include #include int input(); void re_year(i ...

  4. c语言大作业 模拟泊松分布,C语言下泊松分布以及指数分布随机数生成器实现

    最近实验室的项目需要实现模拟文件访问序列,要求单位时间内的数据请求次数符合泊松分布,而两次请求见的时间间隔符合指数分布.没办法只好重新捡起已经丢掉多时的概率知识.于是也就有了这篇关于在C语言下符合泊松 ...

  5. c语言大作业矩阵运算,用C语言实现矩阵运算

    <用C语言实现矩阵运算>由会员分享,可在线阅读,更多相关<用C语言实现矩阵运算(6页珍藏版)>请在人人文库网上搜索. 1.任务二:矩阵的基本运算#in clude#in clu ...

  6. c语言大作业黑白棋,C语言编写黑白棋游戏源代码.doc

    C语言编写的黑白棋游戏源代码 /*3.3.4 源程序*/ #include "graphics.h" /*图形系统头文件*/ #define LEFT 0x4b00 /*光标左键值 ...

  7. c语言大作业酒店管理系统,C语言酒店管理系统(最新整理)

    <C语言酒店管理系统(最新整理)>由会员分享,可在线阅读,更多相关<C语言酒店管理系统(最新整理)(7页珍藏版)>请在人人文库网上搜索. 1.include#include # ...

  8. 等价关系运算c语言大作业,如何用c语言编写:n等价关系判断,并求出等价类及其元素...

    满意答案 guigui5418 2015.05.18 采纳率:48%    等级:8 已帮助:1460人 12345678910111213141516171819202122232425262728 ...

  9. c语言大作业答辩ppt,C语言程序设计—考试管理程序答辩ppt.ppt

    C语言程序设计-考试管理程序答辩ppt * 人员:张旭东.王隆基.汤双节.刘宇 系 统 功 能 逻 辑 结 构 小 组 分 工 程 序 特 色 系 统 功 能 考试设置 学生信息的录入.修改增加与删除 ...

  10. c语言大作业座位,(C语言)练习1——排座位号

    C语言练习----排座位号 文章末尾有原作者地址,本人只是转载学习,如不合适联系删除,谢谢! 马上就要考试啦!老师给 bLue 安排了布置考场的任务:把一个 n 行 m 列的考场按 S 型排好座号. ...

最新文章

  1. 2017年全球光伏需求有望首次突破100吉瓦
  2. 关于html5的使用简单总结
  3. spring boot打jar包发布
  4. oracle监听器启动错误-TNS-12546: TNS:permission denied
  5. 如何使用python批量下载-使用 Python + Selenium 批量下载素材
  6. 关于华为x2中的外置SDCard的使用
  7. 动态内表及动态ALV显示
  8. pyqt5 显示更新进度条_python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能...
  9. 鸿蒙系统的正式推送范围,华为鸿蒙系统或6月正式推送升级,手机版已开始小范围推送...
  10. java工程师青春饭吗_Java工程师是青春饭吗?
  11. 行严格对角占优矩阵——一道矩阵代数作业题
  12. 一篇关于批处理文件的经典文章
  13. windows下管理员用户与标准用户切换过程中的坑
  14. linux中一次显示一页内容的命令
  15. 关于springboot项目(@SpringBootTest单元测试类)找不到配置文件问题
  16. 启动计算机时听到嘀嘀声,为何电脑开机时会有滴滴的声音?
  17. js如何实现复制功能
  18. JAVA浮点数转人民币读法_算法--java实现将数字转换成人民币大写(迅雷面试题)...
  19. 在IT行业中,程序员的学历重要吗?
  20. 【Java】Log4j日志

热门文章

  1. C/C++编程笔记:C语言打造中国象棋游戏,项目源代码分享!
  2. linux tbb 安装_Linux环境下配置Google Test、TBB、OpenMP和OpenCV
  3. 两人小团队开发了一款与谷歌竞争的产品
  4. Error:Application and test application id cannot be the same: both are 'cn.deu.bztc.happyidiom.activ
  5. 怎么样开启小米手机5s Plus的Root超级权限
  6. iSpy免费的开源视频监控平台
  7. iOS 检测版本更新
  8. 16进制的文件头信息搜集
  9. 2017 Multi-University Training Contest - Team 5
  10. java-php-python-springboot智慧公寓系统演示录屏2021计算机毕业设计