201671010411+巩定定+词频统计软件项目报告

课程名软件工程
实验二词频统计软件项目报告
词频(TF) 是一个词语出现的次数除以该文件的总词语数。
实验目的 (1)掌握软件项目个人开发流程。
(2)掌握Github上发布软件项目的操作方法。
环境配置使用的JDK版本为 jdk8u161,windows版下载链接:
http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-windows-x64.exe

•使用的JRE版本为jre8u161,windows版下载链接:
http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jre-8u161-windows-x64.exe
实验要求 软件开发要求:
1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个。
2.程序需要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。
3.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词
                                  在文本中出现的次数和柱状图。
4.高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。
5.统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。

实验内容:
需求分析
1.使用java语言,对存放在java中的W.txt中的所有单词进行统计。
2.将指定单词统计的结果按照要求显示(按照柱形图的形式显示)。
3.高频单词的统计功能,输入整数K,按照单词的词频数显示前K个数以及单词。
4.将单词及词频数按字典顺序输出到文件result.txt.要求代码健壮,代码简介,代码质量高。

功能设计
该Java程序实现的功能是进行单词的词频统计,能读取容纳英文原版《哈利波特》10万词以上的文章。进行单词的词频统计,还要绘制柱状图,并实现指定单词词频统计、高频词汇的统计该文本所有单词的数量和对应的词频数......
测试运行
![](https://img2018.cnblogs.com/blog/1614553/201903/1614553-20190320074452706-1909195065.png)
![](https://img2018.cnblogs.com/blog/1614553/201903/1614553-20190320012421477-1009715834.png)
![](https://img2018.cnblogs.com/blog/1614553/201903/1614553-20190320073550838-319990249.png)
代码
//读入《哈利波特》 String line "src/word.txt"; File file = new File(line); InputStreamReader is = new InputStreamReader(new FileInputStream(file), "utf-8"); BufferedReader buff = new BufferedReader(is); List list = new ArrayList();//list中只存放纯单词文本 String readLine = null;//单词列表初始为空 while((readLine = buff.readLine())!=null){ String[] WordsArr = readLine.split("[^a-zA-z]"); for(String word:WordsArr){ if(word.length()!=0){ list.add(word);//将截取后的纯单词放入list } } } buff.close(); WordsCount = new TreeMap();//键值对存储单词信息,String为单词,Integer为单词出现次数 //词频统计(查询单次出现次数,并循环进行累加统计) for(String lists:list){ if(WordsCount.get(lists)!=null){ WordsCount.put(lists, WordsCount.get(lists)+1);//单次出现频次累加 }else{ WordsCount.put(lists, 1); } }

实验总结:
在此次实验作业中,发现了很多关于自己在Java编码方面的不足之处,在选择函数的时候会选择错误的时候,最后利用网络资源和书籍解决自己的疑问点。

展示PSP:

PSP2.1任务内容计划共完成需求(min)实际完成需求的时间(min)
PLaning计划200180
. Estimate. 估计这个任务需求多少时间,并规划大致工作步骤140150
Development开发150140
.. Analysis需求分析(包括学习新技术)6050
. Design Spec. 生成设计文档6055
. Design Review. 设计复审(和同事审核设计文档)10080
. Coding Standard代码规范(为目前的开发制定合适的规范180150
. Designtd>具体设计120100
. Coding具体编码180170
. Code Review.代码复审99
. Test. 测试(自我测试,修改代码,提交修改)6055
Reporting报告3025
.. Test Report. 测试报告6040
. Size Measurement计算工作量6050
. Postmortem&Process Improvement.事后总结,并提出过程改进计划2020
完整版代码github账号: https://github.com/Gdd2019/WT
posted @ 2019-03-20 01:08  G梓妤  阅读(205)  评论(2编辑  收藏  举报