201671010459张旭辉-词频统计软件项目报告

课程名称

2016级计算机科学与工程学院软件工程

作业要求

实验二 软件工程个人项目

课程目标

尝试按照《构建之法》第2章中2.3所述PSP流程,使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发。

作业意义

1)掌握软件项目个人开发流程。

2)掌握Github上发布软件项目的操作方法

 

Github的仓库主页的链接地址:https://github.com/16rgzxh/zxh-/tree/master/test/src

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

2.功能设计

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

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

3. 设计实现,设计包括你会有哪些类,这些类分别负责什么功能。

a)     public BufferedReader(Reader in,int sz)

创建一个使用指定大小输入缓冲区的缓冲字符输入流。

in – 一个 Reader

sz输入缓冲区的大小

b)   public BufferedReader(Reader in)

创建一个使用默认大小输入缓冲区的缓冲字符输入流.

c)   toLowerCase 方法
字符串中的字母被转换为小写字母.

d)   ArrayList 排序方法

实现对数组的排序,给输出的单词频率高低进行排序.

e)   PrintStream 打印输出流.

实现统计文本的输出,输出文本结果保存在文档中.

4. 测试运行请展示程序的运行截图,包括题目要求实现功能运行截图。

o_666.jpg

 

5.代码片段博客园正确的代码控件来显示。(提示:要有必要的注释说明,提示:不要贴所有代码!不符合规定的要倒扣分)

BufferedReader br = new BufferedReader(new FileReader(src/a.txt”));

            StringBuffer sb = new StringBuffer();

            String text=“”;

            System.out.println(br.readLine()!=null);

            while ((text=br.readLine())!=null){

            //遍历追加

                sb.append(text);

            }

            //关闭流

            br.close();

            // stringBuffer转为字符并转换为小写

            String str = sb.toString().toLowerCase();

            // 正则表达式    非单词的字符来分割,得到所有单词

            String[] words = str.split(“[^(a-zA-Z)]+”);

            Map<String ,Integer> map = new HashMap<String, Integer>() ;

 

            for(String word :words){

            // 若不存在说明是第一次,则加入到map,出现次数为1

                if(map.get(word)==null){ 

                    map.put(word,1);

                }else{

                   // 若存在,次数累加1

                    map.put(word,map.get(word)+1);

                }

            }

6. 总结:

所谓模块化就是将整体软件系统划分成许多个逻辑上相对独立且可独立访问的模块,不同的模块通常具有不同的功能。模块是程序中逻辑上相对独立的单元,每个模块可独立地进行设计、开发和测试,最后所有模块组装在—起从而形成一个完整的软件系统。在结构化方法中,一个模块可能是一个过程、函数或子程序等,它是构成软件的基本构件。

设计原则:

l  建立数据流,可输入的英文文本,遍历文本,统计各个单词出现次数。

l  排序:对统计的单词书出现频率进行排序,一出现频率由高到低的顺序排序,

l  输出单词总数并输出单词出现频率的结果,并且可以查询所需单词的次数。

l  写入输出文本,存储统计结果。来源:weixin_33671935

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年2月16日
下一篇 2019年2月16日

相关推荐