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中
在这几部分里基本实现了词频的输入输出以及,排序。
四:测试运行:
1616094-20190320003441141-345219619.png
五:代码分析:
读出文本文件,过滤并存储单词:
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计划1520
Estimate估计这个任务需要多少时间,并规划大致工作步骤1530
Development开发200300
Analysis需求分析(包括学习新技术)2530
Design Spec生成设计文档1518
Design Review设计复审1025
Coding Standard代码规范(为目前的开发制定合适的规范)2530
Design具体设计1520
Coding具体编码4080
Code Review代码复审1025
Test测试(自我测试,修改代码,提交修改)2030
Reporting报告1530
Test Report测试报告1520
Size Measurement计算工作量1530
Postmortem & Process Improvement Plan事后总结,并提出过程改进计划2018

点击此处查看源码

转载于:https://www.cnblogs.com/luorbhu/p/10562481.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值