小學四則運算練習軟件項目報告
Github的倉庫主頁鏈接地址:https://github.com/cy0325/CulClation.git
一、實驗要求
- 為了讓小學生得到充分鍛煉,每個練習題至少要包含2種運算符。同時,由於小學生沒有分數與負數的概念,你所出的練習題在運算過程中不得出現負數與非整數,比如不能出 3/5+2=2.6,2-5+10=7等算式。
- 練習題生成好後,將你的學號
- 當程序接收的參數為4時,以下為輸出文件示例。
二、需求分析
- 本實驗要求隨機生成四則運算,並給出答案。為了簡化程序的復雜性,隨機生成整型數組,然後把四個符號存入到數組,隨機取下標,調用JavaScript函數庫計算結果即可。之後將四則運算和學號姓名保存到TXT文檔中。
三、功能實現
1、實現了隨機生成5位數的隨機運算。
2、每個數字在0-100之間。
3、完成了基本的運算。
4、運用輸出流將學號姓名和四則運算及其結果保存到result.txt中。
四、設計實現
在main函數中先調用隨機函數生成有五位數的隨機數組,將四則運算符存放到數組中,調用隨機函數生成四個對應的數組下標,將整型數組中的數個四則運算符隨機匹配,調用JavaScript函數庫,計算所得結果,輸出即可。
五、測試運行
六、核心代碼
1 ScriptEngine javascript = new ScriptEngineManager().getEngineByName("JavaScript");2 PrintStream ps = null; 3 String exp="";//表達式 4 double result = 0; //結果 5 char[] c={‘+‘,‘-‘,‘*‘,‘/‘}; 6 //文件操作 7 try { 8 File file =new File("./result.txt"); 9 ps = new PrintStream(new FileOutputStream(file)); 10 } catch (FileNotFoundException e) { 11 e.printStackTrace(); 12 } 13 //輸入 14 Scanner sc=new Scanner(System.in); 15 System.out.println("請輸入你要產生幾個表達式:"); 16 int number=sc.nextInt(); 17 ps.println("201571030101 曹陽"); 18 for(int j=0;j<number;j++) 19 { 20 //產生隨機數數組 21 int[] array = new int[5]; 22 Random r = new Random(); 23 for (int i = 0, n = array.length; i < n; i++) 24 { 25 array[i] = r.nextInt(100); 26 } 27 // System.out.println(Arrays.toString(array)); 28 Random ran = new Random(); 29 int index=ran.nextInt(c.length); 30 int index1=ran.nextInt(c.length); 31 int index2=ran.nextInt(c.length); 32 int index3=ran.nextInt(c.length); 33 exp = String.valueOf(""+array[0]+c[index]+array[1]+c[index1]+array[2]+c[index2]+array[3]+c[index3]+array[4]); 34 try { 35 result = Double.parseDouble(String.valueOf(javascript.eval(exp))); 36 } catch (ScriptException e) { 37 e.printStackTrace(); 38 } 39 if(Math.floor(result)==result&&result>0&&result<99999) { 40 System.out.println(exp + "=" + (int) result); 41 ps.println(exp + "=" + (int) result); 42 } 43 else j--; 44 45 } 46 47
七、總結
本次實驗,我明白了軟件工程的龐大性,以及設計一個程序所花費的時間並不是想象中那麽少的,雖然這個實驗完成了,但是還是有部分設計不太符合題目要求,希望老師指正批評。
八、展示PSP
PSP2.1 |
任務內容 |
計劃完成需要的時間(min) |
實際完成需要的時間(min) |
Planning |
計劃 |
30 |
40 |
Estimate |
估計這個任務需要多少時間,並規劃大致工作步驟 |
30 |
30 |
Development |
開發 |
200 |
300 |
Analysis |
需求分析 (包括學習新技術) |
15 |
30 |
Design Spec |
生成設計文檔 |
10 |
20 |
Design Review |
設計復審 (和同事審核設計文檔) |
10 |
20 |
Coding Standard |
代碼規範 (為目前的開發制定合適的規範) |
5 |
10 |
Design |
具體設計 |
30 |
30 |
Coding |
具體編碼 |
100 |
120 |
Code Review |
代碼復審 |
10 |
20 |
est |
測試(自我測試,修改代碼,提交修改) |
10 |
20 |
Reporting |
報告 |
30 |
60 |
Test Report |
測試報告 |
25 |
30 |
Size Measurement |
計算工作量 |
2 |
3 |
Postmortem & Process Improvement Plan |
事後總結 ,並提出過程改進計劃 |
3 |
10 |
小學四則運算練習軟件項目報告