第一次个人编程作业-论文查重

news/2025/9/23 21:33:18/文章来源:https://www.cnblogs.com/3223004555fsp/p/19093264

| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience |

| 这个作业要求在哪里| https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13477 |

| 这个作业的目标 | <完成个人项目> |

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

一、项目分层结构

image

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

(1)算法关键与独到之处
算法核心: 基于最长公共子序列(LCS)的动态规划算法
中文优化:专门处理中文分词和标点符号
内存安全:分段处理大文本,避免内存溢出

(2)独到之处:
多级预处理:标点过滤→大小写统一→分词处理
性能保障:确保5秒内处理10000+词汇
精度控制:相似度结果精确到小数点后4位,输出时保留2位

三、性能分析

(1)基础性能测试
image

(2)最耗时的函数
image

(3)消耗最大的函数识别:
1.lcs_algorithm - LCS核心计算函数 (65%)
2. text_processor() - 文本处理函数 (25%)
3. file_manager() - 文件操作函数 (6%)
4. 其他辅助函数 (4%)

(4)改进思路总结:

  1. 算法层面优化:
    LCS算法: 采用动态规划优化,减少重复计算
    相似度计算: 实现早期终止策略,避免不必要的计算
    数据结构: 使用更高效的数据结构存储中间结果

  2. 文本处理优化:
    分词算法: 使用更高效的分词库或算法
    并行处理: 对大规模文本实现并行处理
    缓存机制: 对常用文本处理结果进行缓存

四、单元测试

(1)单元测试
LCS算法核心逻辑测试 (test_lcs_calculation)
构造思路:测试以下四种情况(完全相同序列,完全不同序列,部分相同序列,空序列边界情况)

def test_lcs_calculation(self):"""测试LCS算法核心逻辑"""test_cases = [(["a", "b", "c"], ["a", "b", "c"], 3),(["a", "b", "c"], ["x", "y", "z"], 0),(["a", "b", "c", "d"], ["a", "c", "e", "d"], 3),([], ["a", "b"], 0),(["a", "b"], [], 0),]for seq_a, seq_b, expected in test_cases:with self.subTest(seq_a=seq_a, seq_b=seq_b):result = LCSEngine.calculate_lcs_length(seq_a, seq_b)self.assertEqual(result, expected)

系统集成测试 (test_system_integration)
测试函数: 完整的系统流程
构造思路: 模拟真实使用场景,创建原文和抄袭文进行端到端测试

def test_system_integration(self):"""测试系统集成流程"""orig_file = os.path.join(self.test_dir, "orig.txt")plag_file = os.path.join(self.test_dir, "plag.txt")output_file = os.path.join(self.test_dir, "ans.txt")# 创建测试文件with open(orig_file, 'w', encoding='utf-8') as f:f.write("今天是星期天,天气晴,今天晚上我要去看电影。")with open(plag_file, 'w', encoding='utf-8') as f:f.write("今天是周天,天气晴朗,我晚上要去看电影。")# 测试完整流程system = PaperCheckSystem()system.load_files(orig_file, plag_file)similarity = system.calculate_similarity()system.save_result(output_file, similarity)# 验证结果self.assertAlmostEqual(similarity, 0.85, places=1)self.assertTrue(os.path.exists(output_file))with open(output_file, 'r', encoding='utf-8') as f:result = f.read().strip()self.assertTrue(result.replace('.', '').isdigit())

(2)覆盖率截图
image

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

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

相关文章

使用Claude代码子代理生成项目特定提交消息的技术实践

本文详细介绍了如何利用Claude Code的子代理功能解决自动生成提交消息过于冗长的问题。通过创建专门的git提交消息生成代理,分析项目规范和变更内容,生成符合项目约定的简洁提交消息,提升开发效率。使用Claude代码子…

上海网站建设公司推荐合肥市住房建设局网站

全世界只有3.14 % 的人关注了爆炸吧知识今天&#xff0c;8岁表妹的老师给她奖励了一块大巧克力&#xff0c;超模君打趣她能不能分给我点&#xff0c;遭到残忍拒绝&#xff0c;超模君很愤怒&#xff0c;暗下决心要神不知鬼不觉地吃上表妹的巧克力。超模君趁表妹在认真做作业的时…

网站建设 前期资料dede门户网站模版

文章目录 1. 如何计算DDR带宽2. DDR data rate和DDR主频3. Mbps和Mhz4. 出题 1. 如何计算DDR带宽 计算DDR理论带宽的公式为&#xff1a; DDR主频 * 位宽 理论带宽其中&#xff0c;位宽(bit width)指的是内存总线的位宽&#xff0c;例如64位、128位、16bit、32bit等&#xff…

新手可以自己学做网站设计吗wordpress怎么设置静态主页

jquery 通过submit()方法 提交表单示例&#xff1a; 本示例&#xff1a;以用户注册作为例子。使用jquery中的submit()方法实现表单提交。 注&#xff1a;本示例仅提供了对表单的验证&#xff0c;本例只用选用了三个字段作为测试。 用户点击提交按钮时&#xff0c;触发点击事件&…

做网站先做ue网页版代码编辑器

先创建自定义控件类painter_label 1.自定义类必须给基类传入父窗口指针 2.重写控件中的方法 3.在UI中创建一个QLabel,右键“提升为”&#xff0c;输入类名

宜昌市水利建设工程协会网站湖南长沙房价2023年最新房价

