201671010435-王瀟-詞頻統計軟件項目報告

1、軟件我的項目java

1.實驗目的與要求 (1)掌握軟件項目我的開發流程。
(2)掌握Github上發佈軟件項目的操做方法
2.實驗內容和步驟 任務一:嘗試按照《構建之法》第2章中2.3所述PSP流程,使用JAVA編程語言,獨立完成一個英文文本詞頻統計的軟件開發。
任務二:將包含任務1源碼的完整工程文件提交到你註冊Github帳號下的項目倉庫中。
任務三:完成我的項目報告博文做業.
  • 1.需求分析
    • (1)程序可讀入任意英文文本文件,該文件中英文詞數大於等於1個。
    • (2)程序須要很壯健,能讀取容納英文原版《哈利波特》10萬詞以上的文章。
    • (3)指定單詞詞頻統計功能:用戶可輸入從該文本中想要查找詞頻的一個或任意多個英文單詞,運行程序的統計功能可顯示對應單詞在文本中出現的次數和柱狀圖。
    • (4)高頻詞統計功能:用戶從鍵盤輸入高頻詞輸出的個數k,運行程序統計功能,可按文本中詞頻數降序顯示前k個單詞的詞頻及單詞。
    • (5)統計該文本全部單詞數量及詞頻數,並能將單詞及詞頻數按字典順序輸出到文件result.txt。

  • 2.功能設計
    • 基本功能:本軟件主要實現的功能是對於可以容納10萬單詞的《Harrypotter》進行單詞的詞頻統計,柱狀圖的繪製,查詢單詞的前k位並將頻數輸出,把全部的單詞總數輸出的功能。要求該軟件具備健壯性,易操做性。
    • 擴展功能:本軟件還進行了功能的擴展,擴展的功能主要包括,能夠統計每一行的《Harrypotter》這篇文章中的單詞的個數,而且還能夠按照字典的順序輸出。



  • 設計實現
    • 此軟件主要包括一個Word的屬性類,一個Method的實現方法類,一個主函數類。Word類主要實現的是對於Word中一些屬性的調用。Method類中主要實現的是軟件的基本功能和擴展功能。而Main類中主要實現的是對於Method類中的方法的調用和實施。Method類中須要調用Word類中地單詞的屬性,而主方法Main中主要是創建Method類的對象,利用Method類的對象調用Method類中的方法,主要藉助的是switch--case語句來根據用戶的需求進行不一樣的功能的實現。

  • 測試運行
    1.軟件實現部分截圖
  • 指定單詞詞頻統計功能
    git

  • )高頻詞統計功能
    github

  • 全部單詞數量及詞頻數統計功能
    編程

  • 擴展功能:統計每一行單詞的數量,並按序輸出
    編程語言


  • 較爲滿意的代碼
//   循環10次
     for(int i=1;i<=k;i++)                   
     {
         xin=new Word("",0);
         lian=word.next;
         //找到單詞鏈中個數最多的
         while(lian!=null)
         {
             if(lian.num>xin.num)
             {
                 xin=lian;
             }
             lian=lian.next;
         }
         //輸出單詞鏈中個數最多的
         System.out.println("第"+i+"個 :"+xin.value+"個數:"+xin.num);
         lian=word;
         //刪除單詞鏈中單詞個數最多的
         while(lian.next!=null)
         {
             if(lian.next.value.equalsIgnoreCase(xin.value))
             {
                 lian.next=lian.next.next;
                 break;
             }
             lian=lian.next;
         }

  • 總結
    模塊化是指把程序劃分紅若干個模塊, 每一個模塊完成一個子功能, 把這些模塊集總起來組成一個總體,能夠完成指定的功能,知足問題的功能.

    模塊是指一個擁有明肯定義的輸入、輸出和特性的程序實體。
    • 將系統劃分紅模塊
    • 決定每一個模塊的功能
    • 決定模塊的調用關係
    • 決定模塊的界面, 即模塊間傳遞的數據

  • 展現PSP
PSP2.1 任務內容 計劃共完成須要的時間(min) 實際完成須要的時間(min)
Planning 計劃 30 60
· Esitimate 估計這個任務須要多少時間,並規劃大體工做步驟 200 400
· Development 開發 200 300
· Analysis 需求分析(包括學習新技術) 60 50
· Design Spec 生成設計文檔 20 15
· Design Review 設計複審(和同事審覈設計文檔) 15 15
· Coing Standard 代碼規範(爲目前開發制定合適的規範) 20 20
· Design 具體設計 20 30
· Coding 具體編碼 200 300
· Code Review 代碼複審 7 9
· Test 測試(自我測試,修改代碼,提交修改) 17 25
· Reporting 報告 10 15
· Test Report 測試報告 15 22
· Size Measurement 計算工做量 2 1
· Postmortem&Process Improvement Plan 過後總結,並提出過程改進計劃 3 2

  • 耗時總結
    • 最主要的耗時我以爲是在對軟件的功能需求方面,以及軟件的代碼更改和書寫方面。
    • 在功能的需求方面和實踐相差有點大,由於若是沒有規劃好項目的實施過程以及代碼的需求分析階段,頗有可能會致使後來的代碼重改。

github地址[https://github.com/LAUGHwangxiao/Personal-Program]模塊化

相關文章
相關標籤/搜索