類圖:
設計了三個類,分別爲對輸入進行判斷和處理的Qiudao類,負責對錶達式進行運算處理的MATH_WH類和將MATH_WH處理結果進行求導運算的QD類。
度量分析:
Metrics圖中顯示qd方法的圈複雜度過大以及嵌套深度過深。qd方法是負責對處理完的表達式進行求導運算的方法,其中有過多的if-else語句和對整個表達式的循環遍歷,因此使得複雜度過大,嵌套過深。正則表達式
強測中出現了8個bug。主要是第一次設計時正則表達式存在問題,致使了在對符號進行處理的階段常出現將表達式化簡成錯誤的形式,致使後面的求導過程也出現問題。時在數據類型的考慮上也有所欠缺,使用double和int沒有考慮到係數和指數爲數過長時的狀況。app
類圖:
設計了四個類,分別是對輸入用正則表達式進行處理的Qiudao類,從表達式中拆分出項的Chaixiang類,對項進一步拆分爲因子的Xiang類,對因子進行整理和求導、同時輸出計算結果的Qd類。
度量分析:
設計
強測中出現了7個bug。正則表達式的設計依然有一些問題,在後面將項拆分紅因子時對符號的處理出現了問題,所以求導結果中也出現了符號的問題。blog
兩次做業均採用建立型模式(Creational Pattern)io
應該儘快的造成設計思路,並嘗試實現;同時也要考慮多種狀況,防止出現本身意想不到的bug,難以修復。循環