1. 程式人生 > >和隊友互看個人項目(隨機生成算式)後感想

和隊友互看個人項目(隨機生成算式)後感想

流行 自己的 長度 下一個 描述 根據 空間 之間 對象

拿到隊友的項目,打開以後,第一感覺就是註釋太少,而且格式和自己的差很多,看的特別吃力;看到隊友的類裏面的函數和參數後,感覺和自己的實現方式有些類似,憑著這點相似性,我還是堅持看完了大部分代碼。順便在這裏大致描述一下我的方法,如有雷同,純屬巧合。

我實現了一個算式的類,每一個對象對應一個算式,完成初始化的對象都是一個只有一個數字沒有任何操作符的算式。這個類的對象之間可以通過+-*/符合組合成一個新的對象,這個類還有一個方法可以隨機的給它添加運算符和括號。構建一個算式的步驟是:

(1)隨機出這個算式的操作數的個數,假設是a個

(2)然後生成a個對象,將他們都放到一個容器裏面

(3)每一次隨機拿出一些對象,把他們用+-*/連接在一起,然後將這個新生成的對象根據難度進行隨機的包裝,最後將它放回容器裏。

(4)重復(3)直到把容器裏最後剩下一個對象。這就完成了一個算式的制造。

對比題目查重方面,我采用的是暴力搜索,每次生成一個算式就會查看一遍歷史記錄。而隊友采用的方法是將題目用哈希表儲存,在查重的時候,映射到相應位置,直接在沖突鏈裏查找是否有重復的題目,這種方法比我的方法要效率很多,但是感覺空間開銷還是蠻大的,關鍵是,懶得寫著挺麻煩的,直接暴力搜索我覺得挺好的。

結對項目中題目是要求計算結果的,我服了隊友在個人項目中就實現了這點(又給自己加需求),那天看完結對編程的需求,我也去改了我的代碼,通過添加一個數據成員記錄當前算式的結果,解決了這個問題,所以說我的代碼還是有這麽一點點擴展性的!

最後來說說註解和代碼風格。我的在處理大括號的時候采用的是將大括號另起一行,而隊友采用的是緊貼著代碼壓縮代碼的長度,這兩種都是很流行的習慣(似乎就這兩種,想不出其他的了),我覺得將大括號另起一行會讓結構更加清晰,我在處理某些可以不加大括號的地方也實用了大括號,就例如這種情況:if語句後面僅有一條語句,隊友直接不加括號,並且將if語句和這條語句寫到同一行上,而我另起一行加了一組大括號,同樣是感覺這樣結構比較清晰,方便以後自己看的時候理解。在函數頭的書寫上,我和隊友也是不同,我采用的是將函數頭寫到一行裏即使他的參數比較多,而隊友對於多個參數直接每個參數一行的寫,雖然我感覺隊友的做法看的更清楚,但是我還是堅持我的觀點,我覺得每個參數一行看起來不是很好看,遇到面對參數很多的情況,完全把這個函數拆成幾個,這樣更好。註解方面,隊友除了類裏寫了註解,其他地方的註解一處也沒有,這樣有些細節操作,感覺比較難get到他的思路,我寫的註解可能有點過多,我寫註解的時候幾乎是每條語句都有註解,寫完我還看一邊是不是看得通,我覺得這樣日後回看代碼會比較好,別人也容易看懂,有時候我看自己以前寫的代碼,完全是看註解一行一行下來,然後幾乎不看怎麽寫的語句,我覺得ok。

以上就是我看完隊友個人項目後的感想。

和隊友互看個人項目(隨機生成算式)後感想