OO第一單元總結

2022-09-19 13:54:13 字數 1724 閱讀 5981

oo第一單元作業總結

(一) 程式結構分析

第一次作業

類圖

複雜度分析

第二次作業

類圖

複雜度分析

第三次作業

類圖

複雜度分析

(二) bug分析

第一次作業

出現乙個bug,在合併同類項時需要判斷x係數是否相等,我在這裡用了「==」,而biginteger是引用型別,導致強測只拿到66分。

第二次作業

出現兩個bug,第乙個是判斷wrong format的條件「冪函式指數不能超過50」,我在程式中弄成了合併以後的冪函式指數不能超過50。第二個bug是輸出時乘號『*』的輸出情況未考慮清除,原因在於項中不同型別的因子連線關係沒有弄清楚。

第三次作業

強測和互測均未發現bug。

(三) 發現別人bug所用的策略

第一次作業,未發現別人的bug。

第二次作業,未發現別人的bug。

第三次作業發現6個bug,自己構造了一些比較完備和刁鑽的測試集,手動測試,發現出現bug。

(四) 應用物件建立模式

前兩次作業可以說是比較自然的,不需要特別多的思考關於構架上的事情,因此套公式可能是最好的解決辦法,每種項都有對應的求導公式,建立物件的過程也比較自然。第三次作業由於加了巢狀,完全套公式的辦法行不通了,類中巢狀類是乙個解決辦法。

(五)心得與體會

pre真的很有用,如果沒有pre可能這幾次作業完全無法開始,pre對於oo課程像是一把梯子。

過了弱測並不代表能過強測,自己進行較完備的測試是很重要的,我就在第二次作業中吃了虧。

討論區的大佬很多,他們分享了很多的解題思路和輔助方法,沒有他們我不可能比較順利的完成這三次作業。

學會自己在網上查詢資料很重要,很多的想法我都是在閱讀前人留下的資料下想出來的。

重構不一定是壞事,後面的兩次作業,每一次我都有重構,其實工作量並不大,而且由於之前的基礎,重構!=換一道題。如果第一次就安排上了後面的作業才會出現的架構,可能反而會使原本簡單的題目變得棘手,甚至可能丟失效能分甚至出現bug。

OO第一單元總結

由以上類圖,大體分析本次作業程式設計思路如下 2 根據資料度量分析程式結構 那麼根據以上引數含義,分析本次作業 發現,有三個方法的這三個複雜度較高,分別是ploynomial.getpoly readterm.getnum readterm.getterm 所以可以知道本次程式分別在讀入操作和獲得表...

OO第一單元總結

第一單元的作業為多項式求導,在迭代作業中學習了 物件特性 oo構造機制和層次化設計,在bug互測環節也學習到很多巧妙的設計。設計了三個類 term derivative和reportexit,分別處理項 求導和報錯退出,如今回頭看有很多設計不合理的地方,例如在term構造方法中直接解析表示式並設定成...

OO第一單元總結

三次作業,寫了三份架構完全不同的 確實體會到了架構的重要性。在構思程式解決當前問題的同時,還要考慮未來應對更多更複雜的需求,如何構建才能便於未來增添新的需求和模式。在這幾周的學習實踐中,我明白了通過介面和繼承關係,使得程式設計具有層次,能夠將不同但相似的類統一起來,使得主程式能夠對乙個統一的介面進行...