201671010433王立新《英文文本统计分析》结对项目报告

任务一、博文互评

本次点评了同班同窗党鹏博写的有关词频统计的博文,点评以下:基本实现了词频统计的功能,可是在博文的末尾提到了将单词和出现的频率保存在数据库中,从源码中并无发现有数据库相关驱动和操做的代码。但愿博主能够继续完善功能。同时在psp表中能够发现博主在代码编写上耗时最多,之后这也是须要多加练习的地方。
博文地址:http://www.javashuo.com/article/p-fbywxpxv-gx.html
源码地址:https://github.com/dangpb123/-html

任务二、 结对编程

1.需求分析

(1).程序可读入任意英文文本文件,该文件中英文词数大于等于1个。
(2).程序须要很壮健,可处理任意用户导入的任意英文文本,能读取容纳英文原版《哈利波特》10万词以上的文章。
(3).指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。单词频数可视化柱状图要求是如下样式:

(4).高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。
(5).统计该文本行数及字符数;
(6).各类统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
(7).人机交互界面要求GUI界面(WEB页面、APP页面均可)
(8).统计该文本全部单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。java

2.软件设计:

本次使用告终构化设计的理念,故只有一个主类(WordCount)其设计流程以下:
git

3.核心功能代码展现:展现核心功能代码

public static void main(String[] args) throws FileNotFoundException,IOException{

        try{
            //使用流的方法读取文件
            BufferedReader br = new BufferedReader(new FileReader(
                    "F:\\javademo\\softwar_pro\\MRDemo\\words.txt"));
            //使用TreeMap方法自动将结果按Integer列
            TreeMap<String,Integer> treemap = new TreeMap<String,Integer>();
            //用来存储读取的单词
            String readLine = null;
            //记录单词的总数
            int count = 0;
            while((readLine = br.readLine())!=null){
                //将字母排序为小写
                readLine = readLine.toLowerCase();
                //将全部单词以大写输出
                //readLine  = readLine.toUpperCase();
                //过滤出只含有字母的字段
                String[] str = readLine.split("[\\s]");
                //过滤掉多个空格,“+”表明多个空格的意思
                for(int i = 0;i<str.length;i++){
                    count++;
                    String word = str[i].trim();//trim()用来去掉字符串首尾的空格
                    if(treemap.containsKey(word)){//判断此映射是否包含指定键的映射关系
                        treemap.put(word, treemap.get(word)+1);
                    }else{
                        treemap.put(word, 1);
                    }
                }
            }
Iterator<Map.Entry<String,Integer>> it  = treemap.entrySet().iterator();
            //判断是否存在下一个单词
            while(it.hasNext()){
                Map.Entry<String, Integer> entry = it.next();//获取map中每个键值
                //输出结果
                System.out.println(entry.getKey()+"        "+entry.getValue());
                br.close();//关闭流
            }
            System.out.println("单词总数为:"+count+"个");

        }catch(FileNotFoundException e){//异常处理
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }

4. 程序运行:程序运行时每一个功能界面截图


5. 描述结对的过程,提供两人在讨论、细化和编程时的结对照片(非摆拍)

6. 提供这次结对做业的PSP

任务内容 计划共完成须要的时间(min) 实际完成须要的时间(min)
计划 10 5
估计这个任务须要的时间,并规划大体工做步骤 5 3
开发 100 120
需求分析(包括学习新技术) 7 9
生成设计文档 15 20
设计复审 5 7
代码规范(为目前的开发制定合适的规范) 5 5
具体设计 6 8
具体编码 60 80
代码复审 10 25
测试(自我测试、修改代码、提交修改) 10 8
报告 20 25
测试报告 10 10
过后总结,并提出过程改进计划 25 20

从PSP表中能够发现项目在实施工程中的时间比预计时间要长,可能和本身对开发流程不熟悉、算法设计不精有关。在之后的 开发中要多加改进。
源代码地址;https://github.com/CoderLixin/GitTestgithub

相关文章
相关标签/搜索