note:/*
第一版為能自動生成
30道小學四則運算題目,要求除了整數以外,還要支援假分數的四則運算。
這個是先把第一版的面向過程改成了物件導向,然後設計的第二版。
第二版的要求為:
1、題目避免重複;_2
、可定製(數量
/列印方式);_3
、可以控制下列引數
: 是否有乘除法;
是否有括號
(最多可以支援十個數參與計算);
數值範圍;
加減有無負數;
除法有無餘數!
第二個版本的限制為最多出
2000
道題,用的巨集定義
如果想要不重複,我需要把被除數和除數分別用陣列表示,這樣才能在後面用於比較是否重複。
在判斷是否重複的時候,用的方法不是一次性判斷第乙個數並且第二個數並且符號都同時相等,這樣比較每次需要比較三個;
我用的是,先判斷第乙個,如果和上面有重複的,那麼比較第二個;如果第二個同時也重複了,那麼比較符號。這樣只有當上乙個比較滿足的時候,
才會比較後面的;否則後面的根本不需要比較,覺得可以簡化比較過程。
關於這個程式的乙個想法,不同於現在的程式設計思路:輸出全部的條件,讓使用者選擇。
然後根據條件,來隨機出現選定的條件。比如是否有乘除法,有的話,就隨機出現;沒有的話,就不用出現。
大概是根據大一通訊錄的新增,查詢,刪除之類的程式來的想法。
這個程式的
main
實現了上面這個想法,比第乙個第二版條理要清晰很多。但是依然只是實現了題目避免重複;可定製(數量,是否有乘除法;數值範圍。
*/ main
:/* 底雲飛 2016.3.36 這就是note中第二種想法的實現,四則運算第二個版本後來想法的實現 */
#include
#include
#include
using
namespace std;
#define max 2000
//帶有乘除法的四則運算
void show_multiplication(float rand1,float rand2,float operate)
//沒有乘除,沒有分數的四則運算
void show_plus(float rand1,float rand2,float operate)
//帶假分數的四則運算
void show_fraction(float rand1,float rand2,float rand3,float rand4,float operate)
void main() }
//在這加乙個判斷是因為:假設number等於5,如果當a=3,b=2的時候,這裡如果沒有判斷,
//那麼如果下面的flag=1之後,這時b就會加1,直接a+b=6,略過5了,就不能正確顯示出5個運算了。
if((a+b) == number)
break;
if(fraction_flag==1) //如果需要分數 }
else
if(multiplication_flag==0&&fraction_flag==0) //如果乘除法和分數都不需要
if((a+b) == number)
break;
} }
軟體工程個人作業02
一 設計思想 1 題目避免重複 將數放入陣列,利用陣列進行比較 第1個和2.3.4 n比較,然後第2個跟3.4.5 n比較,以此類推 2 可定製 數量 列印方式 新增語句,設定數量 3 可以控制下列引數 是否有乘除法 有,則呼叫全部的符號,無,則呼叫僅加減符號 是否有括號 最多可以支援十個數參與計算...
軟體工程個人作業02
設計思路 功能一 題目避免重複。1 在原程式中將原程式的資料進行記錄 三組資料用佇列或者是棧 2 從第二次迴圈開始將三項紀錄依次與之前記錄的資料進行比較 for迴圈?功能二 可定製。控制迴圈的次數 功能三 是否有乘除法 控制運算子 是否有括號 沒有實現 數值範圍 控制隨機數的範圍 有無負數 判斷兩個...
軟體工程個人作業02
設計思路 在第一次實驗的基礎上 第一次並沒有建類 建立arithmetic類,然後依次新增新的功能模組 新增新的函式體或者在原有函式體上做改動 通過switch語句實現功能的選擇不同的case語句呼叫不同的函式體實現功能 通過對隨機數對4求餘數來隨機產生不同的運算子 通過隨機數對10求餘來確定括號的...