第一次个人编程作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/CSGrade21-12 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13014 |
这个作业的目标 | 论文查重 |
Github地址:https://github.com/1294566108/3121004844
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 40 |
-Estimate | -估计这个任务需要多少时间 | 200 | 250 |
Development | 开发 | 400 | 440 |
-Analysis | -需求分析 (包括学习新技术) | 150 | 90 |
-Design Spec | -生成设计文档 | 50 | 60 |
-Design Review | -设计复审 | 20 | 35 |
-Coding Standard | -代码规范 (为目前的开发制定合适的规范) | 20 | 20 |
-Design | -具体设计 | 20 | 30 |
-Coding | -具体编码 | 120 | 180 |
-Code Review | -代码复审 | 20 | 40 |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 60 |
-Reporting | -报告 | 100 | 100 |
-Test Report | -测试报告 | 60 | 60 |
-Size Measurement | -计算工作量 | 40 | 20 |
-Postmortem & Process Improvement Plan | -事后总结, 并提出过程改进计划 | 20 | 10 |
合计 | 1080 | 1270 |
开发环境
代码组织架构
两个工具类,一个FileUtils.java,另一个EncryptionUtils.java。其中FileUtils用于读取以及写入文件;EncryptionUtils用于计算hash值以及相似度。
运行结果文件result.txt展示:
!
单元测试
针对每一个类都进行了单元测试
public class EncryptionUtilsTest {
@Test
public void getSimilarityTest(){
String filePath1 = "E:\\3121004844\\src\\main\\java\\testFile\\test3";
String filePath2 = "E:\\3121004844\\src\\main\\java\\testFile\\test4";
String txtString1 = FileUtils.getFileString(filePath1);
String txtString2 = FileUtils.getFileString(filePath2);
String hash1 = EncryptionUtils.getSimHash(txtString1);
String hash2 = EncryptionUtils.getSimHash(txtString2);
System.out.println(hash1);
System.out.println(hash2);
}
}
public class FileUtilsTest {
@Test
public void getTxtStringTest(){
String filePath = "E:\\3121004844\\src\\main\\java\\testFile\\test1";
String txtString = FileUtils.getFileString(filePath);
}
@Test
public void iterateFileTest(){
String filePath1 = "E:\\3121004844\\src\\main\\java\\testFile\\test3";
String filePath2 = "E:\\3121004844\\src\\main\\java\\testFile\\test4";
String[] iterateFile1 = FileUtils.iterateFile(filePath1);
String[] iterateFile2 = FileUtils.iterateFile(filePath2);
}
}
public class MainMethodTest {
@Test
public void test1(){
new main().main(null);
}
@Test
public void test2(){
String filePath1 = "E:\\3121004844\\src\\main\\java\\testFile\\test1";
String filePath2 = "E:\\3121004844\\src\\main\\java\\testFile\\test2";
String filePath3 = "E:\\3121004844\\src\\main\\java\\ans\\test-result2";
new main().main(new String[]{filePath1,filePath2,filePath3});
}
@Test
public void test3(){
String filePath1 = "E:\\3121004844\\src\\main\\java\\testFile\\test3";
String filePath2 = "E:\\3121004844\\src\\main\\java\\testFile\\test4";
String filePath3 = "E:\\3121004844\\src\\main\\java\\ans\\test-result3";
new main().main(new String[]{filePath1,filePath2,filePath3});
}
}
异常处理
使用自定义的异常,例如FileException,用于在文件相关异常的情况下抛出
性能测试
本文作者:AKAI_CHI
本文链接:https://www.cnblogs.com/akai-chi/p/17709853.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步