week3 四則運算 單元測試

2022-03-13 08:48:15 字數 2078 閱讀 2900

1

//中綴轉字尾

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 }

view code

執行結果如下:

單元測試**如下:

測試中綴轉字尾

cal c1=new cal();

string inbefore = "1+2*3";

string in = inbefore.split("") ;

@test

public void testsolveorder()

測試計算結果是否正確

@test

public void testcalculateout()

測試是否是數字:

@test

public void testisnumber()

測試eval()單步計算結果:

@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...