201671010456-张琼 实验二 词频统计软件项目报
一、需求分析
1.程序要能够读入英文文本,并且要求此文本不能为空。
2.程序能容纳的英文单词要在10万以上。
3.程序要能输入想查找的一个或者多个英文单词,并且统计出它出现的次数,并且把它的统计结果以柱状图的形式显示出来。
4.程序运行结果自动显示该文本的单词总数和每个单词出现的频率。把单词数和词频数按照字典顺序输出到文件result.txt。
5.当在键盘输入高频词的个数k后,进行程序统计功能运行,之后要按照词频数降序排列显示在k之前的每个单词的数量和单词。
二、功能设计
基本功能:能够读入单词并且统计出总词数,并能统计每个单次出现的频率。因为对语言并不是特别熟悉,所以最后的统计功能和柱状图并没有实现。
三、设计实现
- 运行环境:windows环境 eclipse软件
- 流程图 ![](https://img2018.cnblogs.com/blog/1614501/201903/1614501-20190319183118069-203933010.png)
- 程序设计:定义一个主类main,首先读取文件,文件的位置要设置成相对位置。然后进行存储,统计单次出现的频率及其总词数。用迭代遍历关闭流。文件的相对位置存储中,上传的步骤需要清楚。首先新建一个文件,在里面添加进去要扫面统计的文本。
###四、测试运行
![](https://img2018.cnblogs.com/blog/1614501/201903/1614501-20190319171051861-1051932470.png)
###五、代码片段展示
相对路径的展示
```
try{
//使用流的方法读取文件
BufferedReader br = new BufferedReader(new FileReader(
"result.txt"));
```
```
while(it.hasNext()){
Map.Entry
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(); }
###六、总结 在本次作业中,遇到的困难很多,花费的时间也很多,因为对语言的不熟悉,所以参考了网上的代码。刚刚拿到这个作业时不会做,翻书复习了java,对个人项目的流程有了一定的掌握。但是柱状图的功能并没有实现。严格意义上来说并没有完成本次作业,只实现了最简单的单词总数统计和词频统计。 里面涉及到了好多函数的应用,有很多都是不会的,意识到数据结构的重要性,而自己对这部分知识的掌握还仅仅停留在做题上。除此之外,对GitHup的操作流程也熟悉了。 ###七、psp展示 |||||||||||||| |:--|:--|:--| |**阶段/时长**|**计划总共需要的完成时间(min)**|**实际完成需要的时间(min)**| |计划|10|10| |估计需要时间,并计划大致工作步骤|10|10| |开发|90|150| |需求分析|15|20| |生成设计文档|30|20| |设计复审|5|5| |代码规范|5|5| |具体设计|10|15| |具体编码|90|240| |代码复审|10|5| |测试|10|10| |报告|5|3| |测试报告|5|5| |计算报告量|10|10| |总结,并提出改进计划|20|25| 源代码地址:https://github.com/ZhangQiong1/program1