软件工程作业3
1.码云地址:
https://gitee.com/JeremyGilbert/wordcount
结对小伙伴的学号:高天 201621123050
博客地址:http://www.cnblogs.com/jmugt/
码云地址:https://gitee.com/GTAlluka
2.PSP表格
PSP2.1 | 个人开发流程 | 预估耗费时间(分钟) | 实际耗费时间(分钟) |
---|---|---|---|
Planning | 计划 | 50 | 55 |
· Estimate | 明确需求和其他相关因素,估计每个阶段的时间成本 | 30 | 30 |
Development | 开发 | 400 | 500 |
· Analysis | 需求分析 (包括学习新技术) | 100 | 70 |
· Design Spec | 生成设计文档 | 20 | 15 |
· Design Review | 设计复审 | 30 | 45 |
· Coding Standard | 代码规范 | 40 | 30 |
· Design | 具体设计 | 120 | 200 |
· Coding | 具体编码 | 300 | 450 |
· Code Review | 代码复审 | 40 | 30 |
· Test | 测试(自我测试,修改代码,提交修改) | 40 | 55 |
Reporting | 报告 | 60 | 80 |
· | 测试报告 | 30 | 30 |
· | 计算工作量 | 20 | 20 |
· | 并提出过程改进计划 | 40 | 45 |
3. 功能改进的设计与实现过程
- 把上一次作业写死的路径改成了读取输入的文件,
- main函数:主要调用后边写到的各种count函数
- count函数:主要实现题目要求的统计功能
4.代码说明,展示出项目关键代码,并解释思路与注释说明。
package test;
import java.io.*;
public class FileToStr { // 该类用于文件写入读取的处理
public String FileToString(String path) throws IOException { // 将文件转化为字符串
File file = new File(path);
if (!file.exists() || file.isDirectory()) {
System.out.println("请输入正确文件名!");
throw new FileNotFoundException();
}
FileInputStream fis = new FileInputStream(file);
byte[] buf = new byte[1024];
StringBuffer sb = new StringBuffer();
while ((fis.read(buf)) != -1) {
sb.append(new String(buf));
buf = new byte[1024];// 重新生成,避免和上次读取的数据重复
}
fis.close();
return sb.toString();
}
public void WriteToFile(String str) throws IOException { // 将最后结果写入文件
File writename = new File("result.txt"); // 相对路径,如果没有则要建立一个新的文件
writename.createNewFile(); // 创建新文件
BufferedWriter out = new BufferedWriter(new FileWriter(writename));
out.write(str);
out.flush(); // 把缓存区内容压入文件
out.close(); // 关闭文件
}
}
运行结果:
5.描述结对的过程,提供非摆拍的两人在讨论的结对照片
-
在这次的结队过程中,主要是运用我上次作业的思路来进行修改和完善,因为上次作业由于自己理解题目错误,代码有很多函数没有达到题目要求的功能,也没有实现文件的读入,这次结队在跟高天的讨论下说了下自己之前的想法,然后我重新写了一下文件读取的代码,高天就根据题目要求将我之前错误的代码进行改进,然后一起实现了新的功要求,我们两个对单元测试不太了解,没有实现这块的要求。