1view code//中綴轉字尾
2public string solveorder(string in, hashmapprecedence)
17//
如果優先順序比棧頂的大
18if (ops.isempty() || (precedence.get(s) >precedence.get(ops.peek()))) else31}
32 out[p] =s ;
33 p ++;34}
35}36//
若操作符棧不為空,就依次將剩餘的操作符放入out陣列
37while (!ops.isempty())
42return
out;43}
4445
//優先順序的定義
46public hashmappriorityinfo()
5657
public
double
calculateout(string out)
64system.out.println();
65assert (out != null && out.length != 0);
66//
運算元棧
67 stackstack = new stack();
68for (int i = 0; i < out.length; i++) else77}
78return
stack.pop();79}
8081
//判別是否是數字
82public
boolean
isnumber(string s)
8788
public
static
double eval(string op, double val1, double
val2)
99public
static
void
main(string args)
109system.out.println();
110 cal cc = new
cal() ;
111 hashmapprecedence =cc.priorityinfo();
112 string out =cc.solveorder(in, precedence);
113 system.out.println("所輸入的算式結果為:" +cc.calculateout(out));
114115 }
執行結果如下:
單元測試**如下:
測試中綴轉字尾
cal c1=new cal();測試計算結果是否正確string inbefore = "1+2*3";
string in = inbefore.split("") ;
@test
public void testsolveorder()
@test測試是否是數字:public void testcalculateout()
@test測試eval()單步計算結果:public void testisnumber()
@test執行結果如下:public void testeval()
現在實現的手動輸入字串算式,scanner識別,拆分在進行計算。
四則運算psp:
四則運算單元測試
專案成員 武志遠,李權 對於四則運算中的單元測試以兩個不同功能的函式為示例展示。仍然採用junit4的單元測試框架 下面展示的是沒有括號和分數情況下的計算函式 docalculation的 片段 對生成的4則運算進行計算 public static double docalculation stri...
四則運算單元測試
1 測試資料 螢幕 20 道題 數字範圍 10以內 無乘除 無負數 原因 檢查列印方式的選擇是否出錯,檢查數字範圍,檢查有無乘除是否出錯,檢查加減是否有負數,檢查出題數量是否正確。結果 分析 實現我自己的預期要求,結果中乘除餘數負數產生於真分數計算,沒有對真分數進行限制,是缺陷。2 測試資料 螢幕 ...
四則運算2單元測試
1 include2 include3 include4 void display int number,int l,int mul,int num,int neg,int remainder 列印方式控制輸出列數518 else if mul 1 有乘除法 1922 for int j 0 j 2...