Github項(xiàng)目地址 | Github地址 |
---|---|
結(jié)對伙伴 | 黃天兵201831061126的博客 |
一.PSP表格 | |
== | |
①代碼結(jié)構(gòu):
程序由一個(gè) wordsCount 類, main() 主函數(shù)和 Getop(string cmd) 獲取命令參數(shù)函數(shù)構(gòu)成。其中 wordCount 類成員中含 Char_num() 、 Lines_num() 等函數(shù)。思維導(dǎo)圖如下:
②.關(guān)鍵函數(shù)實(shí)現(xiàn):
int wordsCount::Char_num() :獲取ascii數(shù)
獲取輸入文件路徑后,通過對文件內(nèi)容逐個(gè)讀取,并只對ASCII碼進(jìn)行計(jì)數(shù)。
int wordsCount::Lines_num():獲取文件行數(shù)
使用 getline() 函數(shù)獲取文件的每一行對行數(shù)進(jìn)行計(jì)數(shù)。
void wordsCount::GetWords()、int wordsCount::Words_num() 、void wordsCount::Sort_words_rate()
由于對單詞時(shí)有額外的要求:單詞計(jì)數(shù),按照出現(xiàn)頻率和字典排序,以小寫輸出。所以使用多個(gè)函數(shù)實(shí)現(xiàn):
(1) void wordsCount::GetWords() :
逐個(gè)讀取文件字符,將所有符合要求的“單詞”提取出來,轉(zhuǎn)為小寫形式后(使用 algorithm 頭文件中的 transform() 函數(shù) ),存放在一個(gè) vector< string >容器中。
(2) void wordsCount::Sort_words_rate():
對于統(tǒng)計(jì)詞頻首先想到的是用 pair
main(int argc, char *argv[]) :主函數(shù)
main()函數(shù)主要接受用戶從操作系統(tǒng)傳入的參數(shù),參數(shù)通過Getop()函數(shù)解析后執(zhí)行不同的輸出。
③.編程思想體現(xiàn)
Interface Design:
對于接口的設(shè)計(jì),我們將wordCount這個(gè)類中所有屬性和成員函數(shù)的定義與實(shí)現(xiàn)分開
Information Hiding:
信息隱藏,簡單地說就是是否可見是否與可用。
不可見不可用:
我們將類的屬性和成員定義放在wordCount.h的頭文件中,實(shí)現(xiàn)部分放在wordCount.cpp中,使類中內(nèi)容對外部而全然隱藏。
可見不可用:
通過使用private、protect對類中成員和屬性進(jìn)行修飾。包含頭文件后,即使能看到這些屬性,卻無法使用它們
④效果展示
①編碼規(guī)范:
我們采用的是Google的C++編碼規(guī)范
中文版
Google C++編碼規(guī)范
②復(fù)審過程:
Vs2017具備強(qiáng)大的努力的復(fù)審功能,可以進(jìn)行智能縮進(jìn),大大提高了規(guī)范性。vs2017是真的功能強(qiáng)大。
性能分析參考文獻(xiàn)Part6
根據(jù)參考文獻(xiàn)我們對代碼稍微做改動,使它陷入循環(huán),VS2017自帶的“性能探查器"真的好用
性能分析報(bào)告:
單元測試參考文獻(xiàn)Part3
①出現(xiàn)問題:在按照上面文獻(xiàn)的步驟流程做完以后,發(fā)現(xiàn)測試還是沒有通過
②解決問題:測試代碼也肯定沒有問題。經(jīng)過不斷的摸索,發(fā)現(xiàn)原來是測試用的文件應(yīng)該放在這里頭
③總結(jié):測試中的待打開的文件不能與代碼放在一起,需要放在與后綴為“.exe”相同的路徑下。
④測試結(jié)果:由于水平有限,只測試了幾個(gè)函數(shù),并且經(jīng)過長時(shí)間摸索還是解決了問題。通過了測試。
測試的幾個(gè)函數(shù):Char_num(),int Lines_num(),int Words_num();終于還是通過了測試
1.拋出異常:
·文件打開失?。?br />
·用戶未輸入?yún)?shù)、參數(shù)個(gè)數(shù)錯(cuò)誤、參數(shù)不包含“-i”和“-o”:
·檢查“-n”和“-m”后面的參數(shù)是否為數(shù)字:
在程序中使用了stoi()函數(shù)實(shí)現(xiàn)字符串轉(zhuǎn)整型,若轉(zhuǎn)換失敗則會自動拋出異常。
2.捕獲異常:
使用try-catch對異常進(jìn)行捕獲
3.測試結(jié)果:
①錯(cuò)誤輸入
②正確輸入
①感受:
我和我室友黃天兵同學(xué)進(jìn)行結(jié)對編程,兩個(gè)人相互討論的模式其實(shí)以前也有用到,不過這次的更加全面完善,我們確實(shí)感覺到了1+1>2的效果。隊(duì)友的代碼量大大高于我,能力也強(qiáng)。我更多的時(shí)間花在了代碼的單元測試上。但是通過這次結(jié)對編程確實(shí)也感覺到了自己和大佬的差距,也復(fù)習(xí)了以前沒搞清楚的有關(guān)字符的知識點(diǎn)?;锇榈膱?jiān)持精神也深深感染了我。還是那句老話“革命還未成功,同志還需努力。最后感謝”
②照片:
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