首页 > 编程语言 >c++论文查重

c++论文查重

时间:2023-09-16 17:57:27浏览次数:51  
标签:查重 10 60 30 论文 c++ 120 计算 dp

github连接

这个作业属于哪个课程 软件工程
这个作业要求在哪里 在这里
这个作业的目标 了解PSP,写一个论文查重程序,使用github管理项目

PSP表

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 20 20
Estimate 估计这个任务需要多少时间 480 1640
Development 开发 120 120
Analysis 需求分析(包括学习新技术) 120 480
Design Spec 生成设计文档 10 10
Design Review 设计复审 10 10
Coding Standard 代码规范(为目前的开发指定合适的规范) 10 10
Design 具体设计 120 120
Coding 具体编码 120 120
Code Review 代码复审 60 60
Test 测试(自我测试,修改代码,提交修改) 30 30
Reporting 报告 60 60
Test Repor 测试报告 60 60
Size Measurement 计算工作量 30 30
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 30 30
合计 1280 1640

计算模块接口的设计与实现过程

该项目只包含一个main函数,完成输入输出与计算。
使用最长公共子序列算法来计算重复字符的数量。
记两个字符串分别为a,b; dp[i][j]为以a[i]和b[j]结尾的两个字串的最长公共子序列,
则当a[i] = b[j] 时 dp[i][j] = 1 + dp[i-1][j-1]
否则 dp[i][j] = max(dp[i-1][j], dp[i][j-1])

计算模块接口部分的性能改进

  • 假设该算法最多能够处理两个长100000的字符串,直接开一个dp数组所需要的大小为10^10。考虑到每次计算式只需要使用到dp[i]和dp[i-1]两行的数据,因此可以开一个dp[2][100000]数组,用滚动的方式计算。

  • 由VS性能探查器生成的性能分析图:

计算模块单元测试展示

  • 单元测试部分代码截图
  • 该部分代码用来测试最长公共子序列函数能够正常工作
  • 代码覆盖率如下

计算模块异常部分处理说明

  • 空文件处理,用来防止读入空文件。
  • 大文件处理,用来防止程序内存溢出

标签:查重,10,60,30,论文,c++,120,计算,dp
From: https://www.cnblogs.com/LemonRainy/p/17702303.html

相关文章

  • C++20起支持的一个小特性
    注释掉的为传统的写法,从C++20起支持default关键字修饰的写法,即使是成员变量有多个的时候也支持,减轻了程序员的心智负担。......
  • 个人项目:Python实现简易论文查重
    这个作业属于哪个课程软件工程这个作业要求在哪里个人项目这个作业的目标个人项目,实现论文查重功能本项目上传至个人GitHub:yulinnn/3121004802项目需求题目:论文查重描述如下:设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论......
  • [论文速览] SDXL@ Improving Latent Diffusion Models for High-Resolution Image Syn
    Pretitle:SDXL:ImprovingLatentDiffusionModelsforHigh-ResolutionImageSynthesisaccepted:arXiv2023paper:https://arxiv.org/abs/2307.01952code:https://github.com/Stability-AI/generative-models关键词:imagesynthesis,stablediffusion,SDXL,AICG......
  • C++ STL 编程指北
    C++STL编程指北未避免歧义,所有容器的swap方法和不常用方法均未写1.vector向量容器用一句话来说,vector就是可变长数组。但vector所支持的可变长特性,并不是在原空间之后接续新空间来实现的,因为无法保证之后尚有可供分配的空间。底层实现上当增加新元素时,如果当前vector容......
  • C++关于字符串的一些函数
    islower,isupper返回类型为int,当符合条件时返回非零值,并不一定是1,0tolower,toupper返回类型为int。isdigit判断一个字符是否是十进制数字,返回值:返回值为非零(真)表示c是十进制数字,返回值为零(假)表示c不是十进制数字。isalphaisalpha()用来判断一个字符是否为字母,如果是字符......
  • 个人项目:论文查重
    1.项目地址Nurali524/3121004877(github.com)2.PSP表格PSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际耗时(分钟)·Planning计划4030·Estimate估计这个任务需要多少时间510·Development开发200250·Analysis需求分析(包括学习新技术......
  • C++new和delete运算符介绍
    内存管理运算符new、new[]、delete和delete[]也可以进行重载,其重载形式既可以是类的成员函数,也可以是全局函数。一般情况下,内建的内存管理运算符就够用了,只有在需要自己管理内存时才会重载。以成员函数的形式重载new运算符:void*className::operatornew(size_tsize){......
  • 论文阅读: Co-design Hardware and Algorithm for Vector Search
    1.Introduction介绍一下论文背景,向量检索常用于搜索引擎,推荐系统,LLM和科学计算等对应的常用的硬件向量检索方法,IVF-PQ其中IVF:将多个向量聚类,PQ将向量压缩而为了最大化IVF-PQ的效果,也会面临很多的挑战在芯片设计的过程中,会遇到针对六个阶段如何设计合适的微架构?如何将有......
  • 个人项目:Java实现论文查重
    项目Github仓库链接这个作业属于哪个课程软件工程这个作业要求在哪里个人项目这个作业的目标实现论文查重的功能,并测试项目运行情况和性能等一、PSP表格PSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际耗时(分钟)Planning计划60120Es......
  • WebRTC C++ RTP over TCP配置
    前言RTPoverTCP这种情况,一般是WebRTCP2P打洞失败,才会选择WebRTC默认使用UDP传输,但是也可以通过TCP传输。使用TCP传输,需要服务器中转,turnserver,licode,janus之类的服务器解决方案搭建coTurn中转服务器https://blog.51cto.com/fengyuzaitu/7265986C++修改代码url后面必须指定?t......