proj0的具體實現 #CS61B-sp18


https://github.com/Centurybbx/sp18-century/tree/master/proj0

proj0的具體實現在上面的Github中。

 

在proj0中我明顯感受到國外大學對於教學課程的嚴謹性和權威性,之前只是聽說過測試(剛學習的小白),沒想到在CS61B中老師為了方便測試學生所寫代碼的准確性,提前寫好了不少測試類,直接運行即可。並且它的教程完全是保姆式的,完全是在手把手的教課,對於新手程序員來說簡直是不要太好。

 

下面主要談一下它的設計方面:

這個項目里面其實自己並沒有寫多少高大上的代碼,感覺它的實現還是挺簡單的,主要是基於牛頓定律和一些物理公式的推導得出來的。但是它的設計卻讓我感覺非常巧妙,例如在Planet中它先是循序漸進的讓我們寫出一個calcDistance(Planet p)方法來計算兩個天體之間的距離,隨后根據這個寫calcForceExertedBy(Planet p)方法,用來計算兩個天體之間的引力作用。隨后又引出calcForceExertedByX(Planet p)和calcForceExertedByY(Planet p)兩個方法來計算X和Y軸上力的分量,最后再寫出calcNetForceExertedByX(Planet[] ps)/calcNetForceExertedByY(Planet[] ps)引用上面的方法來計算出多個引力作用的結果,感覺很妙!

 

總體來說這個項目還是挺簡單的,因為好多輪子已經造好了,比如StdDraw/In這些工具類已經封裝好了很多方法,直接看着API文檔調用就好了。

 

-------------------------------------------------------------------------------------------------------

剛剛用gradescope評估了一下評分,發現它提示我有一點小問題——原來是變量作用域的問題,我用public修飾的G(一個系數)要改為private.....這真的好嚴謹,愛了愛了!這課不好好學完全是浪費啊!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM