1. 程式人生 > >結對編程項目感想

結對編程項目感想

情況 學習 返回 編程 debug 哈希 變化 隨機 radio

受益匪淺啊受益匪淺,出去阿裏雲短信的JAR,總共約1600行,目前為止沒有完成這麽長的項目過。首先我上學期並沒有學JAVA課,暑假到開學自學的JAVA,經過這次結對編程,可以說對JAVA編程了解的七七八八了。第一個登錄UI編寫時對JAVA的編程習慣不太適應,在類中建新類,方法又在新類外,帶來了一系列麻煩,在後來又重構了第一個UI,給我心態也帶來了一些影響,還好最終是完成了,比較順利也很快樂。

首先說一下UI。UI的學習是有很強的反饋的,編寫完一個UI就能立刻獲得一個圖形界面的反饋,給人的成就感是很大的,因此UI編寫是讓我感覺很快樂的部分。盡管我是在類中新建JFrame而不是extend JFrame,但是我認為這樣將類與窗口分開更便於編寫和維護。困擾我時間最長的問題是在按下按鈕時獲得文本框返回值的問題,這個問題在一個類使用一個Frame的情況下就很順利的解決了。另一個問題就是出題界面,點擊下一題後就要出現下一題的內容,如果創建新窗口就太麻煩了,因此我把RadioButton和label分開,使用setText改變已有label的值,並且把所有題目提前生成並以數組儲存,設置當前量來確定目前是第幾題,以此完成了下一題刷新頁面的效果。另外一提,在寫感想的同時修了一個下一題按鈕與完成按鈕只能單向變化的BUG...

然後是復用之前的代碼,由於結對對象使用了C++編寫題目生成,因此就使用了我的JAVA代碼。首先我的JAVA代碼是分段輸出題目的,因此將每一段保存就可以得到一道題的字符串,使用javax.script.ScriptEngine的eval就可以得到string算式的值,而eval不支持平方、開根號、三角函數等,我就用另一個字符串,分段將平方、開根號、三角函數計算完後。加入到字符串中,以此字符串進行計算,就可以得到正確答案。同時分段算式也保存下來,隨機將每段的結果無效或者反向操作,就可以隨機生成三個錯誤答案了。同時文本讀取也可以直接使用。可以說我的JAVA代碼很適合這次的需求。

其他零碎的東西有很多,查重是利用字符串哈希;用戶名和密碼的檢查都是利用getText和getPassword,設置了很多條件;題目的選項清空一開始使用setSelected(false),然而還是有小黑點,因此使用了group.clearSelection();短信驗證碼使用阿裏雲的jar和類,只需要更改KEY、簽名等等即可……等等很多東西不再贅述,一個項目的開發不只是功能的實現,還有構思、增加需求和DEBUG。

最後附上效果圖和需求分析圖。

技術分享圖片技術分享圖片技術分享圖片技術分享圖片技術分享圖片技術分享圖片

技術分享圖片技術分享圖片技術分享圖片

結對編程項目感想