词频统计软件项目报告

源码连接git

(一)需求分析

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

(二)功能设计

基本功能:
          - 程序可以读入任意文本文件
          -用户可以查找文件中的单词及出现的次数
          -可以对前k个高频单词降序输出
     扩展功能:
           无

(三). 设计实现

MainClass该类主要进行文件的读取,调用其余类,以及首页功能界面的显示。
        Sort该类进行统计文本全部单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。
        Wordcount,该类有两个函数,count函数实现用户输入若干单词后词频及柱状图的显示,Highcount函数实现用户想要查看的前k个高频单词。

(四)测试运行

首页功能界面

查看单词词频及柱状图

查看高频单词

查看全部单词词频


退出系统
github

(五)代码片断,

/*对原文件中的单词按词频进行排序*/

     File file = new File("src/result.txt");
        Set<Entry<String,Integer>> mapEntries = Map.entrySet();    
        LinkedList<Entry<String, Integer>> List = new LinkedList<Entry<String,Integer>>(mapEntries);
           Collections.sort(List, new Comparator<Entry<String,Integer>>() {  
            @Override  
            public int compare(Entry<String, Integer> ele1,  Entry<String, Integer> ele2) {
                return ele1.getKey().compareTo(ele2.getKey()); 
            }  
        }); 

    try {
            if(file.exists()) {
                file.createNewFile();
            }
            FileWriter writer = new FileWriter(file.getAbsoluteFile());
            for(Entry<String,Integer> e : Map2.entrySet()) {
                writer.write(e.getKey()+":\t"+e.getValue()+"\n");
            }
            writer.close();
            System.out.println("存储结束!能够在文件中查看");
        }catch(IOException e) {e.printStackTrace();

(六)总结:

在本次设计过程当中我设计了3个模块,一个是文件读取模块,一个是统计词频模块,三是文件写入模块。模块化的设计让我在设计过程当中每个过程的完成都有不一样的成就感。并且在调试代码时也让我能更加快速的找到缘由而且解决。

(七) 展现PSP


在本次的项目中耗时最长的就是编写代码的环节,一是因为长时间没有练习Java,好多基础知识已经忘记了,花了一段时间来复习这些,二是因为要学习新的内容花费了较长的时间,由于当时学习Java时文件这部分的内容时略讲的因此其中的有些方法不是很清楚,三是因为本身水平的问题,平时练习编写代码的时间较少,应该在从此的时间多练习。ide

相关文章
相关标签/搜索