課後作業2~
1.Fork到自己遠端倉庫的碼雲專案地址https://gitee.com/wdongx/personal_project41656.git
2.PSP表格。表格中的任務估計花費時間以及實際花費時間。
PSP2.1 |
任務內容 |
計劃完成需要的時間(min) |
實際完成需要的時間(min) |
Planning |
計劃 |
30 |
50 |
Estimate |
估計這個任務需要多少時間,並規劃大致工作步驟 |
30 |
50 |
Development |
開發 |
300 |
410 |
Analysis |
需求分析 (包括學習新技術) |
60 |
60 |
Design Spec |
生成設計文件 |
30 |
30 |
Design Review |
設計複審 (和同事稽核設計文件) |
10 |
10 |
Coding Standard |
程式碼規範 (為目前的開發制定合適的規範) |
20 |
20 |
Design |
具體設計 |
30 |
50 |
Coding |
具體編碼 |
60 |
80 |
Code Review |
程式碼複審 |
60 |
120 |
est |
測試(自我測試,修改程式碼,提交修改) |
30 |
40 |
Reporting |
報告 |
120 |
180 |
Test Report |
測試報告 |
60 |
50 |
Size Measurement |
計算工作量 |
30 |
100 |
Postmortem & Process Improvement Plan
|
事後總結 ,並提出過程改進計劃 |
30 |
30 |
Summary |
合計 |
450 |
640 |
3.解題思路描述。即剛開始拿到題目後,如何思考,如何找資料的過程。
3.1:仔細審題,看清題目要求。
3.2:確定語言比如(java,python,c#),然後我選擇java語言進行編寫,編輯器為myeclipse2014.
3.3:Fork 碼雲 專案 到自己的倉庫,在碼雲倉庫中新建一個學號為名的資料夾,然後clone到本地。
3.4:在Main.java中進行正式編寫專案。
3.5:分別建立了6個類,
3.5.1其中主類中呼叫CalTest01()方法,實現向控制檯進行錄入功能,並有相應的提示.
3.5.2CalTest01()方法呼叫CalcAS()方法。把使用者錄入的算式以+/-進行切分然後存到arr陣列中
3.5.3對arr進行遍歷,並對算式進行優先順序的判斷,若含有*或/,陣列進入CalcMD()方法。
3.5.4在CalcMD()方法中,遍歷已處理過的字串str,若條件為*進入CalTest02()類中,從而進入到 CalculatorMul()類中,返回x1*y1
3.5.5進行除法運算同上。
3.6:在百度上查詢關於計算器方面的對字串進行切分的方法,判斷是否包括字元如contains().等等。
4.程式對錶達式型別的支援程度。描述你的程式對不同型別表示式求值的支援程度
4.1能支援兩個運算元,一種運算子
4.2能支援兩個運算元的簡單四則運算(只有一個操作符)。
4.3能支援簡單混合四則運算(最多有3個操作符,沒有括號)。
5.設計實現過程。設計包括程式碼如何組織,比如會有幾個類,幾個函式,他們之間關係如何,關鍵函式是否需要畫出流程圖?單元測試是怎麼設計的?
本次程式碼一共含有6個類:
Main():主類,與檔名一致。
CalTest03():為計算器的父類,含有x1,x2的get,set方法。
CalculatorAdd():繼承CalTest03()類,返回x1+x2。
CalculatorSub():繼承CalTest03()類,返回x1-x2。
同上
CalculatorMul():繼承CalTest03()類,返回x1*x2。
同上
CalculatorDiv():繼承CalTest03()類,返回x1/x2。
同上
本次程式碼一共含有5個函式:
main():對使用者進行提示說明,並呼叫CalTest01()。
CalTest02():傳值x1,s,y1。若條件為+/-/*//,分別到不同的CalculatorAdd(),CalculatorSub(), CalculatorMul(),CalculatorDiv()類中。
CalTest01():對控制檯進行錄入,並呼叫CalcAS()。
CalcMD():判斷優先順序,對乘或除進行切分。把*或/存到臨時變數temp中,temp=x1*//y1.
CalcAS():對+/-進行切分,然後對陣列arr進行遍歷,判斷str是否含有*//若有呼叫CalcMD(),若為空,返回值為 0.,對str進行遍歷,為+,臨時變數result= x1+y1,為-,臨時變數:result=x1-y1。
6.記錄在改程序序效能上所花費的時間,描述你改進的思路,並展示一張效能分析圖(由VS 2017的效能分析工具自動生成),並展示你程式中消耗最大的函式。
1.程式剛開始的框架很好實現。
2.第一個計算器版本是以陣列索引進行切分,這就只能是兩個數進行相加,有很大的侷限性。
3.有很大的弊端,這次通過+或-進行切分。成功解決此問題。
4.解決此問題,花費了較長時間,進行了大量的更改程式碼。
5.程式中消耗最大的函式應該是CalcAS(),需要進行切分判斷,分別對arr陣列進行遍歷,和str進行遍歷。並呼叫函式方法。
7.結合在構建之法中學習到的相關內容與個人專案的實踐經歷,撰寫解決專案的心路歷程與收穫。
7.1.剛開始的分析太簡單,有很多的不完善之處,然後直接進行程式碼的編寫,導致後來花了更長的時間去改正。
7.2.合理全面的分析。