PSP2.1 | Personal Software Process stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 45 | 60 |
Estimate | 估計這個任務須要多少時間 | 45 | 60 |
Developments | 開發 | 900 | 1150 |
Analysis | 需求分析(包括學習新技術) | 200 | 250 |
Design Review | 設計複審 | 30 | 45 |
Coding Standard | 代碼規範(爲目前的開發制定或選擇合適的規範) | 20 | 30 |
Design | 具體設計 | 200 | 250 |
Coding | 具體編碼 | 550 | 500 |
Code Review | 代碼審查 | 100 | 80 |
Test | 測試(自我測試、修改代碼、提交修改) | 200 | 260 |
Reporting | 報告 | 100 | 80 |
Test Report | 測試報告 | 100 | 80 |
Size Mesurement | 計算工做量 | 30 | 30 |
Postmortem&Process Improvement Plan | 時候總結、並提出改進計劃 | 20 | 40 |
合計 | 2395 | 2755 |
實現這個函數我用到了兩個類,一個地址簿類,另外一個爲地址類,地址類包含在地址簿類中。其中地址簿類有三個成員函數分別用於解析,輸出及設置難度。算法的關鍵在於根據關鍵字及已知的地址與給出的地址進行匹配。我認爲代碼的獨到之處在於利用省市縣地名長度均大於2的特性僅對前2個漢字進行匹配,能節省較多運行時間。git
能夠看出分析函數佔了最多運行時間;
github
代碼僅能測試輸出1和2難度下的地址
算法
很容易發現地名錶中有許多異常地名,這些地名一般要單獨考慮。函數