https://github.com/ITBuilting/mytestgithtml
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 60 | 30 |
· Estimate | · 估計這個任務須要多少時間 | 2400 | 2000 |
Development | 開發 | 800 | 600 |
· Analysis | · 需求分析 (包括學習新技術) | 180 | 150 |
· Design Spec | · 生成設計文檔 | 60 | 60 |
· Design Review | · 設計複審 (和同事審覈設計文檔) | 50 | 60 |
· Coding Standard | · 代碼規範 (爲目前的開發制定合適的規範) | 30 | 30 |
· Design | · 具體設計 | 120 | 100 |
· Coding | · 具體編碼 | 540 | 300 |
· Code Review | · 代碼複審 | 120 | 120 |
· Test | · 測試(自我測試,修改代碼,提交修改) | 240 | 200 |
Reporting | 報告 | 30 | 40 |
· Test Report | · 測試報告 | 30 | 60 |
· Size Measurement | · 計算工做量 | 30 | 40 |
· Postmortem & Process Improvement Plan | · 過後總結, 並提出過程改進計 | 30 | 60 |
合計 | 2320 | 1850 |
實現一個命令行程序,輸入文件名以命令行參數傳入。
則會統計input.txt中的如下幾個指標
1.統計文件的字符數:
2.統計文件的單詞總數,單詞:至少以4個英文字母開頭,跟上字母數字符號,單詞以分隔符分割,不區分大小寫。
3.統計文件的有效行數:任何包含非空白字符的行,都須要統計。
4.統計文件中各單詞的出現次數,最終只輸出頻率最高的10個。頻率相同的單詞,優先輸出字典序靠前的單詞
5.按照字典序輸出到文件txt:
輸出的格式爲
characters: number
words: number
lines: number
圖示:
使用語言:由於學習c/c++較多,選擇使用C++語言編寫程序
使用工具:vs2017
制定編碼規範:
1.代碼縮進:通用vs2017的代碼縮進格式
2.註釋:使用C/C++標準的代碼或者文檔註釋,且每條代碼後加上註釋說明
3.命名規範:採用」駝峯式「命名規則,本身命名內部使用的變量+my
4.判斷語句的條件不能複雜超過三個
5.bool類型判斷使用is+形式定義git
從需求分析得出須要使用文件讀取,通過反覆考證,使用最簡單的開發方式——使用庫函數。
圖示:
github
#include "pch.h" #include <fstream> #include <map> #include <string> using namespace std; bool isdigit(char ch) { return (ch >= ' '&&ch <= '9'); } int main(void) { map<string, int> words; //轉int類型 ifstream fin("input.txt");//要統計的文件 ofstream fout("output.txt");//結果存放在output中 //------------ string str; int wordCount = 0; string d; int charCount = 0; //------------ if (!fin || !fout) { exit(1); } while (fin.good()) { fin >> str; words[str]++; } fin.close(); fin.open("input.txt"); while (getline(fin, d)) //以行爲單位讀入文件 charCount += d.size(); //累計字符數 fin.close(); for (map<string, int>::iterator mit = words.begin(); mit != words.end(); ++mit) { if (!isdigit((mit->first)[0])) { fout << "<" << mit->first << ">" << ": " << mit->second << endl; ++wordCount; } } fout << "wordTotal: " << wordCount << endl; // 文件輸出單詞個數 fout << "charTotal: " << charCount << endl; //文件輸出字符個數 fout.close(); return 0; }
運行截圖1:
運行截圖2:
編程
運行截圖3:
函數
測試截圖:
迴歸測試截圖:
工具
經過與夥伴的屢次交流改進,對代碼進行了複審。對讀入字符代碼實現部分進行了改進:統一使用系統庫的有關文件的函數,對代碼量達到了控制,簡便明瞭。
在改進後的代碼性能方面獲得了大大提高,減小使用指針帶來的代碼混亂和指向不明難以審查的困境,使用庫函數,使性能有所提升,可是因爲系統的差別不大,沒法顯示出較大差距的性能提升。
性能
圖示:
如下是本人提交github的心路歷程,因爲第二次做業完成狀況太差,致使不會使用git提交代碼,本次與夥伴進行了深入的學習,提交上了,可是本次命名仍是未完成好。
學習
圖示:
測試