代码相似率
Sonar 在看一篇资料时http://www.darkmi.com/man/SpringSide3/,注意到的
Sonar 是一个集成了CheckStyle,PMD,Findbugs的代码校验规则 ,重复代码发现,代码测试覆盖率, 代码注释率,及所有的检测率变化追踪的完美代码质量检查工具。
我也不会用这个
2. 怎样减少程序代码的相似度
1、把定义的函数名、宏名、全局变量名、局部变量名全部改成其它的。
2、代码中多增加一些注释。
扫描软件就应该检查不出来了。
如果是老师不用工具自己检查的话,还是自己写吧。
3. 如何计算两份代码的相似度
问题里既然说是代码了,那就可以看到源码了?(我默认) 最简单的就是diff一下啦, 对策可以改改代码风格,排版,变量命名,甚至插曲一些无用代码等等。这些只是看起来不同了。 另外几位大神的答案,似乎忽略了程序运行时的状况呢,如果程序本身逻辑没变,只是文本和语法上做些处理(忽略lisp之类的奇葩),程序运行起来之后,比较调用堆栈的变化,这种方法很容易识破。 你说运行起来比较难的话,那就忽略了测试人员的作用了,把程序/代码段/模块 当成黑盒,通过mock等方式,还是可以一部分一部分搞的。 那改变调用层次,函数套函数?甚至某些地方变成宏?模块重构?诸如此类。这就不好识别了。模块都给重构了的话,姑且不算抄了,但是设计上一样的,人工code review,去了解它的设计,还是能识破。 首先可以diff一下,然后看运行状态,如果是差别很大的,看设计,做code review,看文档,如果自己的代码特别多,而人家的代码又拿不到,可以在自己的代码里加些【水印】,比如搞些magic number,运行时去调试,就找这个magic number,有的话,基本就是盗的。计算的话,我觉得评级比较靠谱,列规则,挨个检测,根据规则中枪程度评级,完全量化的方法应该很难做到,但是规则+评级 可以糙快猛的构造出一个比较相似度的系统,工程思维哈,不断根据实践,去调整这个系统,让它更接近准确就可以啦~ 我说的都是土方法,期待学术大神给个系统答案。
4. 论文查重代码相似很多了该怎么办
对于论文中有不少代码的学生来说,内心也是有担忧的,由于代码不比文字能够应用别的的语言表达来替代,要是在论文查重的情况下代码相似那可是非常难改的,那论文查重的情况下会检测代码,今儿小编就说说这个问题。
实际上这方面导师提前考虑到了,在编写有代码的论文的情况下,导师会让大家将程序的代码一部分带到在附件之中,那样大量的代码就不存在论文的正文中了,这也便捷了指导老师的论文的更改,不用在论文中查找大量的代码信息了,而且在检测的情况下,论文查重是不对附件进行论文查重的,故此这方面同学们能够放心的。
可是在论文中不可避免存在解读代码的现象,少量的代码就会被引用,那样检测系统在检测的情况下,依然会对论文中的代码进行标红工作的,那这该怎么办呢?实际上这个较好工作,便是人们在解读代码的情况下,应用制图工具将这些代码解读的一部分应用图片表示,检测系统相对于图片的检测还是挺放松的,故此检测的情况下是不对图片进行标红的。那样代码相似率的论文就解决了。
代码相对比较不像语音文字那样,几乎代码全部都是有要求的语法的编写,故此会被检测系统此标红也是相对比较正常的,故此小编在论文查重前导师早已联想到了,论文处理的方式,人们在论文查重前尽量是询问指导老师,那样论文查重的情况下就不存在问题了。
内容来源:papertime新闻资讯
5. 如何计算两份代码的相似度
问题里既然说是代码了,那就可以看到源码了?(我默认)
最简单的就是diff一下啦,
对策可以改改代码风格,排版,变量命名,甚至插曲一些无用代码等等。这些只是看起来不同了。
另外几位大神的答案,似乎忽略了程序运行时的状况呢,如果程序本身逻辑没变,只是文本和语法上做些处理(忽略lisp之类的奇葩),程序运行起来之后,比较调用堆栈的变化,这种方法很容易识破。
你说运行起来比较难的话,那就忽略了测试人员的作用了,把程序/代码段/模块 当成黑盒,通过mock等方式,还是可以一部分一部分搞的。
那改变调用层次,函数套函数?甚至某些地方变成宏?模块重构?诸如此类。这就不好识别了。模块都给重构了的话,姑且不算抄了,但是设计上一样的,人工code review,去了解它的设计,还是能识破。
首先可以diff一下,然后看运行状态,如果是差别很大的,看设计,做code review,看文档,如果自己的代码特别多,而人家的代码又拿不到,可以在自己的代码里加些【水印】,比如搞些magic number,运行时去调试,就找这个magic number,有的话,基本就是盗的。计算的话,我觉得评级比较靠谱,列规则,挨个检测,根据规则中枪程度评级,完全量化的方法应该很难做到,但是规则+评级 可以糙快猛的构造出一个比较相似度的系统,工程思维哈,不
6. 代码抄袭与代码相似度的区别
变量的命名方式 (次要)
流程的结构方式 (最重要)
书写的格式习惯 (次要)
可以从这几方面
7. 求c++代码相似度检测软件