结队作业,小学生3年级数学题出题器
結對作業,
學號1:211606308 江東
學號2:211606306 黃柏濤
一、預估與實際
| Planning | 計劃 | ||
| Estimate | ? 估計這個任務需要多少時間 | 1200 | 1365 |
| Development | 開發 | ||
| Analysis | ? 需求分析 (包括學習新技術) | 200 | 240 |
| Design Spec | ? 生成設計文檔 | 60 | 70 |
| Design Review | ? 設計復審 | 60 | 70 |
| Coding Standard | ? 代碼規范 (為目前的開發制定合適的規范) | 80 | 90 |
| Design | ? 具體設計 | 80 | 90 |
| Coding | ? 具體編碼 | 60 | 70 |
| Code Review | ? 代碼復審 | 20 | 40 |
| Test | ? 測試(自我測試,修改代碼,提交修改) | 30 | 30 |
| Reporting | 報告 | 70 | 90 |
| Test Repor | ? 測試報告 | 60 | 70 |
| Size Measurement | ? 計算工作量 | 20 | 35 |
| Postmortem & Process Improvement Plan | ? 事后總結, 并提出過程改進計劃 | 50 | 55 |
| 合計 | 1842 |
二、需求分析
我通過上網的方式了解到,小學三年級數學有如下的幾個特點:
- 特點1:兩個加數應該在100以內
- 特點2:減法的計算結果不能出現負數
- 特點3:除數不能為0
- 特點4:有余數要打出余數
特點5:小學三年級已經學會了四則運算的加減乘除混合運算以及他的優先級規則
...
三、設計
1. 設計思路
這個程序有三個大的方法構成,分別為show1()與show2()show3()來顯示并將小學1,2,3年級計算題目的結果輸入到out.txt,之前我們已經完成了1,2年級的出題器,這次主要是初步完成三年級的出題器.
- ...
2. 實現方案
技術關鍵點
1為了確保輸出的兩數之和小于100,兩數之差大于0,除數不為0,需要設計一些算法
2當兩數相減出現負數的時候把兩數交換位置避免出現負數,優化了一年級的算術題
3小學三年級數學已經學會了四則運算的優先級規則
- 準備工作:先在Github上創建倉庫,克隆到本地,完成后提交。
- 技術關鍵點:要現在Eclipse先打出代碼然后把代碼輸入到out.txt文件后,要在cmd上運行檢測。在基礎的代碼上還要加入四則運算。
四、編碼
通過按照自己的設計方案來寫代碼,遇到不會的知識點就看小靜老師上學期的PPT與作業,上網百度了逆波蘭表達式的算法,將我們平常習慣用的中綴表達式改寫成后綴表達式來解決運算時的優先級問題
1. 調試日志
- 運用逆波蘭公式的時候忘記加入優先級,導致只能按順序加減乘除,不會出現先乘除后加減的正確結果。
2. 關鍵代碼
private static void Reverse Polish Notation(String[] strArr){
String str = "+-/";
Stack stack = new Stack();
//遍歷數組中的每一個元素
for(String s : strArr){
if(!str.contains(s)){
//如果是數字,放入棧中
stack.push(s);
}else{
int a = Integer.valueOf(stack.pop());
int b = Integer.valueOf(stack.pop());
switch(s){
case "+" :
stack.push(String.valueOf(a+b));
break;
case "-" :
stack.push(String.valueOf(b-a));
break ;
case "" :
stack.push(String.valueOf(a*b));
break;
case "/" :
stack.push(String.valueOf(b/a));
break ;
}
}
}
System.out.println(stack.pop());
3. 代碼規范
- 方法名、參數名、成員變量、局部變量都統一使用 lowerCamelCase 風格,必須遵循駝峰形式。
- 代碼中的命名均不能以下劃線或美元符號開始,也不能一下劃線或美元符號結束。
- 類型與中括號緊挨相連來定義數組。
- 代碼中命名只能用英文。
四、編碼
隨機生成數字數組與運算符數組,將數組輸出表達式后,上網查找關于逆波蘭表達式的算法將運算結果按照算法的優先級運算出來,并輸出到文本.在github網站上結對的時候,不知道是校園網的原因還是其他的原因,結隊伙伴的郵箱一直收不到搭檔邀請的鏈接,后來我發現可以copy link將邀請鏈接直接發給搭檔,在百度逆波蘭算法后,我們兩人仍然還是無法理解透徹,用的不是很好,后來在同學的幫忙講解下終于才完成了這一段的代碼編寫,屬實不容易啊,最后的四則運算輸出答案還在努力編寫中.
五、測試
六、總結
這一次的實驗是在第一次的基礎上提升,加入了四則運算與四則運算的優先級的問題,使得代碼量就大大的提升,代碼過程中遇到了許許多多的問題,截至到今天12點還是沒有完成代碼的輸出,后續會在GITHUB上繼續更新的.
轉載于:https://www.cnblogs.com/a211756221/p/9673291.html
總結
以上是生活随笔為你收集整理的结队作业,小学生3年级数学题出题器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android AsyncTask源码解
- 下一篇: LINUX安装REDIS集群