201671030105 词频统计软件项目报告

一:需求分析:
使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发。软件基本功能要求如下:

1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个。

2.程序需要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。

3.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。

4.高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。

5.统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt

二:功能设计:
读文本功能:程序可读入任意英文文本文件。

指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。

高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。

三:设计实现:
1、本次词频统计软件项目共有两个类
(1)、Main.java
控制整个程序
1、实现对文本文件中数据的读入
2、对各项功能进行选择,并调用wordcount.java中相应的函数实现各项功能
(2)、wordcount.java
包括四个功能函数:
1、显示词频和柱状图(histogram函数)——输入从该文本中想要查找词频的一个或任意多个英文单词,显示对应单词在文本中出现的次数
     和柱状图。
2、输出高频词(HighWord函数)——按文本中词频数降序显示前k个单词的词频及单词。
3、排序(sort函数)——降序排序和按字典顺序排序
4、写文件(output函数)——将文本中所有单词数量及词频数按字典顺序输出到文件result.txt中
在这几部分里基本实现了词频的输入输出以及,排序。
四:测试运行:

五:代码分析:
读出文本文件,过滤并存储单词:
BufferedReader br = new BufferedReader(new FileReader("F:/test/source.txt"));
List lists = new ArrayList();
String readLine = null;
while((readLine = br.readLine()) != null){
String[] wordsArr1 = readLine.split("[^a-zA-Z]");
for (String word : wordsArr1) {
if(word.length() != 0){ //去除长度为0的行
lists.add(word);
六:总结
整个项目按照功能分成若干个模块,每个模块完成自己对应的功能,并且各个模块之间相互联系,协作完成所有功能。在本次词频统计软件项目中,我创建了两个类。Main类控制整个程序,读入文本文件中的数据,显示菜单并调用wordcount类中的各个函数。
七:PSP展示:

PSP 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 15 20
Estimate 估计这个任务需要多少时间,并规划大致工作步骤 15 30
Development 开发 200 300
Analysis 需求分析(包括学习新技术) 25 30
Design Spec 生成设计文档 15 18
Design Review 设计复审 10 25
Coding Standard 代码规范(为目前的开发制定合适的规范) 25 30
Design 具体设计 15 20
Coding 具体编码 40 80
Code Review 代码复审 10 25
Test 测试(自我测试,修改代码,提交修改) 20 30
Reporting 报告 15 30
Test Report 测试报告 15 20
Size Measurement 计算工作量 15 30
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 20 18

点击此处查看源码

原文地址:https://www.cnblogs.com/luorbhu/p/10562481.html