201671010459張旭輝-詞頻統計軟件項目報告

課程名稱 html

2016級計算機科學與工程學院軟件工程 git

做業要求 github

實驗二 軟件工程我的項目 正則表達式

課程目標 編程

嘗試按照《構建之法》第2章中2.3所述PSP流程,使用JAVA編程語言,獨立完成一個英文文本詞頻統計的軟件開發。 數組

做業意義 app

1)掌握軟件項目我的開發流程。 編程語言

2)掌握Github上發佈軟件項目的操做方法 ide

 

Github的倉庫主頁的連接地址:https://github.com/16rgzxh/zxh-/tree/master/test/src模塊化

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

2.功能設計

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

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

3. 設計實現,設計包括你會有哪些類,這些類分別負責什麼功能。

a)     public BufferedReader(Reader in,int sz)

建立一個使用指定大小輸入緩衝區的緩衝字符輸入流。

in - 一個 Reader

sz - 輸入緩衝區的大小

b)   public BufferedReader(Reader in)

建立一個使用默認大小輸入緩衝區的緩衝字符輸入流.

c)   toLowerCase 方法
字符串中的字母被轉換爲小寫字母.

d)   ArrayList 排序方法

實現對數組的排序,給輸出的單詞頻率高低進行排序.

e)   PrintStream 打印輸出流.

實現統計文本的輸出,輸出文本結果保存在文檔中.

4. 測試運行請展現程序的運行截圖,包括題目要求實現功能運行截圖。

 

5.代碼片斷博客園正確的代碼控件來顯示。(提示:要有必要的註釋說明,提示:不要貼全部代碼!不符合規定的要倒扣分)

BufferedReader br = new BufferedReader(new FileReader("src/a.txt"));

            StringBuffer sb = new StringBuffer();

            String text="";

            System.out.println(br.readLine()!=null);

            while ((text=br.readLine())!=null){

            //遍歷追加

                sb.append(text);

            }

            //關閉流

            br.close();

            // stringBuffer轉爲字符並轉換爲小寫

            String str = sb.toString().toLowerCase();

            // 正則表達式    非單詞的字符來分割,獲得全部單詞

            String[] words = str.split("[^(a-zA-Z)]+");

            Map<String ,Integer> map = new HashMap<String, Integer>() ;

 

            for(String word :words){

            // 若不存在說明是第一次,則加入到map,出現次數爲1

                if(map.get(word)==null){ 

                    map.put(word,1);

                }else{

                   // 若存在,次數累加1

                    map.put(word,map.get(word)+1);

                }

            }

6. 總結:

所謂模塊化就是將總體軟件系統劃分紅許多個邏輯上相對獨立且可獨立訪問的模塊,不一樣的模塊一般具備不一樣的功能。模塊是程序中邏輯上相對獨立的單元,每一個模塊可獨立地進行設計、開發和測試,最後全部模塊組裝在—起從而造成一個完整的軟件系統。在結構化方法中,一個模塊多是一個過程、函數或子程序等,它是構成軟件的基本構件。

設計原則:

l  創建數據流,可輸入的英文文本,遍歷文本,統計各個單詞出現次數。

l  排序:對統計的單詞書出現頻率進行排序,一出現頻率由高到低的順序排序,

l  輸出單詞總數並輸出單詞出現頻率的結果,而且能夠查詢所需單詞的次數。

l  寫入輸出文本,存儲統計結果。

7. 展現PSP

PSP2.1

任務內容

計劃共完成須要的時間(min)

實際完成須要的時間(min)

Planning

計劃

30

40

Estimate

估計這個任務須要多少時間,並規劃大體工做步驟

20

25

Development

開發

300

720

Analysis

需求分析 (包括學習新技術)

120

150

Design Spec

生成設計文檔

45

60

Design Review

設計複審 (和同事審覈設計文檔)

20

10

Coding Standard

代碼規範 (爲目前的開發制定合適的規範)

20

30

Design

具體設計

30

60

Coding

具體編碼

300

600

Code Review

代碼複審

40

80

Test

測試(自我測試,修改代碼,提交修改)

120

150

Reporting

報告

60

100

Test Report

測試報告

20

30

Size Measurement

計算工做量

5

10

Postmortem & Process Improvement Plan

過後總結 ,並提出過程改進計劃

30

60

相關文章
相關標籤/搜索