第一次个人编程项目

news/2025/3/5 18:43:57/文章来源:https://www.cnblogs.com/Berluga/p/18752767
学号 3123004294
Github仓库链接 https://github.com/Berluga/3123004294.git
项目 内容
这个作业属于哪个课程 软件工程导论
这个作业要求在哪里 作业要求文档
这个作业的目标 通过实现一个查重系统,综合训练算法设计、工程规范、测试及文档撰写能力

PSP 2.1 表格

PSP阶段 预估耗时(分钟) 实际耗时(分钟)
计划 (Planning)
· 估计任务时间 (Estimate) 480
开发 (Development)
· 需求分析 (Analysis) 60 40
· 生成设计文档 (Design Spec) 30 10
· 设计复审 (Design Review) 20 40
· 代码规范 (Coding Standard) 20 40
· 具体设计 (Design) 60 60
· 具体编码 (Coding) 120 80
· 代码复审 (Code Review) 30 50
· 测试(包括修改) (Test) 60 50
报告 (Reporting)
· 测试报告 (Test Report) 30 30
· 计算工作量 (Size Measurement) 10 10
· 事后总结与改进 (Postmortem) 30 30
总计 (Total) 500 480

一、计算模块设计与实现

模块架构

plaintext
├── 文件处理层
│ ├── readFileAsUTF8() - UTF-8编码文件读取
│ └── filterChinese() - 中文字符过滤
├── 核心算法层
│ └── LCS() - 最长公共子序列计算
├── 相似度计算层
│ └── jaccardSimilarity() - 相似度转换
└── 输出层
└── writeResult() - 结果格式化输出

创新设计

1.混合相似度计算:

最终相似度 = 0.6 * LCS相似度 + 0.4 * Jaccard系数

2.多编码自适应处理:

// 自动检测BOM头
if(buffer[0]0xEF && buffer[1]0xBB && buffer[2]==0xBF)
decode_with_utf8();
else
try_gbk_decoding();

二、性能优化分析

性能热点分析

Function CPU% Call Count
LCS() 78.2% 1
filterChinese() 15.1% 2
readFile() 6.7% 2

三、单元测试展示

测试用例设计

覆盖率报告

File Line Coverage
main.cpp 98.2%
file_io.cpp 95.6%
lcs.cpp 100%

四、异常处理机制

异常类型及测试

1.文件访问异常

2.编码异常处理

3.内存保护机制

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

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

相关文章

【Java 开发】windows 命令行cmd界面,运行java 程序报错情况分析和解决!

windows cmd 运行java 程序报错了 (编译通过,运行报错)通过 java 和 javac 命令 得知,两个命令的版本不一样。因为这是因为有两个java 版本所导致的。 此时 需修改环境变量的配置。 此时我们找到 path 环境变量的配置 可以看到 配置了两个 JAVA_HOME的变量 一个JAVA_HOME 对…

2025/3/4 - Vue3学习--基础创建教程学习笔记

基于VUE创建:创建流程VScode实例-->编写APP组件

sql(3)多表查询

1.内连接查询(交集)2.外连接左外连接会全显示表一,右外连接会全显示表二,然后都显示交集部分。 3.子查询(嵌套查询) 行子查询表子查询注:给表起别名 select * from tb_emp e,tb_dept d where e.dept_id=d.id;

EndNote 21软件下载与安装教程

1、安装包 扫描下方二维码关注「软知社」,后台回复【042】三位数字即可免费获取分享链接,无广告拒绝套路;2、安装教程双击Setup.exe安装,弹窗安装对话框点击Next选择I would like a free ftrial ,点击Next点击Next选择I accept ,点击Next默认Next选择安装路径,建议C盘之外…

AxMath 2.6软件下载与安装教程

1、安装包 扫描下方二维码关注「软知社」,后台回复【041】三位数字即可免费获取分享链接,无广告拒绝套路; 2、安装教程双击安装,弹窗安装对话框Chinese - 点击OK按钮选择组件,默认方式,点击下一步等待进度安装,安装完成,点击完成按钮安装完成,点击关闭,不更新补丁操…

台达 hmi 人机 B10E615 备份 上传 二娃备忘 erwa.cn

台达DOP-B系列程序的上载下载操作说明 1、传输时要先进入SYS界面,在屏幕的空白处长按3秒以上,弹出如下图:确定点 系统设置-MISC 改为USBCOMMMODE:1进入 上载下载标准模式选择COM1到这个界面就可以上载下载程序了。 2、通讯电缆的制作和连接: 电缆有2种,一种是USB方口打印…

Sentinel整合Nacos实现持久化

想要实现Sentinel持久化,首先我们得思考为什么需要持久化?通俗来说就是:每次服务启动,都得重新去Sentinel dashboard中配置Sentinel的各种规则。例如流量规则、热点规则、熔断规则、授权规则。当服务数量众多时,一旦服务重新启动,所有规则都被清空,需要重新为每一个服务…

数码管驱动原厂-LED显示驱动VK1616 SOP16/DIP16抗干扰数显驱动芯片【FAE技术支持】

产品品牌:永嘉微电/VINKA 产品型号:VK1616 封装形式:SOP16/DIP16 概述 VK1616是一种数码管或点阵LED驱动控制专用芯片,内部集成有3线串行接口、数据 锁存器、LED 驱动等电路。SEG脚接LED阳极,GRID脚接LED阴极,可支持7SEGx4GRID 的点阵LED显示面板。采用SOP16/DIP16的封装…

二代基因测序芯片

基因测序(包括DNA测序和RNA测序)是研究生命信息的重要方法之一。DNA测序(DNA sequencing,或译DNA定序)是指分析特定DNA片段的碱基序列, 也就是腺嘌呤(A)、胸腺嘧啶(T)、胞嘧啶(C)与鸟嘌呤(G)的排列方式。同理,RNA测序是指分析特定RNA片段的碱基序列,也就是腺嘌呤(A)、鸟嘌呤…

二级缓存服务器异常事故记录

1、背景 项目有一张基础表查询量很大,开始了hibernate的二级缓存,使用外部服务器memcached单独存储。 中间件memcached服务需要做迁移。双主架构,一台迁移,另一台提供服务。迁移过程中有一个应用的一个节点连接不上memcached服务器。 2、经过 19:13-19:18,cpu使用率直线上…

二代基因测序芯片(Flowcell)调研-不同厂家产品的键合工艺

厂家1: 美国Illumina Flowcell:芯片结构: 1、Random FC:代表型如Nextseq550,基板-中间层(Dupont TPI,炭黑浸渍或苯基叠氮修饰)-盖板,IR激光键合 2、Patterned FC:代表如Hiseq2000,基板-树脂纳米孔阵列-中间层(Dupont TPI)-树脂纳米孔阵列-盖板,IR激光键合 3、Tes…