201671010427 孫苗坤 詞頻統計軟件項目報告

1.需求分析:

本實驗用java語言進行編寫,要求

  • 程序可讀入任意英文文本文件,該文件中英文詞數大於等於1個。java

  • 程序須要很壯健,能讀取容納英文原版《哈利波特》10萬詞以上的文章。git

  • 指定單詞詞頻統計功能:用戶可輸入從該文本中想要查找詞頻的一個或任意多個英文單詞,運行程序的統計功能可顯示對應單詞在文本中出現的次數和柱狀圖。github

  • 高頻詞統計功能:用戶從鍵盤輸入高頻詞輸出的個數k,運行程序統計功能,可按文本中詞頻數降序顯示前k個單詞的詞頻及單詞。編程

  • 統計該文本全部單詞數量及詞頻數,並能將單詞及詞頻數按字典順序輸出到文件result.txt。學習

2. 功能設計:

  • 文件讀入功能
  • 指定單詞統計功能
  • 顯示指定單詞統計的柱狀圖功能
  • 文件高頻詞統計功能
  • 全部單詞數量及詞頻數統計,將結果輸入到result.txt的功能

3. 設計實現:

  • 文件讀入功能:Main.java利用map集合的方法,把全部鍵值顯示出來,以後再獲取map方法便可。
  • 指定單詞統計功能: fengzhuang.java,對文件中的單詞進行統計並顯示出來。
  • 顯示指定單詞統計的柱狀圖功能:Main.java,對文件中的單詞統計後用柱狀圖顯示。
  • 文件高頻詞統計功能:fengzhuang.java,對文件中的高頻詞進行顯示,並統計。
  • 全部單詞數量及詞頻數統計:Main.java,將整個文檔的單詞及詞頻數按字典順序輸出到result.txt中,保存。

4. 測試運行:

文件讀入功能

指定單詞統計功能

顯示指定單詞統計的柱狀圖功能

全部單詞數量及詞頻數統計,將結果輸入到result.txt的功能
測試

5. 代碼:

經過map集合、treemap、調用類方法、輸入輸出等方法實現對指定單詞的統計功能。編碼

System.out.println("請輸入你要查找的單詞,用逗號隔開");
            String s1=sc.next();
            //調用類方法
            fengzhuang f1=new fengzhuang();
            str=f1.one(map, s1);//s1查指定單詞  map查全部的單詞
            
            Main s3=new Main();
            s3.setVisible(true);
public String[] one(TreeMap<String,Integer> map,String str){
        TreeMap<String,Integer> map1 = new TreeMap<String,Integer>();
        
        String[] s2=str.split(",");
        
        for (int i = 0; i < s2.length; i++) {
            for(Entry<String,Integer> entry: map.entrySet()) {                  
                if(s2[i].equals(entry.getKey())){
                    map1.put(entry.getKey(),entry.getValue());
                    System.out.println(entry.getKey()+"=="+entry.getValue());
                    break;
                }
           }
      }
    return s2;

6. 總結:

在程序設計中,將整個程序按不一樣的功能劃分爲不一樣的模塊,並在這些模塊之間創建必要的聯繫,共同完成程序所要實現的功能。但因爲實力不足,高頻詞統計功能未能實現,之後要增強代碼的練習,提升編程的能力。設計

7. PSP

PSP2.1 任務內容 計劃共完成須要的時間(min) 實際完成須要的時間(min)
Planning 計劃 15 15
· Estimate · 估計這個任務須要多少時間,並規劃大體工做步驟 15 15
Development 開發 146 218
·· Analysis 需求分析 (包括學習新技術) 25 35
· Design Spec · 生成設計文檔 25 35
· Design Review · 設計複審 10 15
· Coding Standard 代碼規範 10 10
· Design 具體設計 30 50
· Coding 具體編碼 120 240
· Code Review · 代碼複審 15 20
· Test · 測試(自我測試,修改代碼,提交修改) 30 50
Reporting 報告 25 30
·· Test Report · 測試報告 30 40
· Size Measurement 計算工做量 10 10
· Postmortem & Process Improvement Plan · 過後總結 ,並提出過程改進計劃 15 20
  • 從PSP表中能夠看出每一個階段的計劃完成時間和實際完成時間仍是有必定的差距的,因爲對於Java語言的掌握不夠好,致使此次做業剛開始作的時候思路不清晰,編碼過程比較困難,但經過查閱資料和尋求同窗的幫助,基本完成了此次做業。經過此次做業,我意識到本身對Java語言掌握的並不熟練,有一些方法也不懂,之後要增強本身的編程能力,提升本身對Java語言的掌握度,爭取寫出更好的程序。代碼規範

  • 源代碼地址:https://github.com/sunmiaokum/countcode

相關文章
相關標籤/搜索