2018102992小學四則運算練習軟體專案報告

2021-08-29 01:17:59 字數 2828 閱讀 4310

設計乙個四則運算隨機生成器,要求:

實現基本運算功能:

程式結構如下:

1.接收命令列輸入正整數n,用正規表示式判斷其合法性

2.迴圈n次,每次生成乙個式子,當隨機生成的式子不符合條件時(有兩點,1所有運算子都一樣,2除號後面是零)跳出此次迴圈,迴圈計數減一,重新生成式子。

3.生成的符合條件的式子進行計算,運算結果寫入到result.txt檔案中。

該部分重點建立程式整體結構,其核心部分為運算部分,在下一節中說明。

運算過程從左向右一次讀取隨機生成的運算數和表示式,舉例"2+3* 5-1="中有四個運算數[2,3,5,1]和四個運算子[+,*,-,=],其中乘除的優先順序高,加減和等於的優先順序低,則根據運算數前後的運算子決定其幾種不同情況:

1.加(減)在結果中;

2.乘(除)在暫存數中;

3.乘(除)結束,暫存數加(減)在結果中。根據判斷運算數前後的運算子進行不同運算。

//運算

//sum為最終結果,pro為乘積暫存,lastop表示上乙個運算子

double sum = 0.00, pro=1;

int lastop = 0;

for (int j = 0; j < x; j++)

}//加減等於的情況

else else

}lastop = ysf;

system.out.print(sz+op[ysf]);

}

變數ysf為當前運算數後面的運算子對應的陣列["+","-","*",「÷」,"="]下標,分兩種情況進行討論:

1.運算子為乘除,該數乘(除)在暫存數pro上

2.運算子為加減等於,當前面是加(減)時,該數加(減)在結果sum上;前面是乘(除)時,該數乘(除)在暫存數pro上,同時乘(除)結束,暫存數pro加(減)在結果中。

注:實現僅為加減乘除,未考慮實現擴充套件功能:帶括號的算式,若考慮帶括號的算式,該演算法的邏輯變得太複雜,需選用堆疊進行計算。

進行合法和非法輸入測試,此處僅展示部分測試

列印到螢幕上與寫入的檔案進行對比

在此執行的結果會追加在該檔案的內容後面

接收命令列輸入

string input = sc.nextline();

//合法性控制

while(!ispositiveinteger(input))

integer n = integer.parseint(input);

隨機生成乙個3-5的數

//運算數字個數(3-5)

integer x = (int)(math.random() * 100) % 3 + 3;

生成式子

//生成式子

shuzi.add((int)(math.random() * 100));

for (int j = 0; j < x-1; j++)

}

寫入檔案

//寫入檔案

filewriter filewritter = new filewriter(file.getname(),true);

bufferedwriter bufferwritter = new bufferedwriter(filewritter);

bufferwritter.write(data.tostring()); //寫入檔案(stringbuffer轉string)

bufferwritter.newline();

bufferwritter.close();

通過這個程式的設計及編寫,在程式設計階段,可以把功能切分,把涉及到相同變數的部分小功能模組化開發。

雖然在設計階段把很多問題在大腦中形成了實際的解決方向,但開發過程中,查閱資料依然用去了很多時間,尤其是之前《構建之法》中提到的"解決小問題",消耗了大量時間,對程式語言的熟練度太低,需要更多地實踐提公升編碼能力。

關於變數命名問題依然沒有形成較好的習慣,由於英語水平限制,很多變數命名時都需要翻譯工具輔助,由此很多變數偷懶用了漢語拼音甚至縮寫。

任務內容

計畫共完成需要的時間(min)

實際完成需要的時間(min)

計畫1520

估計所需時間並規劃大概步驟

1520

開發430520

需求分析

3035

生成設計文件

2030

設計複審

1020

**規範

1015

具體設計

6090

具體編碼

180240

**複審

6090

測試60

90報告65100

測試報告

3040

計算工作量

1520

事後總結

2040

小學四則運算程式設計

內容 1 引入隨機函式,隨機生成四種運算型別和需要運算的數值 import random def szys sym a random.randint 0,3 n1 random.randint 1,20 n2 random.randint 1,20 result 0 if a 0 result n1...

小學生四則運算

小學生練習題四則運算包括真分數的四則運算和整數的四則運算,我寫了八個函式,分別是整數加法 整數減法 整數乘法 整數除法 真分數加法,真分數減法,真分數乘法和真分數除法,利用隨機函式rand 產生隨機數,可以隨意練習多少道題目,寫完這個程式用了2個小時,主要用在除錯上了。include include...

小學四則運算程式設計實踐

1 import random 匯入隨機庫 2from fractions import fraction 匯入分數運算3 整數運算 4def c1 q,ans 5 operator random.choice 生成運算子 6if operator 7 n1 random.randint 0,10 ...