https://github.com/iwannastay/WJJgotoWChtml
|
分函數實現功能,對文件進行數次掃描得出結果,根據功能的選擇合理劃分掃描次數,以提升程序運行效率。git
但因爲該程序的功能比較駁雜,軟件的總體架構與運行效率只能取中間值。github
基礎功能需遍歷一次數組,在此不作贅述。數組
擴展功能單獨作成函數,利用庫函數高效處理。架構
將單文件處理封裝成一個函數,便於多文件遞歸處理。函數
高級功能使用輔助界面程序配置參數,二者相互調用。學習
查閱資料:測試
https://wenku.baidu.com/view/7cb4e4096fdb6f1aff00bed5b9f3f90f76c64df0.html編碼
http://www.javashuo.com/article/p-zeszopsl-dk.html設計
解析參數
writefunctions
針對錯誤設計函數
cout<<ErrorType<<endl;
針對文件讀寫設計函數
LoadFile,Outputresult
針對複雜功能設計函數
ScanFile GetStopWords JudgeWords LineAnalysis
多文件遞歸調用
SingleFile MultiFiles
/** * 讀取輸入參數並記錄預期功能 */ bool WriteFunction(fstream& _stream, int n, char** argv) /** * 導入審查文件 */ bool LoadFile(fstream& _File, char* _file) /** * 對文件作基礎掃描 */ void ScanFile(char* _File) /** * 獲取停用詞表 */ bool GetStopWords() /** * 提取停用詞,從總次數中減去。 */ void JudgeWords() /** * 分析代碼行/空行/註釋行數 */ void LineAnalysis(fstream& _stream)s) /** *對基礎功能作簡單的運算處理獲得正確結果 */ void Calculate() /** * 輔助writefunctions分析參數含義 */ bool GetSample() /** *根據功能需求將結果輸出到文件中 */ void OutputResult(fstream& _stream) /** * 將上述功能封裝對單一文件處理的功能函數,並應運用到多文件處理的總函數中 */ bool SingleFile(char* _File, fstream& in_stream, fstream& out_stream)
void MultiFiles(const char * _dir, const char * file, fstream& in_stream, fstream& out_stream)
1.逐一增長參數,測試工能完整性,保證測試路徑全覆蓋。
2.選擇文件的極端輸入狀況,保證程序正確性。
3.反覆使用圖形界面程序,確保任何操做都不會出現bug。
用例略,讀者可按照上述思路本身編寫。