網絡四則運算結對編程
阿新 • • 發佈:2018-03-25
結果 con a + b clas des ring ann 自己的 new
一、結對信息
項目組合 郭煒埕 201521123065 鄭曉麗 201521123066
項目地址 (https://gitee.com/vicheng/four_operations/tree/master)
二、結對編程
1、需求分析
原來的代碼只實現簡單的兩位數之間的加減乘除,而我們為需要改進其功能,實現了三位數的計算,並加了括號
改進後界面:
改進前類圖:
改進後類圖:
2、程序設計
3、代碼展示
關鍵代碼展示:
···
double g(double a, double b, String m) {
double v = 0; switch (m) { case "+": v = a + b; break; case "-": v = a - b; break; case "×": v = a * b; break; case "÷": v = a / b; break; } return v; } private List<Object> trans(String s) { Stack<Character> op = new Stack<Character>(); ArrayList<Object> list = new ArrayList<Object>(); Pattern P = Pattern.compile("[0-9]+(\\.[0-9]+)?"); // 正則表達式來處理帶小數點的數字 int i = 0; while (i < s.length()) { char c = s.charAt(i); if (c >= ‘0‘ && c <= ‘9‘) { String s1 = s.substring(i); Matcher m = P.matcher(s1); if (m.find()) { // 取匹配到的第一個數字 s1 = m.group(); list.add(s1); } i = i + s1.length(); continue; } else if (c == ‘(‘) { op.push(c); } else if (c == ‘)‘) { char p = op.pop(); while (p != ‘(‘) { list.add(p); p = op.pop(); } } else if (c == ‘+‘ || c == ‘-‘) { while (!op.isEmpty() && (op.peek() == ‘+‘ || op.peek() == ‘-‘ || op.peek() == ‘ב || op.peek() == ‘÷‘)) { list.add(op.pop()); } op.push(c); } else if (c == ‘ב || c == ‘÷‘) { while (!op.isEmpty() && (op.peek() == ‘ב || op.peek() == ‘÷‘)) { list.add(op.pop()); } op.push(c); } i++; } while (!op.isEmpty()) { list.add(op.pop()); } return list; }
}
```
4、程序運行
輸入習題數,有選擇語言的功能
簡體中文
d
繁體中文
英文
開始
進入運算界面,開始計時
輸入答案
5、測試
(1)、對原先的代碼進行的代碼覆蓋率的測試
(2)、對改進後的代碼進行單元測試(主要測試算法)
測試代碼:
測試結果:
(3)、對改進後的代碼進行覆蓋率測試
解讀:類似與於Arithmetic裏面switch語句部分執行,選擇性語句
或者檢測異常,如果沒有異常,裏面的語句便不會執行
諸如此類的會降低覆蓋率
6、PSP表格
PSP2.1 | 個人開發流程 | 預估耗費時間(分鐘) |
---|---|---|
Planning | 計劃 | 18 |
· Estimate | 明確需求和其他相關因素,估計每個階段的時間成本 | 10 |
· Analysis | 需求分析 (包括學習新技術) | 6 |
· Design Review | 設計復審 | 4 |
· Coding Standard | 代碼規範 | 5 |
· Design | 具體設計 | 20 |
· Coding | 具體編碼 | 36 |
· Code Review | 代碼復審 | 7 |
· Test | 測試(自我測試,修改代碼,提交修改) | 22 |
· | 並提出過程改進計劃 | 10 |
7、碼雲提交記錄
8、小結感受
我們的功能還待完善,在輸入答案欄需要輸入一位小數,如果答案是無限不循環小數,還沒法實現保留幾位小數的功能。兩個人結對編程相當於合作,
要互相了解,並完成自己的任務。在團隊中認識到自己的不足,也能看到隊友身上的優點。繼續努力學習
附上圖片
網絡四則運算結對編程