201571030114隨機四則運算

一:需求分析javascript

         

要求以下:
  • 程序可接收一個輸入參數n,而後隨機產生n道加減乘除練習題,每一個數字在 0 和 100 之間,運算符在3個到5個之間。
  • 爲了讓小學生獲得充分鍛鍊,每一個練習題至少要包含2種運算符。同時,因爲小學生沒有分數與負數的概念,你所出的練習題在運算過程當中不得出現負數與非整數,好比不能出 3/5+2=2.6,2-5+10=7等算式。
  • 練習題生成好後,將你的學號與生成的n道練習題及其對應的正確答案輸出到文件「result.txt中,不要輸出額外信息,文件目錄與程序目錄一致。
  • 當程序接收的參數爲4時,如下爲輸出文件示例。

二:功能設計java

       整個程序可分爲三大部分git

            2. 1:隨機生成一個算式github

                        這個部分作的還不是很完善,利用兩個for循環來隨機生成算式,利用StringBuilder動態字符串來接收隨機生成的算式,並加入到ArrayList數組中數組

            2.2:計算這個算式app

                       計算部分,有兩種方法,第一種是利用 javascript腳本引擎,另外一種是利用逆波蘭式中和棧來解決,相比較而言第一種較爲簡單函數

            2. 3:輸出到文本文件測試

三:設計實現ui

        1:設計程序流程圖、編碼

         2:接收隨機生成算式的個數來進行循環

         3:隨機產生運算符,當產生'-'或者'/'時加以判斷併產生合適的數字,並將隨機產生的算式加入數組

         4:遍歷數組進行計算和輸出         

四:測試運行

         

            

 

五:核心代碼

        

 //使用加強for循環的方法遍歷
        try {  
            FileWriter fw = new FileWriter("lilei.txt");//輸出  
            BufferedWriter bw = new BufferedWriter(fw);  
            bw.append("201571030114"); 
            bw.newLine();
            for(String e:equations) {
                e=e+"="+se.eval(e.toString());//計算
                System.out.println(e);
                bw.write(e.toString()); 
                bw.newLine();
             }
             bw.close();  
                fw.close(); 
        } catch (Exception ee) {  
            ee.printStackTrace();  
        }  

 

 

 

六:總結

           對於此次的做業由於一開始對於運算符的優先級考慮不完善,致使後面出現了不少問題,因此代碼功能也不是很完善,很長時間沒有寫過java了,要花不少的時間來複習和熟悉java,能力有限,時間也有限,之後有時間會進行改進。

 

PSP:           github地址:https://github.com/Lei-surely/Calculate

 

PSP 任務內容 計劃完成須要的時間(min) 實際完成須要的時間(min)
  計劃準備 60 150
Estimate 需求分析,函數實現 30 40
  開發 30 30
Analysis 需求分析 10 20
Design Spec 設計 30 30
Design Review 設計複審 5 10
Design 具體設計 5 10
Coding 具體編碼 60 150
Code Review 代碼複審,查找語法錯誤 2 2
Test 測試 30 150
  報告 10 30
Test Report 經測試,程序編譯正確,運行結果正確,徹底符合要求 2 2
Size Measurement 由於好久沒有用過java因此重點要花不少時間來複習java語言,找回思路 2 2
Postmortem 這個程序還存在問題,主要在減法和除法部分有時會出現小數的狀況,會繼續改進 5 5
相關文章
相關標籤/搜索