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

源碼

相關文章
相關標籤/搜索