1. 程式人生 > >【軟件工程】四則運算自動生成器

【軟件工程】四則運算自動生成器

大數 中斷 初步 htm 添加位置 win ftw 討論 知識

  • 四則運算自動生成器

  • 需求分析

    我們在剛開始上課的時候介紹過一個小學四則運算自動生成程序的例子,請實現它,要求:
    1.能夠自動生成四則運算練習題;
    2.可以定制題目數量;
    3.用戶可以選擇運算符;
    4.用戶設置最大數(如十以內、百以內等);
    5.用戶選擇是否有括號、是否有小數;
    6.用戶選擇輸出方式(如輸出到文件、打印機等);
    7.最好能提供圖形用戶界面(根據自己能力選做,以完成上述功能為主)。

  • 結對編程角色分配

    駕駛員:孫翔天【本人】
    主要任務:

    1.能夠完成全部代碼工作,程序基本實現全部要求功能,並將代碼上傳至coding.net或者GitHub代碼托管系統中(15分)
    2.能夠對導航員在本次編程工作中起到的作用給出客觀評價,並完成500字以上的總結,並且上傳和隊友工作時的照片(5分)

    導航員:呂政國
    主要任務:

    1.能夠輔助駕駛員完成全部代碼工作,並且為關鍵函數選用合適的覆蓋標準設計測試用例,並編寫代碼進行單元自動測試(10分)
    2.能夠根據上次作業的代碼檢查表對駕駛員的本次工作進行評價(5分)
    3.能夠對本次工作完成500字以上的總結(5分)

  • 代碼地址

    代碼地址存放進GitHub,編程語言使用的是Java:[Software_ArithmeticDemo] (https://github.com/cncocoaman/Software_ArithmeticDemo)

  • 功能模塊說明

題目操作—Operation.java

在Operation類內部,實現了創建與顯示題目,題目生成文件。

技術分享圖片

利用Random函數隨機生成符號及數字
技術分享圖片

自動生成括號
技術分享圖片

GUI圖形界面—MyGUI.java
在GUI類中,我們按照本次題目要求制作了這個四則運算自動生成器的界面,初次拿到我們覺得沒有絲毫頭緒,尤其是對於圖形化界面來說,只能根據網上的教程一步一步摸索,由於時間緊湊,它實現了題目基本要求,包括自動生成50道題目以內的加減乘除四則混合運算,選擇運算符,設置10~100的最大值,選擇小數或者括號等功能。
UI界面如下:
技術分享圖片
自動生成50道運算題測試:
技術分享圖片
打印至文件測試:
技術分享圖片

  • 做個總結

    這是我第一次做這種兩個人結對編程的工作,由於本次作業時間緊湊,我們首先選定了做第一個四則運算的題目,並迅速確定了,由我擔任“駕駛員”的角色,呂政國擔任“導航員”。我和我的導航員只有兩天晚上進行題目討論和代碼實現,所以可能功能和界面都不是相對的完善,而且大部分都需要結合網上的參考資料照貓畫虎,我和導航員有些地方可能還是不求甚解。在我編寫代碼的過程中,有導航員在身旁監督,會不斷指出自己編寫代碼中和別人不同的習慣。自己一個人編程的時候,可能會由於算法的不完善導致思路中斷;在兩個人的結對編程中,例如如何添加括號上,我們進行了多種方式的討論,最終選定了用三個字符段temp1,temp_mid,temp_2來判斷兩個括號的添加位置。

    在設計圖形化界面的時候,由於我們兩個都沒接觸過有關圖形化GUI的學習,我們從網絡開始了第一次學習,在這裏,我們模糊了駕駛員與導航員的區分,全都變成了車輛維修員,一起開始學習。初步了解了Swing容器和Jframe,Jpanel組件等知識,初次知道了圖形界面原來也是自己可以寫出來的,感覺非常神奇。
    參考資料:
    (1)Java-GUI快速入門
    (2)Java圖形化界面設計實戰練習
    (3)如何實現四則運算題目
    以下是結對編程照片:
    技術分享圖片

【軟件工程】四則運算自動生成器