生成四則表示式

2022-09-14 08:03:10 字數 1714 閱讀 2746

能夠自動生成四則運算練習題

可以定製題目數量

使用者可以選擇運算子

使用者設定最大數(如十以內、百以內等)

使用者選擇是否有括號、是否有小數

使用者選擇輸出方式(如輸出到檔案、印表機等)

最好能提供圖形使用者介面(根據自己能力選做,以完成上述功能為主)

經過我和我的夥伴商量我們決定如下:

駕駛員:劉亞(本人)

領航員:江民亮

圖形介面用android 開發

三個介面:1.使用者選擇介面。2.題目介面。 3. 使用者做題後正確率顯示介面

根據使用者選擇可以定製題目數量,運算子,最大數,是否有括號和小數

由於是面對手機使用者開發的(介面比較小)所以我們決定每次只出10道題目,如果使用者想再繼續做題,我們在螢幕下方設定兩個按鈕,「再來10道題」介面就可以重新整理再出10道題,如果覺得做夠了,點選「就這樣吧」即可結束。

當使用者點選「就這樣吧」的時候會出現次介面,會反饋出給使用者鼓勵的話和成績

主要分為兩個函式formula(){}(產生表示式的函式),calculate(string eq){}(計算等式的函式),

```public void formula()

symbol=rand.nextint(4);//[0,4)的隨機整數數

switch (symbol)

if(i!=count)

else

if(yfalse)

producelastbrackets(i);

equation+=ch;

}else

else

producelastbrackets(i);

}i++;

}equation+="=";

equation=equation.trim();

string test="3+2*5=";

system.out.println("結果:"+test);

system.out.println(calculate(test));

system.out.println("結果:"+equation);

system.out.println(calculate(equation));

}public boolean producefirstbrackets(int i)

}return yes;

}public void producelastbrackets(int i)

}else

else}}

}}

計算函式優先順序(,*,/,+,-,)

private boolean isnumber(char ch) 

return false;

}

總結

由於時間關係,沒有來的急對介面進行優化,還有功能一有乙個傳引數值的bug一直沒有除錯好,還有在計算的時候經過領航員長時間的除錯基本沒有計算錯的了,談談我們的領航員吧,結對講究的就是合作吧,開始開發之前我們一起討論,怎麼寫介面,怎麼新增功能,考慮除0的情況,在寫計算函式的時候我們討論如何考慮優先順序,決定用棧來寫,**全部由我完成,所以我們還是合作愉快的。快要接近截止時間了,能力有限,只能做到此了。

要看全部**戳[這裡](

關於生成四則表示式

關於出題數量和列印方式的限制解決。使用兩個引數num line,num限制出題數量,line限制輸出時每行輸出數量。將for迴圈設為無限迴圈,在迴圈的最後讓四組數量相加等於num即可break跳出迴圈。最後乙個限制有很多要求,目前完成了除分數的前幾個要求。解決方法就是在for迴圈剛開始時,兩個引數和...

四則表示式

四則表示式求值,過了北大百練,放心用哈 北大百練url include include include include includeusing namespace std const int maxn 1000000 char str maxn 可以定義乙個字元變數,儲存c前的乙個字元,這樣就可以...

隨機生成四則表示式2

接著上次的程式,老師又給二柱子增加了幾個條件,對程式再做進一步的改進,要求滿足如下條件 1.題目避免重複。2.可制定。數量 列印方式 3.可以控制下列引數 如下是對本題的分析 針對問題,首先要進行拆分。從最小的功能開始,然後依次實現。首先還是生成一道兩個數的四則表示式,這個不難實現。困難的是如何生成...