1. 程式人生 > 其它 >結對專案總結-中小學數學卷子自動生成程式

結對專案總結-中小學數學卷子自動生成程式

一、 專案需求

  1. GUI,桌面應用或網站。

  2. 註冊:

    a) 傳送簡訊到指定手機;

    b) 判斷輸入的驗證碼與手機號是否匹配,匹配則跳轉;

    c) 提示設定密碼,按位讀取,滿足6-10位,必須含大小寫字母和數字的要求;設定完成後跳轉到相應介面;

    d) 登入狀態下要有修改密碼的按鍵;跳轉到密碼修改介面,先輸入原密碼,再輸入兩次新密碼。

  3.題目:

a) “小初高”三個按鍵,分別跳轉到相應的題目生成介面;

b) 對話方塊輸入題量,生成題目(一張試卷不重複),跳轉到做題介面;

c)做題介面顯示一道題的題乾和四個選項,要有“下一題”按鍵,按下後跳轉到下一題介面,最後一題變為“提交”按鍵;

d) 按下“提交”按鍵,跳轉到分數顯示介面(可以顯示錯誤分析,這需要記錄下所有的題目及選項,如果做了這一點,也可以做“上一題”按鍵);顯示“退出”或“繼續做題”按鍵;“退出”按鍵跳轉到“小初高”介面,“繼續做題”按鍵跳轉到輸入題量介面。

二、專案實現

我的搭檔是使用的c++完成的個人專案,但是考慮的c++圖形介面的實現難度與學習成本很高,我們選擇沿用我的程式碼,用java來完成這個專案。通過java swing實現圖形介面,然後複用我寫的生成及儲存題目以及查重的程式碼。我的搭檔負責實現圖形介面,包括登入驗證、事件監聽以及介面間跳轉;我負責生成題目的答案,以及實現簡訊驗證。最後將我的各種函式在對應事件監聽中呼叫,然後處理之後展示即可。

三、專案結構

  

  1. 該專案採用Java Swing模組實現簡單的GUI框架,基本上每個介面都封裝為了一個類;
  2. 切換介面時,摧毀當前介面,並呼叫其它介面類生成新的介面;
  3. 該專案中的驗證碼採用榛子云實現,僅供測試;
  4. 類TestMaker用於題目生成;
  5. 類Expression用於對只含有加減乘除及括號的題目生成答案;
  6. 類TestResult用於將題目化簡為只含有加減乘除及括號的題目;
  7. 類MessageSender用於傳送驗證碼;
  8. 類First為程式的入口;
  9. 其餘類為實現相關的介面及邏輯。

四、經驗教訓

  1.需要兩個人對專案需求有著基本相同的理解,這樣才能方向一致,避免出現1+1<<2的情況。

  2.與隊友之間的溝通十分重要,不然很容易在對接中出現問題,進入複雜的程式碼修改環節。

  3.要合理規劃時間,根據要完成的程式碼量及難度確定好各模組的完成時間,以便於在截止時間之前圓滿實現專案。