首页 > 其他分享 >个人项目

个人项目

时间:2024-09-14 20:50:58浏览次数:9  
标签:path2 paths path1 20 个人 项目 文档 path

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSGrade22-12
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade22-12/homework/13220
这个作业的目标 学会论文查重算法,学会使用git等操作
github 地址 https://github.com/nurimanguli/3222004935/tree/main
PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 100 180
Estimate 估计这个任务需要多少时间 20 30
Development 开发 360 360
Analysis 需求分析(包括学习新技术) 100 120
Design Spec 生成设计文档 20 20
Design Review 设计审核 10 10
Coding Standard 代码规范(为目前的开发制定合适的规范) 5 30
Design 具体设计 20 30
Coding 具体编码 125 180
Code Review 代码审核 20 15
Test 测试(自我测试,修改代码,提交修改) 60 120
Reporting 报告 40 45
Test Report 测试报告 20 30
Size Measurement 计算工作量 10 20
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 10 40
合计 1475 620 1310
程序结构:
如上图所示:

TooException:控制用以SimHash计算的文字不少于300字;

TxtException:控制读取的文件仅为.txt型的文档;

MainText:主函数,用以开发时的逐步测试和最后的运行;

HammingUtils:Hamming算法的集合,参数:两端文字的hash值组; 返回:海明距离;

SimHashUtils:SimHash算法的集合,参数:要比较的文字; 返回:各个特征向量(这里为划分好的词)的hash值,hash值为二进制数01组成的n-bit签名;

TxtIOUtils:重写读取和读入的方法,使之符合要求;
三、各阶段分析与结果:
第一次提交:
内容:约束函数,simhash计算函数,主函数(测试函数);

第二次提交:
内容:Hamming计算函数;

运行结果:

第三次提交:
内容:

-->文档相关的操作,包括将文档加入项目中、文档的读取和读入等,修改了主函数还有其它函数,调整到能完全进行文件操作;

-->根据运行类编译测试类;

运行结果:

文档结果显示:

四、测试分析:
Exception:

MainText:

Utils:

五、 性能分析:

代码:
import difflib # 导入查重包
import argparse # 导入命令行包
import os.path

命令行输入文件路径

parser = argparse.ArgumentParser(description='命令行传入文件路径')
parser.add_argument('path1', type=str, help='原文文件')
parser.add_argument('path2', type=str, help='抄袭版的论文文件')
parser.add_argument('path3', type=str, help='答案文件')
paths = parser.parse_args()

读取path1和path2的文件

if os.path.isfile(paths.path1):
with open(paths.path1, 'r', encoding='utf-8') as file1:
a = file1.read()
else:
print('path1的路径错误或不存在')
if os.path.isfile(paths.path2):
with open(paths.path2, 'r', encoding='utf-8') as file2:
b = file2.read()
else:
print('path2的路径错误或不存在')

if os.path.isfile(paths.path1) & os.path.isfile(paths.path2):
# 创建一个SequenceMatcher对象
sm = difflib.SequenceMatcher(None, a, b)

# 计算并打印两篇文章的相似度
with open(paths.path3, 'w', encoding='utf-8') as fp:
    similarity = sm.ratio()
    print('差异报告:', file=fp)
    print(f'相似度:{similarity:.2f}', file=fp)
    fp.close()

标签:path2,paths,path1,20,个人,项目,文档,path
From: https://www.cnblogs.com/nurimanguli/p/18414598

相关文章

  • 个人项目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13229这个作业的目标开发个人项目,实现项目单元测试个人github仓库地址:https://github.com/Kun3M/322200......
  • c语言快递小项目
    structpack_head{  intfd;//通信的文件描述符  unsignedchartype; //消息类型  unsignedcharusertype;//用户类型:1:用户 2:快递员   charname[32]; //用户名  charpaaswd[32];//密码  charbuf[32]; //调试信息  stru......
  • 【来学Vue吧】创建一个Vue项目
    ......
  • 将项目里的moment替换为day.js
    day.js有和moment.js完全一样的API,但是它的体积却比moment要小的很多,moment打包后的体积有280kb左右,而day.js打包后只有6.3KB。它非常轻量化,因为它可以利用treeShaking如果你的项目里面使用的是moment.js,而你想要把它替换成day.js,很简单,直接使用一个webpack插件即可,而无需做任何......
  • 5 个最佳开源无代码项目管理工具
    想象一下,你是一名项目经理,每天早上刚坐到办公桌前,咖啡还在手里,你的手机和电脑屏幕上已经被各种未完成的任务、项目更新和团队消息填满。你快速浏览着的电子邮件,分配任务的通知不断弹出,而每一个通知都要求你迅速做出决策。与此同时,团队成员纷纷通过即时消息工具询问进度更新、讨......
  • 图像生成技术飞速发展,个人化艺术创造还有多远?
    图像生成技术飞速发展,个人化艺术创造还有多远?通义万相文本绘图与人像美化希望图像生成类应用具备哪些功能通义万相改进建议在当今这个创意与科技交织的时代,图像生成技术正以前所未有的速度重塑视觉艺术的边界。不管你是否有艺术细胞,不管你是否接受了系统的艺术创作教育,你都可以......
  • 个人项目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-12这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-12/homework/13220这个作业的目标完整地做一次项目、掌握测试工具、掌握处理异常方法1.Github仓库中新建学号为名的文......
  • 前端项目通过 Nginx 发布至 Linux,并通过 rewrite 配置访问后端接口
    〇、前言本文通过将arco框架的前端项目,部署至CentOS7,并访问同服务器的WebAPI接口,来简单演示一下,如何将前端项目发布至Linux系统。关于ASP.NETWebAPI发布至Linux的步骤,可以参考博主过往文章:https://www.cnblogs.com/hnzhengfy/p/18384107/webapi_centos。一、简......
  • 记一次 公司.NET项目部署在Linux环境压测时 内存暴涨分析
    一:背景讲故事公司部署在某碟上的项目在9月份压测50并发时,发现某个容器线程、内存非正常的上涨,导致功能出现了异常无法使用。根据所学,自己分析了下线程和内存问题,分析时可以使用lldb或者windbg,但是个人比较倾向于界面化的windbg,所以最终使用windbg开干。二:WinDbg分析到底是......
  • Codes 开源研发项目管理平台——创新的敏捷测试解决方案
    前言Codes是国内首款重新定义SaaS模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对30人以下团队免费。它通过整合迭代、看板、度量和自动化等功能,简化测试协同工作,使敏捷测试更易于实施。并提供低成本的敏捷测试解决方案,如同步在线离线测试用例、流程化管......