日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OO第一次博客作业

發布時間:2024/7/5 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OO第一次博客作业 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一次作業

  第一次作業要求我們進行簡單冪函數的求導,我采用的方法是每項單獨匹配,匹配完處理系數和指數放入兩個動態數組且數組地址相同,在此過程中因為第一項可能無符號進行特判。第一次的優化通過指數相同系數相加,和如若有加號放在首位可省略兩種情況。

  第一次作業因為才開始接觸java以及oo所使用的基本都是面向過程,一共兩個類,其中一個把主方法寫了幾百行,完全不符合面向對象的思想。

(1)基于度量來分析自己的程序結構

?

?  本次作業由于第一次接觸oo以及java,所有內容基本在一個方法中完成,看起來十分臃腫且沒有復用性。一個方法469行,完全是面向過程在打,而且部分可以變成方法復用的地方也沒有提出來,而是直接在一個方法中處理了,整體呈現出高內聚高耦合的情況。

?類圖

?

優點:看起來真的簡單

缺點:點開polynomial看看真的繁瑣,沒有任何面向對象的體現。

(2)分析自己程序的bug

  自己測試自己時,主要手打一些邊界數據進行測試,但是個人所想不是很全,所以在互測時仍有錯誤。

  對于/v沒有進行特判,同時對于空串理解錯誤錯認tab不是空串。此外,首先處理++ 1這種數據時正則判斷錯誤。對于正則的使用不夠熟練,只會使用m.find進行匹配。

(3)分析自己發現別人程序bug所采用的策略

  第一次作業基本采用純手寫邊界數據進行盲測,所幸第一次能看到hack數,所以只對于被hack的人進行測試,并沒有做特別多的無用功。大佬真多,看代碼主要是學習。

第二次作業

  第二次作業在第一次作業的基礎上加上了sin和cos進行求導,我采用的方法是按項匹配正則表達式,把匹配好的項放入Number類,每一個項實例一個指數和系數的對象,如果此項沒有對應的對象則對應指數為0,系數為1.然后進入求導類,求導根據項最長可能即所有都有進行求導,對于求導后的式子進行系數指數優化,然后對于sin^2+cos^2進行一系列的優化。

  這里的優化主要有sin^2+cos^2=1,a*sin^2+b*cos^2=a+(b-a)cos^2,1-sin^2=cos^2等一系列針對此項可以優化的地方進行局部優化,并把第一個加號項提到最前面。

(1)基于度量來分析自己的程序結構

  相比于第一次,這次的風格好了很多,部分代碼可以說用了面向對象的思想,雖然這個代碼在第三次作業仍然沒有能夠復用,但這種模塊化的思想,確實為這次縮減了代碼量。但是類中返回值時創建了很多無用的方法,需要改進。仍然沒有做到高內聚低耦合。

類圖

優點:每一塊條理清晰,便于查找和修改

缺點:Polyprocess中有一些方法可以變成類,方便于以后使用。

(2)分析自己程序的bug

  自己測試自己時,主要手打一些邊界數據進行測試,但是個人所想不是很全,所以在互測時仍有錯誤。

  首項前可能有空格沒有考慮,優化部分sin和cos指數優化打錯了。

(3)分析自己發現別人程序bug所采用的策略

  第二次作業基本采用純手寫邊界數據進行盲測,因為之前自己有打一些測試數據,就用這些數據hack了6個人??戳瞬糠执a進行測試。

第三次作業

  第三次作業難度比之前上升了一大節,其要在sin或cos中完成因子嵌套,因此之前的方法在這里是不適用的。我所采用的辦法是遞歸下降,前期對于數據進行一系列的預處理,判斷WF的情況,然后盡可能的刪去+號,只保留區分項所必須的。然后把所有的+、*號變成a、m,每次遞歸把括號外層換回,并進入該層的項的求導,根據+分割項,根據*分割因子,并由內到外遞歸求導,整合為字符串。最后化簡部分我只進行了一些簡單的處理,對于合并以及特殊sin、cos沒有進行處理。

(1)基于度量來分析自己的程序結構

  這次作業和第二次差不多,許多可以變成類的方法我都放在一起寫了,雖然看起來簡單但對于以后的使用造成了一定的麻煩。依然難擺脫低內聚高耦合,雖然與上次相比內聚有了一定的進步,但仍然需要繼續學習面向對象的思想,盡可能做到分類。

類圖

優點:每一塊條理清晰,便于查找和修改

缺點:Formula中有一些方法可以變成類。

(2)分析自己程序的bug

  自己測試自己時,主要手打一些邊界數據進行測試,但是個人所想不是很全,所以在互測時仍有錯誤。

  sin、cos()內+1情況沒有考慮,a沒有替換。此外,*-1負號沒有考慮,讀系數沒有讀進去。

(3)分析自己發現別人程序bug所采用的策略

  第三次作業學會使用對拍器和批量處理,雖然還是不會生成代碼,但一下子測六七個的感覺還是比之前好了很多。主要手打邊界數據進行測試。沒有結合被測程序設計測試樣例。

??(4)? Applying Creational Pattern

  三次作業都沒有使用設計模式,我覺得第三次作業求導部分可以變成一個工廠模式,因為有共同的功能一致的方法,實現低耦合。

  重構的話,我覺得我將會把一些不依托特定數據的方法變成類,外部使用try和catch捕獲異常。

轉載于:https://www.cnblogs.com/zhouyiwyz/p/10597791.html

總結

以上是生活随笔為你收集整理的OO第一次博客作业的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。