結對程式設計實現——總結
本次結對程式設計實現帶UI帶小初高數學學習軟體,我與田佳禾一起組隊完成,我負責前端介面的實現,田佳禾負責後端邏輯的實現。
一、拋開圖形化介面,從後臺邏輯的角度來說,與個人專案不同的方面有以下幾點:
1、使用者註冊與修改密碼:其中包括,使用手機號傳送驗證碼、檢查密碼設定的正確性是否有正確的格式以及兩次是否輸入相同;修改密碼時判斷原密碼是否輸入一致以及新密碼格式是否正確的判斷。
2、題目作答與記分:生成一道題後需要知道其正確的答案,再修改正確答案得到另外三個迷惑選項,記錄正確答案的位置。
二、複用部分:
1、仍使用了User類對於使用者進行描述,使用者的姓名與密碼,checkExist函式用於判斷使用者是否存在,signUpPassword用於判定兩次密碼是否輸入一致,addUser用於新增新的使用者,checkPasswordForm用於檢查密碼格式是否正確。
2、複用MakeTest題目生成類,生成小初高三個年級的不同型別題目,此外,新增正確答案計算功能,邏輯按照數學運算先算括號再算加減最後算乘除的方式進行計算,沒有將根號直接變為小數而是進行化簡,並生成另3個選項,每次採用隨機數打亂位置,生成每道題目,並記錄正確選項位置(下標)。
三、圖形介面採用JavaSwing生成桌面應用,按照需求做了六種介面,分別為:
1、LoginUI登入介面:獲取輸入的賬號與密碼與User類中的checkExist函式相接,用於登入判斷
2、SignupUI註冊介面:設定了與User 類中新增使用者與判斷密碼的函式介面,傳送驗證碼按鍵採用了倒計時的形式,按下後一分鐘內不可以再次按下。
3、Home主頁介面:將修改密碼與年級選擇和題目數量設定放在一張版面上便於操作。
4、ChangePassword修改密碼介面,做好與User的介面
5、AnswerUI答題介面:採用多次生成新MakeTest新物件的方法建立題目,前端編寫函式changeShow用於改變每次介面中題目與選項的顯示,做好與MakeTest介面,獲取每次正確選項的位置,由於與按鈕事件判斷,並記錄得分。
6、TipWindow提示介面:當遇到密碼賬戶錯誤、密碼格式不對以及最終得分類似的需要用到提示的地方,使用JFrame製作彈出的提示框,每次只用修改其中的提示字樣,不用每次建立,提高程式設計效率。
四、經驗與教訓:
1、在實現簡訊傳送驗證碼的過程中遇到了很多困難,使用了好幾個雲平臺都沒有成功需要企業認證或者需要很高的費用,最後花費一番功夫找到榛子云平臺,實現了簡訊傳送。
2、生成exe執行檔案時,也用了很多時間,用了好幾種方法,在同學的幫助下最終完成並掌握方法。
3、本次實驗中,沒有一商量完分工就直接開始去程式設計,首先我們花了一至兩天的時間分別構思了以下前後端的大致思路,確定了要實現的基本極大功能,列出所有需要互動的介面,以及介面的引數與返回的型別。當做完所有準備工作時才開始進行程式設計這一步,通過實踐我覺得提前做模型非常有效,我們在各自做完後,進行前後端連結時基本上沒有遇到什麼困難,花了半天的時間將整個程式接好完成了所有基本功能。在這個過程中我體會到,程式結構的設計對於整個工程的重要性。