新增要求
- 要求生成四個數字以及若幹個運算符,例如生成的運算式:(5 - 4 ) * (3 + 8),或者(5+3)* 4 * 6。
-
展現函數分離、子產品化的思想。
如以下函數scan()//該函數用于與使用者互動,擷取輸入資料
randomNumber()//用于随機生成數字
randomOperation()//用于随機生成運算符
generateExpression()//用于生成運算式
calculateResult()//用于計算生成的運算式的結果
print()//将統計結果輸出給使用者
- 采用C++編碼,特别要求必須采用C++的标準輸入輸出,即cin/cout。
代碼改動
- 之前代碼輸出題目如:a+(b*c)形式,這次增加一個變量d和一個新的符号,生成題目如:(5 - 4 ) * (3 + 8)。
- 将能夠改動的輸入輸出全都替換為c++的标準輸入輸出,由于代碼中有些部分需要利用到傳回值,是以這些部分的輸入沒有改動。
運作執行個體

代碼位址
GitHub位址
感想
我在第一次編碼時,已經将各個功能用不同的函數表示,但是不夠徹底,generateexpression函數的功能和main函數混在一起,整個程式的結構,看起來就不那麼清晰。在重構的時候,發生了一些阻礙,主要是變量的設定不夠理想,不同函數之間的變量設定成了相同的名字,是以更改的時候就要檢查哪些變量是哪個函數的,是否能夠設定成全局變量,重構起來增加了許多麻煩,這是原來的代碼不理想的地方。而好的地方,正是将原先編寫好了的自定義函數,因為功能都分了塊,是以從三個數過渡到四個數就輕而易舉了。是以,程式的子產品化是一個很重要的方法,它能為日後的維護提供許多友善,也便于分工與合作。