OO-第一单元总结
經(jīng)過了前三次作業(yè)和兩次實驗的引導(dǎo),我的編程思路在逐步從面向過程轉(zhuǎn)向面向?qū)ο蟆R矊γ嫦驅(qū)ο笥辛顺醪降睦斫狻km然第一次實驗由于自己沒有及時完成導(dǎo)致沒有提交過有些遺憾,但是第二次實驗還是提交了幾次的(雖然由于時間原因并沒有做好本地測試)。在三次作業(yè)中,總是有一些本可避免的小問題。在以后的學(xué)習(xí)中應(yīng)該盡量避免犯這種錯誤。還有一些錯誤是由于自己改了后面的沒有再次測試之前的數(shù)據(jù)引起的,以后在提交之前要盡量自己多做測試。
·基于度量分析自己的程序結(jié)構(gòu)
第一次作業(yè)
在第一次作業(yè)中我的思路主要是使用在 + - 符號前添加空格,將多項式分解為單項式進行求導(dǎo)。(并沒有用到面向?qū)ο蟮乃枷?/p>
第二次作業(yè)
在第二次作業(yè)中,我的思路與第一次一樣,還是將多項式使用 +- 分解為單項式,并將單項式使用在 * 前添加空格的方法分解為因子,并且對因子進行求導(dǎo)。實際在單項式求導(dǎo)中使用的是數(shù)組,用來將各因子的冪次及系數(shù)存起來,最后相乘(由于沒有嵌套因子這樣做十分方便,且最終只會有4個因子,即常數(shù),sin(x),cos(x),x),但這種結(jié)構(gòu)在第三次作業(yè)中無法很好的復(fù)用。
第三次作業(yè)
在第三次作業(yè)中,我的思路還是將表達式先分解成單項式,再將單項式分解為因子,然后判斷此因子是什么類型,如果是簡單因子則直接求導(dǎo);如果是嵌套因子則傳入嵌套因子類中,在嵌套因子類中去掉一層,保留求導(dǎo)后結(jié)果并將剩余部分傳入表達式類,新形成新的表達式并求導(dǎo);如果是表達式因子則去掉一層括號,并傳入表達式類中。本次本意是要使用繼承關(guān)系的,但是由于使用不熟練,并且想不清楚哪些屬性,哪些方法需要繼承,最終放棄。
·分析自己程序的bug
在第三次作業(yè)的過程中,發(fā)現(xiàn)了static不能亂用。。。之前的作業(yè)中,每個類里面寫為static并無影響。但是第三次,如果類中private變量寫為了static,則會引起遞歸無法進行下去,"被static修飾的變量或者方法是獨立于該類的任何對象,也就是說,這些變量和方法不屬于任何一個實例對象,而是被類的實例對象所共享。"?
第一次作業(yè)中,有兩個bug,分別是長度判斷錯誤(>=1000 錯判斷為>1000)和未注意trim(),誤以為trim只會刪去首尾空格(實際上會刪去首尾小于空格的所有空白字符);
第二次作業(yè)中,也有兩個bug,第一個是判斷是否要在 - 號后面添加1,第二個是在合并同類項 sin(x)^2 + cos(x)^2? 時引起的,沒有判斷兩者的cos(x) 項和sin(x)項是否次數(shù)為0;
第三次作業(yè)中,錯誤主要是由于使用 +- 號分開多項式跳過*與^后的+-號條件錯誤,并且判斷嵌套因子時里面是表達式因子的情況沒有考慮完全。
總而言之,大部分錯誤是自己沒有進行充分測試引起的,以后會盡量避免這種問題。
·分析自己發(fā)現(xiàn)別人程序bug所采用的策略
由于還沒有學(xué)習(xí)對拍。發(fā)現(xiàn)別人bug主要是依靠將自己錯誤過的,編寫程序時寫出的樣例在別人的程序中進行測試。還有少部分bug通過讀別人的代碼發(fā)現(xiàn)。
·總結(jié)
在三周的學(xué)習(xí)過程中,雖然緊張,但使我收獲頗豐。特別是在互測階段,(雖然被刀了很多同質(zhì)bug...)但是可以看到互測屋中大佬的代碼,可以學(xué)習(xí)他們寫的好的地方。在以后的學(xué)習(xí)中,會加強自己的本地測試,盡量避免出現(xiàn)低級錯誤。如果進行第三次作業(yè)的重構(gòu)的話我認為我的程序可以從添加一個factor父類,以供所有因子繼承,還有可以添加乘法和加法接口,這樣可以直接調(diào)用此接口來做乘法和加法運算,不用在每個類中再寫加法方法和乘法方法。
轉(zhuǎn)載于:https://www.cnblogs.com/saluki/p/10597944.html
總結(jié)
- 上一篇: spring和mybatis的整合开发(
- 下一篇: PAT L3-007 天梯地图