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

课程名称 html

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

做业要求 github

实验二 软件工程我的项目 正则表达式

课程目标 编程

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

做业意义 app

1)掌握软件项目我的开发流程。 编程语言

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

 

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. 测试运行请展现程序的运行截图,包括题目要求实现功能运行截图。

 

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  写入输出文本,存储统计结果。

7. 展现PSP

PSP2.1

任务内容

计划共完成须要的时间(min)

实际完成须要的时间(min)

Planning

计划

30

40

Estimate

估计这个任务须要多少时间,并规划大体工做步骤

20

25

Development

开发

300

720

Analysis

需求分析 (包括学习新技术)

120

150

Design Spec

生成设计文档

45

60

Design Review

设计复审 (和同事审核设计文档)

20

10

Coding Standard

代码规范 (为目前的开发制定合适的规范)

20

30

Design

具体设计

30

60

Coding

具体编码

300

600

Code Review

代码复审

40

80

Test

测试(自我测试,修改代码,提交修改)

120

150

Reporting

报告

60

100

Test Report

测试报告

20

30

Size Measurement

计算工做量

5

10

Postmortem & Process Improvement Plan

过后总结 ,并提出过程改进计划

30

60

相关文章
相关标签/搜索