代碼倉庫地址:https://git.dev.tencent.com/wuyudong1998/sizeyunsuan.git前端
1.需求分析java
2.功能設計與實現狀況git
3.代碼展現web
4.測試運行算法
5.我的感悟編程
一:需求分析dom
該軟件主要針對小學生,能夠在輸入出題數量n之後自動生成四則運算題目,幫助學生練習,也減輕教師的出題任務,提升教育質量。函數
題目中所出現的數字不能過大,乘號與除號均以小學教材所出現的「×」、「÷」來表示,且不能出現小數與負數。學習
每道題中至少包含兩個運算符。測試
二:功能設計與實現狀況
目前個人項目只完成了基本功能與加括號的功能,對於真分數的功能,目前並未完成。具體以下:
①判斷輸入的題目數量在1~1000以內;
②編譯結果即生成題目保存在指定目錄中;
下圖爲個人設計思路:
目前個人項目只有三個運算數,我設計了answer函數用來調用參數、Calculate函數用來計算和列舉方法。經過參考學姐學長們的一些博客,我經過將不一樣的兩個運算符列舉,實現所須要功能。但這種方法的缺點在於須要考慮不少不一樣狀況之下可能的結果,且隨着操做數的增長,考慮的狀況很是多,成本加大。
3、代碼展現
int x = (int) (Math.random() *100); int y = (int) (Math.random() *100); int a=(int) (Math.random()*4); String q = x + first[a] + y; int sum,p,p1,p11,p2,p22,p3,p4;{ switch(a){ case 0: q = x + first[a] + y; String[] second = {"-","×","÷"}; int b=(int) (Math.random()*3); int z =(int) (Math.random() *100); if (b==0){ p=x+y; if(p>=z){ q=q+second[b]+z; sum=p-z; q=q+"="+sum; key(q); return q; }else{ calculate(); }
else if(d==2){ p3=x*y; z2 = (int) (Math.random() * 10) + 1; y= (int) (Math.random() * 2) * z2; if(z2!=0&&y>z2&&y%z2==0){ sum=p3/z2; q=q+ four[d]+z2; q=q+"="+sum; key (q); return q; }else{ calculate(); }//當第一個運算符爲乘號時,第二個運算符爲除號時 }
File file = new File("src/result.txt"); System.out.println("2017013083"); /* for(int i=0;i<Data;i++){ String Hresult= calculate(); } */ FileWriter writer = new FileWriter(file, false); writer.write("20170130838"); writer.write("\r\n"); for(int i=0;i<Data;i++){ String Hresult= calculate(); writer.write(Hresult); writer.write("\r\n"); } writer.close();
只展現了部分代碼,詳情代碼請見倉庫地址。
四:測試結果
控制檯界面:
文件界面:
五:我的感悟
本次做業對我來講是一個挑戰,我在以前的學業項目中通常承擔前端頁面製做,文件撰寫等任務,但對於敲代碼寫程序是很是陌生的,且個人java學的很是淺,基本沒有上手練過。本次做業我花了大量時間來瀏覽上一屆學長學姐的代碼,想經過這種方式來掌握他們作這次做業時的一些具體思路和相關算法,但其實真正本身徹底獨立編程仍然對我來講是個巨大的難題。這次做業讓我在從新學習java語言的煎熬與編譯經過時的喜悅並重之中度過,也讓我意識到博客的優秀之處,上面有太多大佬們分享的經驗與方法,這將成爲我從此的學習資源。但願從此個人編程能能夠進步!