这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/computer-science-class3-2018 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/computer-science-class3-2018/homework/11879 |
这个作业的目标 | 完成词频统计的个人作业以及博客撰写 |
学号 | 20188471 |
Gitee项目地址:https://gitee.com/zl123456787654321/project-java
Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|
计划 | 720 | 720 |
• 估计这个任务需要多少时间 | 600 | 600 |
开发 | 120 | 120 |
• 需求分析 (包括学习新技术) | 60 | 90 |
• 生成设计文档 | 30 | 30 |
• 设计复审 | 20 | 30 |
• 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
• 具体设计 | 40 | 40 |
• 具体编码 | 120 | 150 |
• 代码复审 | 30 | 20 |
• 测试(自我测试,修改代码,提交修改) | 120 | 120 |
报告 | 60 | 60 |
• 测试报告 | 40 | 40 |
• 计算工作量 | 30 | 30 |
• 事后总结, 并提出过程改进计划 | 30 | 30 |
合计 | 730 | 790 |
解题思路描述:
1、从文件获取输入;
2、统计字符数、单词数以及出现最多的十个单词及词频;
3、输出结果;
代码规范链接:https://gitee.com/zl123456787654321/project-java/blob/master/20188471/codestyle.md
计算模块接口的设计与实现过程
按照题目要求,程序设计了两个类Lib类和WordCount类;
Lib类中包含的方法:
*getWords //获取单词总数
* getChars //获取字符数
* getLines //获取行数
* getMaxCntWords
WordCount类包含Main函数等
getLines()方法的设计
Pattern linePattern = Pattern.compile("(^|
)\s*\S+"); //行数匹配正则表达式
lines = 0; //行数置为0
Matcher matcher = linePattern.matcher(text);
while (matcher.find())
{
lines++;
}
getChars()方法设计
chars = text.length();
getWords()方法的设计
if(!isDoHandleWordsFunc)
handleWords();
isDoHandleWordsFunc = true;
getMaxCntWords()方法的设计
if(!isDoHandleWordsFunc)
handleWords();
isDoHandleWordsFunc = true;
异常处理说明
读写文件出现错误:采用try catch来抛出异常
try
{
inputBfd = new BufferedReader(new InputStreamReader(new FileInputStream(inputFileName), "UTF-8"));
int charIndex = 0;
StringBuilder stringBuilder = new StringBuilder();
while ((charIndex = inputBfd.read()) != -1) {
stringBuilder.append((char) charIndex);
}
text = stringBuilder.toString();
}
catch (Exception e)
{
System.out.print(e.getMessage());
System.out.print("
文件写出错!");
}
finally
{
if(output != null)
output.close();
}
心路历程与收获
第一次做要求比较多的作业,看完题目让人头大;老师给的时间也比较充裕;在这期间要学会使用Gitee的一些简单命令,把大一学的一点皮毛给找补回来。但最后还是看视频、找资料初步完成了本次作业。也从侧面反映出所学的知识并不是很扎实,还有很长的一段路要走。在后面的学习中,也要慢慢找补回前面所学的知识。第一次制订Personal Software Process (PSP),能有一个时间规划,也能有效的提高效率。