20165325 2017-2018-2 《Java程序設計》結對編程_第一週:四則運算

1、碼雲連接

項目名稱FAOhtml

碼雲連接git

2、需求分析

  • 實現一個命令行程序
  • 自動生成小學四則運算題目(加、減、乘、除)
  • 支持整數
  • 支持多運算符(好比生成包含100個運算符的題目)
  • 支持真分數
  • 統計正確率

3、設計思路

首先設計一個基礎的數據類,因爲本次項目編程的難點在於分數運算的處理,因此咱們打算從一開始就以「分數類」做爲基礎數據,並由此設計了Rational類(成員變量以及方法均詳見UML圖),Rational將全部的數據設計爲分數,而且能進行+、-、*、/運算。編程

其次,咱們須要設計一個相似於「棧」的類(即Mystack類),其做用是存儲用做運算的後綴表達式,後面的「計算器類」遍以此爲基礎進行運算。優化

接下來,四則運算的核心即是「計算器」類,即Calculator類,其做用是計算一個後綴表達式的值,其計算方法在2017-2018-2 165X 『Java程序設計』課程 結對編程練習_四則運算裏面已經寫的很清楚了,即創建一個空棧,遇到數字就入棧,遇到符號就以符號前面的兩個數爲運算數進行計算。命令行

這周咱們設計的程序的最後一個即是:「轉換器」類,其做用是將一個正常的運算式(即中綴表達式)轉換爲後綴表達式,咱們將其命名爲Transform類。設計

以上四類咱們已經開發完畢,目前的程序能夠實現:計算一個正常的運算式(即中綴表達式)的值(支持有理數的運算,輸出結果爲一個字符串類型)。根據需求分析,咱們還須要如下功能:3d

  • 隨機生成(多個)運算式;
  • 判斷計算結果值是否正確;
  • 判斷隨機生成的(多個)運算式是否有重複;
  • 計算正確率
  • 系統優化

以上功能須要在下一週的編程中開發實現。調試

4、UML類圖

5、功能截圖

6、結對感覺

這一次的代碼很是繁多,設計開發任務也很重。orm

首先是第一次結對設計這樣大型項目,咱們缺少經驗;其次,咱們在設計上花了較多的時間討論,後來在實踐開發過程當中才發現:一些想法和顧慮是多餘的,果真實踐是檢驗真理的惟一標準,一味地空想是錯誤的計劃趕不上變化,要在實踐中思考,作出選擇判斷htm

最後我以爲這個程序,僅僅靠一我的,不管是體力仍是精神都難以支撐,我體會到了兩人結對編程的最大好處:相互鼓勵,相互幫助,共同面對和克服困難

7、結對編程照片

確認調試出來的那一瞬間,舒服了舒服了舒服了......

附:遇到的問題將在下週的博客中一併總結。

相關文章
相關標籤/搜索