BUAAOO第一單元總結

2022-07-13 10:57:12 字數 1053 閱讀 4864

​ 第一單元的作業是對多項式求導,三次作業分別完成了簡單冪函式表示式求導、帶簡單巢狀的表示式求導和三角函式求導、豐富巢狀的表示式求導及格式檢查。本人在第一次作業中使用的是正規表示式匹配和字串預處理相結合的方法,可以達到需要的效果,但是越過了格式約束並降低了可擴充套件性,導致第二次作業不得不重構。第二次作業中我利用了遞迴下降的分析方法,嚴格按照格式要求分析字串,使得第三次作業改動非常小,因此在此我僅以第三次作業進行分析。

**量度量

複雜度分析

類複雜度

方法複雜度

由於整體方法過多,這裡僅提出幾個複雜度較高的方法

parser.expressionparser:由於表示式巢狀,遞迴呼叫。

polyfactory類中的各個getmono方法:同上,由於巢狀導致多次遞迴呼叫。

類圖

在閱讀別人**的過程中,我不僅發現了優秀的化簡思路,也讓我更精準的給出測試樣例

三次作業中有限的重構出現在第二次作業,我從正規表示式改換成了遞迴下降分析,這種分析方式雖然寫起來冗長,但是思維含量並不大,debug難度也不大。但是仍有乙個尚待優化的地方是我的儲存結構過於簡單,極大的影響了效能,但是由於時間原因我並沒有進行重構,這也是我失分的原因。

在本單元作業中,我學會了遞迴下降分析方法、容器選擇的差異以及優化方向,這對我以後的作業和專案開發都有益處。只是因為完成作業的時間較緊張,並未把作業優化到最高的效能,這也是第一單元的一點遺憾。

BUAA OO 第一單元總結

1 類關係圖 2 作業設計思路 3 類與方法內部分析 poly類 方法 4 優缺點分析 缺點 1 類關係圖 2 作業設計思路 分割表示式思路 優化表示式思路 a sin x 2 b cos x 2 a b sin x 2 b b a cos x 2 a a b cos x 2 a sin x 2 b...

BUAAOO 第一單元

1.1 類圖 1.2 類的設計 1.3 類的度量分析 經過分析可以看到,combine和main的複雜度較高,因為我在main裡一共進行了好幾次獨立操作,比如在項裡遍歷因子求導,但實際上這個操作應該放在poly裡更為合適。combine裡我先採用了treemap進行合併同類項,最後又把treemap...

2021 BUAA OO第一單元總結

oo第一單元總結 第一次作業 一 題目要求 簡單多項式求導,僅支援常數與冪函式的乘積作為項,保證輸入無格式錯誤。二 作業實現及分析 由於第一次作業要求實現的功能並不複雜,且我當時對於物件導向的理解並不夠深入,所以我當時只是根據自己的想法構建了4個類來解決這個問題 類圖如下 關鍵類分析如下 strin...