201671030119 词频统计软件项目报告

项目名称:词频统计软件

需求分析

- 使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发
- 软件基本功能要求以下:
1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个。
2.程序须要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。
3.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。
4.高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。
5.统计该文本全部单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt

功能设计

基本功能:  
1.指定单词词频统计功能;
2.高频词统计功能;
3.统计该文本全部单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt
扩展功能:无

测试运行

  • 将单词及词频数按字典顺序输出到文件result.txt
    git

  • result.txt:
    程序员

  • 指定单词词频统计
    github

  • .高频词统计功能
    算法

部分代码

循环Map使用set接受返回的值,后遍历查询与输入单词相同的单词,输出单词以及词频。编程

for(int i=0;i<n;i++)
{
    System.out.println("单词 "+(i+1));
    String word = in.next();
    Set<StringBuffer> ks1 = ts.keySet();
    for(StringBuffer s2:ks1) 
    {
        if(word.equals(s2.toString()))
        {
            System.out.println("单词:"+s2.toString()+"            出现次数:"+ts.get(s2));
            num++;
            if(num==n)
                break;
        }   
    }
}

将文本文件中的单词存于lists,遍历lists将单词存放在treeMap ts与hashMap之中。借助treeMap特性完成单词的排序和 词频的统计,而hashMap是关于最高词频的统计。数据结构

Map<String, Integer> hashMap = new HashMap<String, Integer>();
        for(String str: lists) 
        {
            StringBuffer s2 = new StringBuffer( str);
            
            if (ts.containsKey(s2)) {
                count=Integer.parseInt(Integer.toString(count));;
                count++;
                ts.put(s2,Integer.toString(count));
                hashMap.put(str,count);
            }
            else {
                count=1;
                ts.put(s2, Integer.toString(count));
                hashMap.put(str,count);
            }    
        }

总结

这次软件项目我的开发项目让我对软件开发有了更深入的理解,一个完整的软件开发过程当中,任何一个步骤都是不可缺乏的。在开始这次软件开发后,我先是进行了软件的需求分析,将老师的要求所有理解之后开始设计,完成设计后我才知道原来一个好的设计能够将一个软件全部的东西都呈如今咱们的眼前。在以后开始了代码的编写,毕竟不是老练的的程序员,代码的编写仍是没有流程中说的那么简单,在通过挺长时间的编程后,软件呈现了出来,通过测试,实现了大部分功能,还有柱状图功能由于编码能力差了点没有实现。通过这一个完整的我的开发流程,我发现虽然编码前花费了不少时间进行一些前期设计,但由于它们的存在,编程世没有花费时间去想功能、数量、数据结构以及算法,在全部的一切准备好以后开始写代码,真的会很舒心,这大概是我这一次设计最重要的收获了。

PSP:编程语言

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

源码

相关文章
相关标签/搜索