第一周作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/computer-science-class4-2018/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/computer-science-class4-2018/homework/11880 |
这个作业的目标 | <完成编程作业> |
作业正文 | https://www.cnblogs.com/LfanWyuXooo/p/14612283.html |
其他参考文献 | 《构建之法》,《软件工程》 |
1.Github项目地址
2.PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) |
---|---|---|
Planning | 计划 | 120 |
Estimate | 估计这个任务需要多少时间 | 150 |
Development | 开发 | 200 |
Analysis | 需求分析 (包括学习新技术) | 30 |
Design Spec | 生成设计文档 | 40 |
Design Review | 设计复审 | 30 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 20 |
Design | 具体设计 | 300 |
Coding | 具体编码 | 600 |
Code Review | 代码复审 | 80 |
Test | 测试(自我测试,修改代码,提交修改) | 30 |
Reporting | 报告 | 40 |
Test Repor | 测试报告 | 20 |
Size Measurement | 计算工作量 | 15 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 40 |
合计 | 1750 |
3.解题思路描述
3.1题目要求
- 统计文件的字符数(对应输出第一行)
- 统计文件的单词总数(对应输出第二行)
- 统计文件的有效行数(对应输出第三行)
- 统计文件中各单词的出现次数(对应输出接下来10行)
- 输出结果
3.2解题思路
1.文件的读取以及字符数的计算:先便利所有字符,然后存入缓冲流,在统计字符数;
2.单词数的计算:读取文件内容,遇到空格,当读取再次遇到空格,单词数加1;
3有效行数的计算:每一行不为空则加一;
4.高频词汇排序比较难,还没什么头绪。
4.代码规范制定链接
5.设计与实现过程
判断文件是否存在,然后就读取文件,创建缓冲流引入对象,以便后续使用。
if(file.isFile() && file.exists()){ //判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file),encoding);//考虑到编码格式
ArrayList<String>list = new ArrayList<>();
//创建高效字符缓冲输入流对象,并和data.txt文件关联
BufferedReader br = new BufferedReader(new FileReader(file));
有效行数的计算
//循环读取每一行
while(null!=(line = br.readLine())) {
//将读到的每一行信息存入到list集合中
list.add(line);
if(!line.equals("") )
{
linenum++;
}
}
字符总个数的计算
···
int charnum=0;
char[] ch = list.toString().toCharArray();
for(int i = 0; i < ch.length; i++) {
if(ch[i] >= 0 && ch[i] <= 127) {
charnum++;
}
}
···
6.性能改进
本次作业对我来说有些难,我有很多可以改进的时候,最后两个题目要求没有做好,统计单词个数喝高频词汇做的不好。以后也会花时间好好看看这个题目的。看了别人的资料,正则表达式喝map的引用应该会起到不错的效果,我还是积累的太少了,没搞懂这两个东西。有时间去学习一下。
7.单元测试
8.异常处理说明
运行的时候,由于路劲问题,老师会出现文件找不到报错的问题。
9.实际的PSP表格
PSP2.1 | Personal Software Process Stages | 实际耗时(分钟) |
---|---|---|
Planning | 计划 | 200 |
Estimate | 估计这个任务需要多少时间 | 150 |
Development | 开发 | 200 |
Analysis | 需求分析 (包括学习新技术) | 30 |
Design Spec | 生成设计文档 | 40 |
Design Review | 设计复审 | 30 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 20 |
Design | 具体设计 | 400 |
Coding | 具体编码 | 700 |
Code Review | 代码复审 | 80 |
Test | 测试(自我测试,修改代码,提交修改) | 30 |
Reporting | 报告 | 40 |
Test Repor | 测试报告 | 20 |
Size Measurement | 计算工作量 | 15 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 40 |
合计 | 2130 |
10..心路历程与收获
本次作业对我来说难度很大,让我意识到了,我的代码知识积累喝运用有多么的匮乏。作业也没有完成的很好。由此想到后面的小组任务,不免有些紧张和不自信。每次放假之后落下的记忆喝只是,接下来要去好好回顾一下以前学习的。