20 12 17 基於棧做乙個計算器

2021-10-12 07:37:38 字數 1498 閱讀 1387

package stack;

public

class

calculator

else

}else

}else

else}}

index++;if

(index >= expression.

length()

)}while

(true

) num1 = numberstack.

pop();

num2 = numberstack.

pop();

oper = operstack.

pop();

res = numberstack.

cal(num1, num2, oper)

; numberstack.

push

(res)

;//入棧

}//將數棧的最後數,pop出,就是結果

int res2 = numberstack.

pop();

system.out.

printf

("表示式 %s = %d"

, expression, res2);}

}class

arraystack2

//判斷棧滿 是在arraystack內部的方法,所以可以直接呼叫內部的引數 只要有返回數就是有返回值的,這裡是布林數

public

boolean

isfull()

public

boolean

isempty()

//向棧中新增數 push

public

void

push

(int merber)

else

}//棧中彈出數 當需要有返回值的時候,需要返回異常

public

intpop()

else

}public

void

show()

else}}

//有下面的這些函式的根本原因是:因為傳入的是字串,要把字串理解了

//判斷運算子的優先順序

public

intpriority

(int oper)

else

if(oper ==

'+'|| oper ==

'-')

else

}//判斷是不是乙個運算子

public

boolean

isoper

(char val)

public

intpeek()

//計算的方法

public

intcal

(int num1,

int num2,

int oper)

return res;

}}

python 做乙個簡單的計算器

def jisuanqi 實現加減乘除運算 a,b,c shuru if c z a b print s s 的和為 s a,b,z elif c z a b print s s 的差為 s a,b,z elif c z a b print s s 的積為 s a,b,z elif c z a b ...

乙個基於c GUI的計算器

先上圖 2實驗過程 分析 這個計算器主要有三種不同的按鍵,即數字鍵,演算法操作符鍵,等於鍵。每一種不同的按鍵用同乙個事件處理函式來處理。為了實現連續操作的功能,所以把運算元抽象成前乙個數和後乙個數。把操作符也抽象成前乙個操作符和當前操作符,每次輸入完當前操作符後,就執行前乙個數和當前數利用前乙個操作...

做乙個iOS的簡單計算器 二

定義乙個處理基本操作的類 class calculatetool nsobject 初始化運算子棧 func initoptrstack 壓入運算數 func pushoperand operand string 壓入運算子 func pushoperator optr string 彈出乙個運算數...