本次点评了同班同窗党鹏博写的有关词频统计的博文,点评以下:基本实现了词频统计的功能,可是在博文的末尾提到了将单词和出现的频率保存在数据库中,从源码中并无发现有数据库相关驱动和操做的代码。但愿博主能够继续完善功能。同时在psp表中能够发现博主在代码编写上耗时最多,之后这也是须要多加练习的地方。
博文地址:http://www.javashuo.com/article/p-fbywxpxv-gx.html
源码地址:https://github.com/dangpb123/-html
(1).程序可读入任意英文文本文件,该文件中英文词数大于等于1个。
(2).程序须要很壮健,可处理任意用户导入的任意英文文本,能读取容纳英文原版《哈利波特》10万词以上的文章。
(3).指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。单词频数可视化柱状图要求是如下样式:
(4).高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。
(5).统计该文本行数及字符数;
(6).各类统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
(7).人机交互界面要求GUI界面(WEB页面、APP页面均可)
(8).统计该文本全部单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。java
本次使用告终构化设计的理念,故只有一个主类(WordCount)其设计流程以下:
git
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(); }
任务内容 | 计划共完成须要的时间(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