C++实现论文查重

软件工程 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

posted @ 2023-09-17 10:06  能不能专心一点  阅读(131)  评论(0)    收藏  举报