psp2.1
personal software process stages
預估耗時(分鐘)
實際耗時(分鐘)
planning
計畫60
60estimate
估計這個任務需要多少時間
2020
development
開發300
250analysis
需求分析 (包括學習新技術)
180120
design spec
生成設計文件
9060
design review
設計複審
9030
coding standard
**規範 (為目前的開發制定合適的規範)
3010
design
具體設計
60120
coding
具體編碼
300600
code review
**複審
3010
test
測試(自我測試,修改**,提交修改)
6020
reporting standard
報告60
40test repor
測試報告
6040
size measurement
計算工作量
2010
postmortem & process improvement plan
事後總結, 並提出過程改進計畫
3020
合計1330
1410
**有兩個類,乙個用來處理解析字串的類class solution,乙個用來儲存姓名、手機、位址等資訊的類class singleitem。
執行過程為主函式每次讀入一條字串(即每條資料),將字串傳給solution類,這個類中有多種函式,它們用來:解析難度等級、姓名、手機號、還有七級位址。
solution類將分割出來的資訊存到用來singleitem類中。
最後singleitem類呼叫函式來輸出。
其中最為關鍵的即為7個七級位址的解析函式,這7個函式為順序執行,每一級獲取當前的位址,然後將它擷取,在送給下一級處理,因為是順序處理結果,流程簡單清晰,所以不必畫出流程圖。
演算法的關鍵在於每一級獲取當前最大的位址,然後把它刪掉在給下一級處理。
演算法的獨到之處:因為可能缺失,比如說少了區,但後面有個位址帶「區」字,為了防止誤判,如果我得到的這個「區」字的位置靠後,即認為它並不是真正的區,將它丟掉。
(vs好像出了點問題,上面這張類檢視每個東西都有兩個)
開始儲存省市的資料結構用的是c++ stl中的map,它是用紅黑樹實現的,所以插入刪除操作要logn的時間,所以可以改用unordered_map,它是乙個雜湊表,雖然常數比較大,但效果還是比map的效果要好。
可以看到消耗最大的兩個函式為solve()函式和print()函式。
input:
1!洪嘹,廣東佛山市高明區更15198460545合鎮廣明高速公路界村林場.
1!婁傷囚,13592755594浙江省杭州市所前鎮襖莊陳村工業園區5號樓.
2!樂願,山東省濰坊安丘15223742753市興安街道南關頭巷南關頭幼兒園.
2!李四,福建省福州13756899511市鼓樓區鼓西街道湖濱路110號湖濱大廈一層.
1!張三,福建福州閩13599622362侯縣上街鎮福州大學10#111.
2!王五,福建省福州市鼓樓18960221533區五一北路123號福州鼓樓醫院.
3!小美,北京市東15822153326城區交道口東大街1號北京市東城區人民法院.
1!小陳,廣東省東莞市鳳崗13965231525鎮鳳平路13號.
output:
[,,,,,,,]
如果轉碼失敗,則輸出bad conversion,並退出。
初始讀入已有省份資訊時,如果檔案開啟失敗則輸出"can not open addressdata file",並退出。
第一次個人程式設計作業
psp2.1 personal software process stages 預估耗時 分鐘 實際耗時 分鐘 planning 計畫120 estimate 估計這個任務需要多少時間 120development 開發360 analysis 需求分析 包括學習新技術 60 design spec...
第一次個人程式設計作業
github倉庫位址 psp2.1 personal softwareprocess stages 預估耗時 分鐘 實際耗時 分鐘 planning 計畫50 60estimate 估計這個任務需要多少時間 3020 development 開發960 1080 analysis 需求分析 包括學習...
第一次個人程式設計作業
倉庫 psp2.1 personal software process stages 預估耗時 分鐘 實際耗時 分鐘 planning 計畫 estimate 估計這個任務需要多少時間100 development 開發 8802000 analysis 需求分析 包括學習新技術 240420 de...