首页 > 编程语言 >C++实现论文查重

C++实现论文查重

时间:2023-09-17 10:11:07浏览次数:36  
标签:查重 论文 originalText string 30 C++ SimilarityTest plagiarizedText test

软件工程 https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13014
作业要求 根据给出的样例进行查重,并把结果记录在PSP表格中
作业目的 对查重有一定的初步了解
GitHub链接 https://github.com/xingch123456789/3119000414

PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 120 300
Estimate 估计这个任务需要多少时间 180 360
Development 开发 65 250
Analysis 需求分析 (包括学习新技术) 120 150
Design Spec 生成设计文档 30 60
Design Review 设计复审 45 50
Coding Standard 代码规范 (为目前的开发制定合适的规范) 32 30
Design 具体设计 60 120
Coding 具体编码 60 80
Code Review 代码复审 30 40
Test 测试(自我测试,修改代码,提交修改) 35 30
Reporting 报告 30 20
Test Repor 测试报告 30 20
Size Measurement 计算工作量 20 20
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 10 15
合计 867 1520
  • 计算模块接口的设计与实现过程
    double calculatSimilarity(const string& originalText, const string& plagiarizedText)
    函数返回计算查重率,传参为原文和抄袭版本
  • 计算模块接口部分的性能改进
    image
    image
  • 计算模块部分单元测试展示

CMakefiles.txt配置

点击查看代码
cmake_minimum_required(VERSION 3.10)
project(SimilarityTest)
// 添加测试框架
enable_testing()
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
// 添加测试目标
add_executable(SimilarityTest similarity_test.cpp)
target_link_libraries(SimilarityTest ${GTEST_BOTH_LIBRARIES})
// 添加测试
add_test(NAME SimilarityTest COMMAND SimilarityTest)
  • 测试代码
点击查看代码
TEST(SimilarityTest, Test1)
{
    std::string originalText = "D:/我的文档/test/orig.txt";
    std::string plagiarizedText = "D:/我的文档/test/orig_0.8_del.txt";
    double expected = 1.0;
    double result = calculatSimilarity(originalText, plagiarizedText);
    EXPECT_EQ(result, expected);
}

TEST(SimilarityTest, Test2)
{
    std::string originalText = "D:/我的文档/test/orig.txt";
    std::string plagiarizedText = "D:/我的文档/test/orig_0.8_add.txt";
    double expected = 1.0;
    double result = calculatSimilarity(originalText, plagiarizedText);
    EXPECT_EQ(result, expected);
}

// 添加更多的测试用例...

int main(int argc, char** argv)
{
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}
  • 测试结果
    image

  • 代码覆盖率
    image

标签:查重,论文,originalText,string,30,C++,SimilarityTest,plagiarizedText,test
From: https://www.cnblogs.com/zhuang-xing/p/17705938.html

相关文章

  • Qt/C++音视频开发54-视频监控控件的极致设计
    一、前言跌跌撞撞摸爬滚打一步步迭代完善到今天,这个视频监控控件的设计,在现阶段水平上个人认为是做的最棒的(稍微自恋一下),理论上来说应该可以用5年不用推翻重写,推翻重写当然也是程序员爱干的事情,这个就要考验个人的功底,设计的好框架搭建的好,可以很多年不用变,只需要在现有框架小修......
  • C++智能指针
    智能指针是C++语言中一种方便、安全的内存管理工具。智能指针可以自动管理对象的生命周期,避免手动分配和释放内存时可能出现的内存泄漏和悬挂指针等问题。在C++11标准中,引入了三种智能指针:unique_ptr、shared_ptr和weak_ptr。类型含义备注std::unique_ptr 独占资源......
  • C++STL进阶:pb_ds库
    Windows,64bitG++(ISOc20)stack=268435456开启O2优化万能头文件CodeForces在\(\ttC^{20(64)}_{++}\)版本下无法使用bits;如果需要使用priority_queue则无法使用using(会和std撞名字)。#include<bits/extc.h>usingnamespace__gnu_pbds;优先队列(不常用)概述......
  • C++的异常类型与多级catch匹配
    try-catch的用法:try{//可能抛出异常的语句}catch(exceptionTypevariable){//处理异常的语句}我们还遗留下一个问题,就是catch关键字后边的exceptionTypevariable,这节就来详细分析一下。exceptionType是异常类型,它指明了当前的catch可以处理什么类型的异常;varia......
  • C++ 学习笔记、01 | 开发简单职工管理系统遇到的一些问题
    记录开发简单职工管理系统遇到的一些问题,黑马教程https://www.bilibili.com/video/BV1et411b73ZP147~P166头文件与源文件头文件只声明,源文件来实现(本质上是类内声明类外实现)源文件需要引用特定的头文件ifndefOOPFINAL_WORKER_H#defineOOPFINAL_WORKER_H#include<......
  • 合并果子题解-C++ STL priority_queue容器的使用
    说明:本博文关于priority_queue容器的说明来源于www.cnblogs.com/fusiwei/p/11823053.html本人是刚刚接触算法竞赛的萌新,如果有大佬发现了错误,还望指出(真的有人会看本蒟蒻的博文吗)这是我的第一篇博文,更多是作为测试以后会将博客作为笔记记录学习的体会基本概念priority_queu......
  • 论文解读(FixMatch)《FixMatch: Simplifying Semi-Supervised Learning with Consistenc
    Note:[wechat:Y466551|可加勿骚扰,付费咨询]论文信息论文标题:FixMatch:SimplifyingSemi-SupervisedLearningwithConsistencyandConfidence论文作者:论文来源:2020aRxiv论文地址:download 论文代码:download视屏讲解:click1-介绍 动机:解决现有半监督方法利用未标记......
  • c++论文查重
    github连接这个作业属于哪个课程软件工程这个作业要求在哪里在这里这个作业的目标了解PSP,写一个论文查重程序,使用github管理项目PSP表PSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际耗时(分钟)Planning计划2020Estimate估计这个任......
  • C++20起支持的一个小特性
    注释掉的为传统的写法,从C++20起支持default关键字修饰的写法,即使是成员变量有多个的时候也支持,减轻了程序员的心智负担。......
  • 个人项目:Python实现简易论文查重
    这个作业属于哪个课程软件工程这个作业要求在哪里个人项目这个作业的目标个人项目,实现论文查重功能本项目上传至个人GitHub:yulinnn/3121004802项目需求题目:论文查重描述如下:设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论......