1. 程式人生 > >結對編程 - 詞頻統計

結對編程 - 詞頻統計

題目 換行 字符函數 war code nal arc 基本功 小時

  • github鏈接請戳這裏_(:з」∠)_

【PSP】

PSP2.1 Personal Software Process Stages 預估耗時(分鐘) 實際耗時(分鐘)
Planning 計劃 10 8
· Estimate · 估計這個任務需要多少時間 240 258
Development 開發 200 215
· Analysis · 需求分析 (包括學習新技術) 15 10
· Design Spec · 生成設計文檔 10 15
· Design Review · 設計復審 (和同事審核設計文檔) 10 12
· Coding Standard · 代碼規範 (為目前的開發制定合適的規範) 10 8
· Design · 具體設計 20 22
· Coding · 具體編碼 100 108
· Code Review · 代碼復審 15 20
· Test · 測試(自我測試,修改代碼,提交修改) 20 10
Reporting 報告 30 35
· Test Report · 測試報告 20 22
· Size Measurement · 計算工作量 5 7
· Postmortem & Process Improvement Plan · 事後總結, 並提出過程改進計劃 5 6
合計 240 258

【解題與程序叠代】

  • 看到題目時,其實覺得並不麻煩,算是一個不難的題目,但是因為要求的點還挺多的,覺得要全部完成並且無bug有點困難(畢竟是曾經改bug改了4小時的人_(:з」∠)_),和隊友商量後得出的結論就是:以完成基本功能為主要目標。所以我們就從統計字符數函數開始,慢慢叠代功能上去。參考資料主要來源於百度以及github上大佬的開源項目。

【設計實現過程】

  • 程序設計(思想/流程圖)
    • 思想
      • 首先根據用戶的輸入讀取整個文件,再分別調用統計字符數函數、統計有效行數函數、統計單詞數函數、統計單詞頻率函數,分別輸出統計的結果。
    • 流程圖
      • 技術分享圖片
  • 類圖
    • 技術分享圖片

【關鍵代碼】

  • 主函數 main():用於讀取文本與調用統計函數。

  • 技術分享圖片

  • 統計字符函數CharCount():運用指針移動判斷讀入的字符是否為Ascii碼,若是,則將計數變量++。

  • 技術分享圖片

  • 統計單詞函數WordCount():當出現連續4個字母,且後續為字母或者數字,則認定為單詞,計數變量++。

  • 技術分享圖片

  • 統計行數函數LineCount():當出現單一個換行符時,計數變量++。
    技術分享圖片

【性能展示】

  • 性能分析圖
  • 技術分享圖片
  • 技術分享圖片
  • 由圖可看出,用時最多的函數是統計字符函數WordCount(),主要耗時原因是用了雙重循環。
  • 運行結果圖
    技術分享圖片

【體會與收獲】

對結對編程的看法

  • 優點:結對編程的優點莫過於多一個人多一份力量。當你陷入思想僵局時,會有人提醒你,並且從相關利益者的角度出發,給予你合適的指導與幫助,這將有效的提高編程效率與準確度。
  • 缺點:如果是兩個話癆,就容易聊起來,然後就起到了反效果?(^?^*)

對隊友的評價

  • 優點1:認真負責,面對這電腦的多次崩潰還能堅持_(:з」∠)_
  • 優點2:友好易溝通,初次見面的合作交流還是蠻愉快的。
  • 缺點1:沒有喝水的好習慣,一個下午居然都沒喝水_(:з」∠)_(強行湊數

結對編程 - 詞頻統計