1. 程式人生 > 其它 >結對程式設計-試卷生成系統的實現總結與反思

結對程式設計-試卷生成系統的實現總結與反思

結對程式設計-試卷生成系統的實現總結與反思

一、效果展示

1.登入介面

當密碼輸入不符合格式時,給出提示。符合格式後才可以驗證登入。

2.註冊介面

由登入介面點選註冊即可顯示註冊介面:

輸入驗證碼後即可進入下面的賬戶名和密碼設定階段:

此時由於我輸入密碼123456不符合要求顯示提示,

正確輸入密碼後,即可成功註冊:

3.題目選擇介面:

4、做題介面:

5、題目做完後:

此時可以選擇退出登入或者返回重新出題。

總體來看,實驗所要求的的功能我們的作品是都實現了的。但是有的細節地方,實現的不是特別好,甚至是存在錯誤。

二、程式碼複用說明

我本人主要是負責後端程式碼的編寫,下面就後端的程式碼框架和類設計,以及對個人程式設計程式碼的複用。

springboot專案結構如下:

其中SysControoler是和前端對接的一些介面實現。src中paperGenerator是試卷生成和生成答案的主體部分,PaperItem是一個物件類,每個物件都包含一道題目的題面,答案,以及選擇。UserManager類是負責和資料庫連線驗證使用者資訊的。

1.PaperGenerator的結構:

其中,程式碼結構複用了個人專案的程式碼結構,生成題目的邏輯部分程式碼也是完全複用,不同的是因為需要解題,所以生成題目的過程索要儲存下來的一些記錄相較於不考慮計算就有所不同,所以在每個生成函式裡添加了解題需要的資料的記錄,為了配合解題,又另外寫了calculatePrimaryQuestion,以及生成隨機的三角函式的方法generateRandTig(),另外多了的removeRedundantParentheses函式和changeItemType函式只是簡單的去括號和轉換返回型別的函式,也是因為解題的需要而設定。

簡言之,類設計結構和生成題目程式碼結構的部分是複用個人專案的。

2.UserManager

個人專案中我用了檔案來實現了和這個UserManager有相同介面的類,但我也實現了這個連線資料庫的UserManager,而且當時實現的介面和功能也是完全能用和夠用的,所以我就將整個類拿來用了。

但是,我對自己的程式碼複用不滿意,這個主要是因為個人專案的方法設計就不是很好,每個方法體所實現的內容太多,沒有拆分功能,導致很多函式我是本次專案中又再次拆分調整的。

三、本次結對程式設計的經驗和教訓

其實本次結對程式設計給我們兩帶來的主要是教訓。。。

我們在一開始就進行了明確的分工:我負責後端程式碼,我的隊友負責前端介面設計和程式碼。一來是由於我們缺少開發和合作經驗,所以並沒有制定好雙方具體怎麼合作,導致我們前面的合作流程特別慢。二來我自己也在開發過程中插手前端的設計(就是我也嘗試自己去實現頁面),所以我的後端程式碼完成的也很慢,而且干擾了我隊友前端介面的設計。最後3天我們坐在一起,邊討論,邊對接整合程式碼的過程到時很快,但是就是由於前期的設計沒有完善,所以bug頻出,改bug耗費了特別多的時間,最終也沒有消除全部的bug。