202103226-1 编程作业

这个作业属于哪个课程 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),能有一个时间规划,也能有效的提高效率。

原文地址:https://www.cnblogs.com/zl010206/p/14608891.html