本文是一篇信息化论文范文,信息化相关毕业论文题目,关于基于FTP教学平台的代码相似度检测的相关本科论文范文。适合信息化及序列及信息技术方面的的大学硕士和本科毕业论文以及信息化相关开题报告范文和职称论文写作参考文献资料下载。
摘 要:本文利用FTP教学平台,实现了一个代码相似度检测的在线应用,所用到的最长公共子序列算法是对于文本匹配的动态规划.
关 键 词:FTP;教学;代码;相似度
中图分类号:TP393.01文献标识码:A文章编号:1007-9599(2012)09-0000-02
一、前言
随着信息技术的快速发展,各大高校纷纷设置程序语言或数据库管理等信息化课程.个别学生利用他人资源,通过简单的复制粘贴来完成作业.为了遏制这种抄袭现象,教师需要花费大量的时间来批阅作业,在一定程度上会影响教学进度.有的抄袭文本对代码进行了加注释和换行来欲盖弥彰,可能会影响批判的准确性.同时,教师在阅读代码时往往先要将学生的代码下载到本地后再打开查看,如果能在线进行阅读就能节省一部分的时间和精力.
本文采用了最长公共子序列算法.该算法是对于文本匹配的动态规划[1],目的是找出两个序列中最长公共子序列,在媒体流的相似比较、图形样式的相似处理、生物基因研究等方面应用广泛.
在网络时代中,相比于利用移动存储设备等交互方式而言,在网上进行信息的传输更为频繁.FTP(FileTranerProtocol),也就是文件传输协议,是在TCP/IP网络和INTERNET上最早使用的协议之一.目前FTP服务相对成熟,将其应用在高校的信息化知识教育中,有利于资源共享,效率提高,管理方便[2].
二、算法简介
(一)定义
代码在检测的过程中可以被提取为连续的字符串,即字符序列.
假设有序列X等于x1,x2,等,xn,Y等于y1,y2,等,yn.
如果有序列Z等于z1,z2,等,zn以及单调递增的整数序列m1 令X含有的元素数量为L(X),L(T(X,Y))记为L(X,Y),那么 此时,数组L[X,Y]中最大的值便是X和Y的最长公共子序列的长度,依据该数组回溯,便可找出最长公共子序列. 假设X等于a,b,c,d,a,c,b,Y等于b,d,c,a,b,那么序列C1等于b,c,d是X和Y的公共子序列,但不是最长公共子序列,而序列C2等于b,c,a,b和C3等于b,d,c,b都是公共子序列,并且均为最长公共子序列,长度为4. 算法的流程如图1所示,记m等于L(X),n等于L(Y),L(i,j)为二维数组(0≤i≤m,0≤j≤n) 图1流程图 最后,两个序列的相似度可以用最长公共子序列的长度在整个序列中所占的百分比表示,如公式1-1[3]: 公式1-1 其中,Len(X,Y)就是序列X和序列Y的最长公共子序列的长度. 本文的FTP应用是基于Ja语言开发的Web应用,将充分利用Ja程序“一次编写,到处运行”(Writeonce,runanywhere)[4]的优点,同时使用了最新的基于MVC的Web应用开发框架Struts2[5]. 导入使用Struts2所必须的类库,以及访问FTP所需的Jar文件(mons-). 类名功能描述 CompareAction.ja调用算法以检测代码相似度 LoginAction.ja登录并显示资源列表 类名功能描述 Comparer.ja算法实现 MyFtpClient.jaFTP登录和资源访问 TextReader.ja代码获取 本系统在Windows环境下开发,开发工具为Eclipse3.6和Tomcat6.0,JDK版本为J2SE6.0. 1.进入检测系统,使用已有账户访问FTP服务; 2.读取FTP资源列表,选择目录; 3.选择代码文件进行相似度检测; 4.显示检测结果,对照原文进行查看.如图2左边显示进行比较的两个代码文件,右边显示经过比较以后的相似文本序列.(二)计算
(三)结果
三、实现方法
(一)创建WEB项目
(二)添加框架和相关开发包
(三)设计交互页面
(四)编写控制层
(五)实现业务逻辑
四、系统实现
(一)开发环境
(二)功能实现