201671010445楊愛婷 詞頻統計軟件項目報告

做業要求:實驗二軟件我的項目

需求分析

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

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

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

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

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

功能設計:

- 可讀文本文件功能
    - 能統計全部單詞基本功能
    - 能指定單詞詞頻功能
    - 能顯示出指定單詞的柱狀圖功能

設計實現:

運用了兩個類,其中一個類是基本的功能,主要是採用了map集合的方法,先一步的把全部的鍵值均可以羅列出來。以後只須要獲取map中的鍵值,在此基礎上,逐一實現其他基本功能。第二個類是調用的方法,而後在類一里面調用方法就好啦。編程語言

測試運行:

測試功能一:
學習

測試功能三:
測試

將結果存放在result中:
編碼

較爲滿意的部分代碼:

if(s==1) {
         //1.指定單詞詞頻統計功能
        System.out.println("請輸入你要查找的單詞,用逗號隔開");
        String s1=sc.next();
        //調用類的方法
        cipin2 c2=new cipin2();
         str=c2.a(map, s1);//S1是查指定的單詞,map是前面是已經統計好的
        cipin s3=new cipin(); 
        s3.setVisible(true);
       }

功能一較爲滿意的緣由是用到調用類的方法,並且用到的集合是map,將該類中須要被調用的方法設置爲靜態(static),加了static後,就能夠用類名直接調用。而後在調用類中直接經過類名進行訪問。調用格式爲:類名.方法名(參數表)。spa

//實參
else if(s==3) {
           //3.統計該文本全部單詞數量及詞頻數,將結果輸入到result.txt
           //調用類的方法2
           cipin2 c2=new cipin2();//聲明一個類對象
           c2.c(map);
       }

//形參的運用
public String[] a(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;
                }
           }

功能三較爲滿意的是本身淺顯地理解了形參和實參。
形式參數(形參):在方法定義時用於接收外界輸入的數據。
實際參數(實參):調用方法時實際傳給方法的數據

總結:注:由於是跨專業,沒有學過Java編程語言,是請教了同窗,因此高頻詞統計功能未能實現,後面會繼續努力.由於以前沒有進行過程序設計,也沒有本身編寫過較爲複雜的程序,此次算是一個進步。

PSP流程:

PSP階段 任務內容 計劃共完成須要的時間(min) 實際完成須要的時間(min)
Planning 計劃 8 10
Estimate 估計這個任務須要多少時間,並規劃大體工做步驟 8 12
Development 開發 82 265
Analysis 需求分析 (包括學習新技術) 6 30
Design Spec 生成設計文檔 5 6
Design Review 設計複審 (和同窗審覈設計文檔) 4 6
Coding Standard 代碼規範 (爲目前的開發制定合適的規範) 3 5
Design 具體設計 10 25
Coding 具體編碼 36 50
Code Review 代碼複審 7 10
Test 測試(自我測試,修改代碼,提交修改) 13 30
Reporting 報告 9 15
Test Report 測試報告 3 3
Size Measurement 計算工做量 2 3
Postmortem & Process Improvement Plan 過後總結 ,並提出過程改進計劃 3 10

源代碼指路!

相關文章
相關標籤/搜索