第一次个人编程项目

学号 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.内存保护机制

posted @ 2025-03-05 18:38  Berluga  阅读(129)  评论(0)    收藏  举报