C++实现论文查重

news/发布时间2024/5/19 0:22:59
软件工程 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/33371880.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

查找范围动态变化

问题:查找范围在不同列,如何使用一个公式下拉完成 函数公式解决:=VLOOKUP(E3,OFFSET(AM$1:AN$17,,MATCH("高"&LEFT(B3)&"赋分",AN$1:AQ$1,)),2,)使用Offset函数,以AM1:AN17为起点,向下不偏移,向右偏移由B列最左的汉字决定。 使用Match函数,…

软件设计模式系列之七——原型模式

原型模式(Prototype Pattern)是一种创建型设计模式,其主要目的是通过复制现有对象来创建新对象,而不是使用构造函数。原型模式将对象的创建委托给原型对象,通过克隆(复制)来生成新对象,这种方式可以避免对象的重复初始化,提高性能,并使对象的创建更加灵活和动态。1 模…

document install LibreOffice_7.6.1.2 on Debian12

目录Download PackageOpen the programinstall Languare PackageUninstall LibreOffice from Debian Linux Libreoffice official website Package download address Download Package # Install the package mkdir libreoffice && cd libreoffice wget https://fastmi…

光刻机极紫外曝光系统分析

光刻机极紫外曝光系统分析 极紫外光刻曝光光学系统是极紫外光刻机的核心部件,其设计直接影响极紫外光刻机的性能。极紫外光刻机曝 光系统的设计难度大、研究周期长,国外极紫外光刻机产品已经用于高端芯片的制造,但国外对中国禁运相关产品。国 内极紫外光刻机曝光系统的设计和…

Wordpress安装主题及CSV文件的导入、导出、更新

Wordpress安装主题及CSV文件的导入、导出、更新安装主题外观->主题->安装主题->上传主题->立即安装->完成主题->启用即可导出数据A站点->商品管理->产品导出->生成CSV得到CSV表格文件导入数据B站点->插件->导入选择产品->选择导入方式->…

N80-第7期作业-N80042

总结pg和mysql的优劣势。 PostgreSQL相对于MySQL的优势 PostgreSQL遵循BSD协议,这意味着使用 PostgreSQL 无任何限制。 可支持 C、C++、Java、PHP、Python 及 Perl 等,使您的业务开发更简单更易用。 PostgreSQL 是架构、语法、数据类型等与 Oracle 最接近的开源数据库。 兼容…