【问题描述】[中等] 给定一个由表示变量之间关系的字符串方程组成的数组&#xff0c;每个字符串方程 equations[i] 的长度为 4&#xff0c;并采用两种不同的形式之一&#xff1a;"ab" 或 "a!b"。在这里&#xff0c;a 和 b 是小写字母&#xff08;不一定不…

网站建设完成阶段性总结报告厚街镇网站仿做

一、MySQL数据库管理系统安装部署【简单】 简介 MySQL数据库管理系统&#xff08;后续简称MySQL&#xff09;&#xff0c;是一款知名的数据库系统&#xff0c;其特点是&#xff1a;轻量、简单、功能丰富。 MySQL数据库可谓是软件行业的明星产品&#xff0c;无论是后端开发、…

长春网站制作长春万网企业内部网站开发

本章节将示范三台 zookeeper 服务端集群搭建步骤。 所需准备工作&#xff0c;创建三台虚拟机环境并安装好 java 开发工具包 JDK&#xff0c;可以使用 VM 或者 vagrantvirtualbox 搭建 centos/ubuntu 环境&#xff0c;本案例基于宿主机 windows10 系统同时使用 vagrantvirtualb…

差分电压

差分电压1) T_02_V+ / T_02_V- —— 差分电压输入(Voltage differential)含义(常见):V+ 与 V- 通常是一对 差分电压输入(或者单端的正、负端)。用于测量传感器或变送器给出的电压信号(例如 0–10 V、10 V、5 V…

走迷宫(BFS)

输入样例:5 5 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 期望输出:8代码实现:#include<bits/stdc++.h> using namespace std;typedef pair<int,int> pii; const int N = 110;int n ,m; int s…

网站首页生成静态页面做神马网站优

public static void test4(){int sum 0; //求和for(int i 1;i<100;i){if(i%3!0){sumsumi;}}System.out.println("和是&#xff1a;"sum);}

MyBatis分页的原理和分页插件的原理是什么

1、mybatis的分页 MyBtis本身不提供自动化分页,MyBatis 原生分页的本质,就是通过在 SQL 语句中直接使用数据库特定的分页关键字(如 LIMIT, ROWNUM)来实现的。这是一种物理分页,即数据库只返回查询结果中的一部分数…

达成度报告

一、功能设计 1. 课程简介 课程目标、成绩分布、课程目标分值分布、支撑矩阵 2. 基于成绩的统计分析与可视化平时成绩分布(散点图)+ 成绩段分布 期末成绩分布(散点图)+ 成绩段分布 平时与期末差异值的分布(散点图…

金泉网做网站要找谁做网站必须要推广吗

0、怎么写一个前端页面: HTML是超文本标记语言,它用来写前端的内容和框架,CSS是层叠样式表,它用来给前端写样式,让内容变漂亮。1、要写前端页面需要用VScode代码编辑器: VScode当中可以下载汉化插件、快捷键插件(eclipse)浏览器用于解析html/css/js代码,浏览器是从上往…

阜阳网站建设fywzjs做推广哪个网站效果好

大家好&#xff0c;今天为大家带来的是 mysql 5.7 msi &#xff0c; MySql 8.0 版本的下载、安装教程&#xff0c;附详细图文。本文以 5.7 版本为例子&#xff0c;帮助大家讲解。希望对大家有所帮助 文章首发地址 一、下载地址 这里提供一下 CSDN 镜像下载地址&#xff0c;有…

广西网站建设工具建设工程网站贴吧

一&#xff1a;description方法 description有对象方法和类方法两种&#xff0c;&#xff08;是NSObject类的方法&#xff09;1&#xff0c;-description&#xff08;对象方法&#xff09; 使用NSLog和%输出某个对象时&#xff0c;会调用对象的description方法&#xff0c;并拿…

阿里云需要网站建设方案书网站开发要学的课程

前言 之前虽然单独讲过Security Client和Resource Server的对接&#xff0c;但是都是基于Spring webmvc的&#xff0c;Gateway这种非阻塞式的网关是基于webflux的&#xff0c;对于集成Security相关内容略有不同&#xff0c;且涉及到代理其它微服务&#xff0c;所以会稍微比较麻…

中国建设银行下载官方网站共享门店新增跑腿距离计算优化

随着VR技术的不断进步&#xff0c;VR全景技术已经成为了文化展示和传播的一项重要工具&#xff0c;相较于传统视频、图文等展现方式&#xff0c;VR全景体验更加直观、便捷&#xff0c;其中蕴涵的信息量也更加丰富&#xff0c;这也为公众了解博物馆和历史文化带来了更为深刻的体…

备案期间能否做网站解析wordpress php占内存

尽管BERT为代表的预训练模型大肆流行&#xff0c;但是身处工业界才会知道它落地有多难&#xff0c;尤其是QPS动辄几百的在线推荐、搜索系统&#xff0c;哪怕在大厂也很难在线上系统见到它们。 今天就想反其道而行之&#xff0c;谈谈工业界搜索、推荐、广告这类核心场景中落地能…

零基础建设网站视频wordpress当前页面id

1 引言 在学习前&#xff0c;我想说一句&#xff0c;那就是为什么要学习Java。 每个人的出发点都不同&#xff0c;对于做信息化的工程技术人员来说&#xff0c;java不懂&#xff0c;就没法干项目。 尽管有c和matlab等基础&#xff0c;但java看起来与这些语言都不太一样。 做…