第四做業-結對編程

[Welcome to My Blog]

第四次做業結對編程

Github項目地址 Github地址
結對夥伴 黃天兵201831061126的博客

一.PSP表格

二. 計算模塊接口的設計與實現過程

①代碼結構:
程序由一個 wordsCount 類, main() 主函數和 Getop(string cmd) 獲取命令參數函數構成。其中 wordCount 類成員中含 Char_num() 、 Lines_num() 等函數。思惟導圖以下:

②.關鍵函數實現:
int wordsCount::Char_num() :獲取ascii數html

獲取輸入文件路徑後,經過對文件內容逐個讀取,並只對ASCII碼進行計數。git

int wordsCount::Lines_num():獲取文件行數github

使用 getline() 函數獲取文件的每一行對行數進行計數。編程

void wordsCount::GetWords()、int wordsCount::Words_num() 、void wordsCount::Sort_words_rate()ide

因爲對單詞時有額外的要求:單詞計數,按照出現頻率和字典排序,以小寫輸出。因此使用多個函數實現:
(1) void wordsCount::GetWords() :逐個讀取文件字符,將全部符合要求的「單詞」提取出來,轉爲小寫形式後(使用 algorithm 頭文件中的 transform() 函數 ),存放在一個 vector< string > 容器中。
(2) void wordsCount::Sort_words_rate():對於統計詞頻首先想到的是用 pair<string , int> 記錄詞頻,排序則使用algorithm頭文件下的 sort() 函數。因而乎爲了方便統計詞頻,先排序,使相同的單詞在一起,再統計詞頻,統計好的詞頻存放在 vector<pair<string , int>> 中,再對其詞頻進行排序。(sort()函數中第三個參數提供了自定義排序標準)
__main(int argc, char *argv[])__ :主函數函數

main()函數主要接受用戶從操做系統傳入的參數,參數經過Getop()函數解析後執行不一樣的輸出。性能

③.編程思想體現
Interface Design:單元測試

對於接口的設計,咱們將wordCount這個類中全部屬性和成員函數的定義與實現分開測試

Information Hiding:ui

信息隱藏,簡單地說就是是否可見是否與可用。
不可見不可用:
咱們將類的屬性和成員定義放在wordCount.h的頭文件中,實現部分放在wordCount.cpp中,使類中內容對外部而全然隱藏。
可見不可用:
經過使用private、protect對類中成員和屬性進行修飾。包含頭文件後,即便能看到這些屬性,卻沒法使用它們
④效果展現



三.代碼複審

①編碼規範:
咱們採用的是Google的C++編碼規範
中文版
Google C++編碼規範
②複審過程:
Vs2017具有強大的努力的複審功能,能夠進行智能縮進,大大提升了規範性。vs2017是真的功能強大。

四. 性能分析

性能分析參考文獻Part6

根據參考文獻咱們對代碼稍微作改動,使它陷入循環,VS2017自帶的「性能探查器"真的好用


性能分析報告:

五. 單元測試

單元測試參考文獻Part3
①出現問題:在按照上面文獻的步驟流程作完之後,發現測試仍是沒有經過

②解決問題:測試代碼也確定沒有問題。通過不斷的摸索,發現原來是測試用的文件應該放在這裏頭


③總結:測試中的待打開的文件不能與代碼放在一塊兒,須要放在與後綴爲「.exe」相同的路徑下。
④測試結果:因爲水平有限,只測試了幾個函數,而且通過長時間摸索仍是解決了問題。經過了測試。
測試的幾個函數:Char_num(),int Lines_num(),int Words_num();終於仍是經過了測試

六.異常處理(參考隊友)

1.拋出異常:
·文件打開失敗:

·用戶未輸入參數、參數個數錯誤、參數不包含「-i」和「-o」:


·檢查「-n」和「-m」後面的參數是否爲數字:
在程序中使用了stoi()函數實現字符串轉整型,若轉換失敗則會自動拋出異常。

2.捕獲異常:
使用try-catch對異常進行捕獲

3.測試結果:
①錯誤輸入

②正確輸入

七.結對的過程

①感覺:
我和我室友黃天兵同窗進行結對編程,兩我的相互討論的模式其實之前也有用到,不過此次的更加全面完善,咱們確實感受到了1+1>2的效果。隊友的代碼量大大高於我,能力也強。我更多的時間花在了代碼的單元測試上。可是經過此次結對編程確實也感受到了本身和大佬的差距,也複習了之前沒搞清楚的有關字符的知識點。夥伴的堅持精神也深深感染了我。仍是那句老話「革命還未成功,同志還需努力。最後感謝」
②照片:

相關文章
相關標籤/搜索