github位址
wordcount
psp**
psp2.1
personal software process stages
預估耗時(分鐘)
實際耗時(分鐘)
planning
計畫· estimate
· 估計這個任務需要多少時間55
development
開發· analysis
· 需求分析 (包括學習新技術)
3030
· design spec
· 生成設計文件300
· design review
· 設計複審
2020
· coding standard
· **規範 (為目前的開發制定合適的規範)
2020
· design
· 具體設計
3030
· coding
· 具體編碼
120240
· code review
· **複審
2060
· test
· 測試(自我測試,修改**,提交修改)
60120
reporting
報告· test repor
· 測試報告
3030
· size measurement
· 計算工作量
1010
· postmortem & process improvement plan
· 事後總結, 並提出過程改進計畫
3030
合計345
595**的實現
各函式的關係圖如下:
main()函式
主要負責文字檔案的讀入,呼叫其他函式及引數傳遞,並輸出函式返回的結果。
c_char()函式
接受main()函式傳入的文字字串,統計文字中的有效字元數並返回。
c_line()函式
接受main()函式傳入的檔案路徑,開啟檔案,以按行讀入的方式統計文字的行數並返回。
c_word()函式
本程式的最關鍵的部分,用了最直接的遍歷判斷法。
從首字元開始遍歷,利用char_judge()函式判斷當前字元是否是字母:
若不是字母,則判斷下一字元;
若是字母,則進入word_judge()函式判斷當前字母後的三位字元是否是字母:
若其後三位均是字母,則符合「單詞」條件,單詞數加1,進入單詞合成迴圈將其後的字元合併成乙個單詞知道遇到非法字元為止,並將單詞加入字串陣列word[i]儲存;
若有一位不是字母,則不符合「單詞」條件,返回檢測過的單詞數num,上層迴圈引數跳num位,再次執行迴圈。
遍歷結束後跳出迴圈,得到合法單詞數並返回主函式,同時將合法單詞合成後存入字串陣列word[i],方便單詞頻率統計。
word_print()函式
利用word[i]陣列中已儲存的單詞,遍歷後,去掉重複單詞,並統計出每個單詞的頻率,以及單詞的acill碼值和,作為排序條件;
用了最簡單但並不快捷的氣泡排序,以單詞頻率作為首要排序條件,以單詞的acill碼值和作為次要排序條件,對單詞進行排序;
排序後,輸出排名前10的單詞,以及其頻率;
**效能
一開始使用c++輸入輸出流函式來輸出,單次測試總執行時間達到了20s+;
於是,改用printf函式來輸出,單次測試結果如下:
單次執行後時間變成了12s+,有了不少的提公升;
其餘可改進的地方還有很多,比如:更好的資料結構、更好的排序演算法等等,但因為時間原因來不及改進,後面會繼續改進。
體會和感想
之前**被自己荒廢了很久,這次也算是通過這次作業撿起來一些,當然過程就顯得比較曲折。
編碼問題是因為長期荒廢,遺忘和手生導致了編碼過程磕磕絆絆;
github的使用出現了不少問題,到最後莫名出現了commit失敗無法提交的問題,到現在也沒有解決,所以只能是提交初版比較粗糙的**。
但總體來講,還是有很大的收穫,撿起了荒廢了很久的**,讓我有乙個新的開始;看過了別人的部落格和**,讓我認識到自己的不足;一次次程式的debug、github的崩潰、軟體功能的學習,讓我受益匪淺;還有,就是現在最後時刻的部落格編輯,鍛鍊了我良好的心態~
軟工實踐作業(十二)
因為在團隊中擔任組長,所以在協作 溝通中有所提高,但是在團隊合作和管理中有些方面做得還不夠好。比如在alpha初期對文件的要求不足,導致後期前後端對接困難,以及總體上時間安排還不夠合理。分別花了多少時間 作業時間 分 準備篇60 個人專案實戰 691原型設計 1986 wordcount高階需求 1...
軟工實踐作業(七)
作業鏈結 團隊部落格彙總 團隊需求報告 pdf 需求報告ppt pdf 報告 ppt 粗略的計畫 這裡的分工其實主要是文件各部分的詳細的分工,整個作業的分工在工作量比例的 中。學號姓名 此次作業任務 貢獻比例 031602240 許郁楊1.整理 安排任務 2.報告引言 使用者介面 硬體介面部分 2....
軟工實踐 二
作業鏈結 git傳送門 初步分為輸入 生成數獨 輸出三個類。改進前 預估耗時 分鐘 實際耗時 分鐘 planning 計畫60 60 estimate 估計這個任務需要多少時間 6060 development 開發960 1100 analysis 需求分析 包括學習新技術 510580 desi...