天天看點

2017《面向對象程式設計》寒假作業三

相同部分

兩位合作者的學号和對應部落格首頁連結

  • 031602334 溫伊倩 http://www.cnblogs.com/qvq-qvq/
  • 031602139 徐明盛 http://www.cnblogs.com/kofyou/

    描述實作設計思路

  • 使用rand函數随機生成四個數字和三個運算符号,并分别儲存在兩個數組中。
  • 括号在算式中的位置情況有六種,随機選擇其中的一種情況,引用計算結果函數。
  • 在計算結果函數中用if條件語句分辨判斷三個符号,若三個符号中沒有除号,結合括号情況直接計算得結果;若有除号,寫出分子和分母的表達式,再引用一個函數完成分數化簡。
  • 使用者輸入答案與程式計算結果相比較,完成輸出。

    你們訂立的編碼規範

  • 參數名字、函數名字通俗易懂。
  • 縮進合理。
  • 一行不寫多個語句。
  • 語句之間講究邏輯,合理排序。
  • 在代碼需要注意的地方寫注釋。
  • 程式子產品化,一個函數完成一個功能。

程式實作和結果測試的截圖

2017《面向對象程式設計》寒假作業三
2017《面向對象程式設計》寒假作業三

github的送出連結和送出日志截圖

2017《面向對象程式設計》寒假作業三
2017《面向對象程式設計》寒假作業三

兩位同學的分工和協作證據截圖

2017《面向對象程式設計》寒假作業三
2017《面向對象程式設計》寒假作業三
2017《面向對象程式設計》寒假作業三

差異部分

合作過程

  • 我在任務下達幾日後才聯系溫伊倩同學。在我把我的可以生成随機數和随機運算符的一段程式發給她後,她直接把她已将可以運作的程式發給了我。她的程式已經有了一個合理的結構,包括使用者界面的輸出、題目的生成、結果的計算和最終回報給使用者的界面,她用了不同的函數分别完成不同的功能。這個程式為了計算結果采用的是詳盡的分類讨論,雖然繁瑣但是一目了然。此外她還探索了使用遞歸計算結果的方式。我感歎她的行動力,但還好我也還有可以做的事情:這個程式的計算還沒有帶入括号的讨論以及分數的計算。之後我們把她的程式作為初版,開始逐漸完善它所欠缺的功能。我修改了一些地方為今後程式的逐漸完善做鋪墊并在我們加入了括号的讨論後,以她的分類讨論為模闆,完成了分數的計算方式,在這個程式中又添加了分數化簡、計算公因數的函數。因為括号位置的不同,我們總共需要六個計算結果的函數。這項工作比較乏味,需要在模闆函數上添加括号、寫出分子分母的表達式,機械而重複。我寫了其中四個,她寫了兩個并且還為程式加上了英文版輸出。在完善這個程式的過程中,我修複了一個bug,而我的夥伴修複了三個bug。

合作體會

  • 從前都是獨立編碼,按着自己的思路一直走下去,未曾有什麼思想的碰撞。如今第一次合作編碼,寫了有史以來最長的程式,有許多感想體會。
  • 一是合作需要一個有能力的上司。這位上司需要給程式分塊,将不同塊的交給不同的人完成,一人隻要專心做一事,提高了效率。
  • 二是代碼要有可讀性。代碼給隊友讀起來要通俗易懂,難處添加注釋。這次合作中我的隊友就做得很好,給重要語句添加了注釋,給不同函數的功能也添加了注釋。而我此前沒有這樣的習慣,非常慚愧。
  • 三是意識到思想的多樣性。當隊友之間互相描述思路時,或者在你看隊友的代碼時,你會發現人與人可以如此不同。他的思路于你是一條從未走過的路。我從前獨立編碼時并不喜歡看别人的程式,心想我有我的思想,并不喜歡跟着你走。現在看見别人的思路

    如此不同時會感到很新奇,會自己問自己為什麼當初沒有想過這樣的方法,并且比一比,誰走的路更短。要是他的路更短,我會由衷地感到好厲害。

  • 四是編碼需要專心與細緻。此次編碼我和我的隊友使用了最繁瑣的分類讨論,很容易産生倦怠感并出現錯誤。這是對我們的一次很大考驗。此外我也對自己抱有十足信心,我們考慮到了絕大多數可能出現的問題。
  • 五是學無止境。我們運用了最容想到卻也相當繁瑣的方法,我也看到有其他同學采用了“更聰明”的做法。我暫時無法做到,以後可以。
  • 六是要把握時間啊。。。。。。
上一篇: 寒假作業3
下一篇: 随筆三