add, subtract, multiply, divide, clear
This commit is contained in:
246
calculator.jsp
246
calculator.jsp
@ -1,4 +1,4 @@
|
||||
<%@ page contentType="text/html; charset=big5" %>
|
||||
<%@ page contentType="text/html; charset=utf-8" %>
|
||||
<html>
|
||||
<head>
|
||||
<title> Calculator </title>
|
||||
@ -6,99 +6,161 @@
|
||||
|
||||
<body>
|
||||
<p>Calculator</p>
|
||||
<%
|
||||
String inputdata = request.getParameter("symbol");
|
||||
|
||||
if(inputdata == null) {
|
||||
|
||||
%>
|
||||
|
||||
<form action="calculator.jsp" method=post>
|
||||
<p>
|
||||
<input name="display">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="%">
|
||||
<input name="symbol" type="submit" value="root">
|
||||
<input name="symbol" type="submit" value="square">
|
||||
<input name="symbol" type="submit" value="reciprocal">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="CE">
|
||||
<input name="symbol" type="submit" value="C">
|
||||
<input name="symbol" type="submit" value="X">
|
||||
<input name="symbol" type="submit" value="/">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="7">
|
||||
<input name="symbol" type="submit" value="8">
|
||||
<input name="symbol" type="submit" value="9">
|
||||
<input name="symbol" type="submit" value="*">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="4">
|
||||
<input name="symbol" type="submit" value="5">
|
||||
<input name="symbol" type="submit" value="6">
|
||||
<input name="symbol" type="submit" value="-">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="1">
|
||||
<input name="symbol" type="submit" value="2">
|
||||
<input name="symbol" type="submit" value="3">
|
||||
<input name="symbol" type="submit" value="+">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="+-">
|
||||
<input name="symbol" type="submit" value="0">
|
||||
<input name="symbol" type="submit" value=".">
|
||||
<input name="symbol" type="submit" value="=">
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<%
|
||||
}
|
||||
else {
|
||||
|
||||
try{
|
||||
//int data = Integer.parseInt(inputdata);
|
||||
out.println(inputdata);
|
||||
%>
|
||||
<form action="calculator.jsp" method=post>
|
||||
<p>
|
||||
<input name="display">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="%">
|
||||
<input name="symbol" type="submit" value="root">
|
||||
<input name="symbol" type="submit" value="square">
|
||||
<input name="symbol" type="submit" value="reciprocal">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="CE">
|
||||
<input name="symbol" type="submit" value="C">
|
||||
<input name="symbol" type="submit" value="X">
|
||||
<input name="symbol" type="submit" value="/">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="7">
|
||||
<input name="symbol" type="submit" value="8">
|
||||
<input name="symbol" type="submit" value="9">
|
||||
<input name="symbol" type="submit" value="*">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="4">
|
||||
<input name="symbol" type="submit" value="5">
|
||||
<input name="symbol" type="submit" value="6">
|
||||
<input name="symbol" type="submit" value="-">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="1">
|
||||
<input name="symbol" type="submit" value="2">
|
||||
<input name="symbol" type="submit" value="3">
|
||||
<input name="symbol" type="submit" value="+">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="+-">
|
||||
<input name="symbol" type="submit" value="0">
|
||||
<input name="symbol" type="submit" value=".">
|
||||
<input name="symbol" type="submit" value="=">
|
||||
</p>
|
||||
</form>
|
||||
<%
|
||||
<%!
|
||||
// 存運算元的值
|
||||
float[] number = {0, 0};
|
||||
// 在第幾個運算元
|
||||
int i = 0;
|
||||
// 使用中的運算子
|
||||
int oprator = 0;
|
||||
// 加法
|
||||
void add() {
|
||||
number[0] += number[1];
|
||||
}
|
||||
catch(NumberFormatException e) {
|
||||
throw new NumberFormatException("您輸入的不是整數");
|
||||
}
|
||||
// 減法
|
||||
void subtract() {
|
||||
number[0] -= number[1];
|
||||
}
|
||||
// 乘法
|
||||
void multiply() {
|
||||
number[0] *= number[1];
|
||||
}
|
||||
// 除法
|
||||
void divide() {
|
||||
number[0] /= number[1];
|
||||
}
|
||||
// 取餘
|
||||
void remainder() {
|
||||
number[0] %= number[1];
|
||||
}
|
||||
//清除
|
||||
void clear() {
|
||||
number[0] = 0;
|
||||
number[1] = 0;
|
||||
}
|
||||
%>
|
||||
|
||||
<form action="calculator.jsp" method=post>
|
||||
<p>
|
||||
<input name="symbol" type="submit" value="%">
|
||||
<input name="symbol" type="submit" value="root">
|
||||
<input name="symbol" type="submit" value="square">
|
||||
<input name="symbol" type="submit" value="reciprocal">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="CE">
|
||||
<input name="symbol" type="submit" value="C">
|
||||
<input name="symbol" type="submit" value="X">
|
||||
<input name="symbol" type="submit" value="/">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="7">
|
||||
<input name="symbol" type="submit" value="8">
|
||||
<input name="symbol" type="submit" value="9">
|
||||
<input name="symbol" type="submit" value="*">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="4">
|
||||
<input name="symbol" type="submit" value="5">
|
||||
<input name="symbol" type="submit" value="6">
|
||||
<input name="symbol" type="submit" value="-">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="1">
|
||||
<input name="symbol" type="submit" value="2">
|
||||
<input name="symbol" type="submit" value="3">
|
||||
<input name="symbol" type="submit" value="+">
|
||||
<br>
|
||||
<input name="symbol" type="submit" value="+-">
|
||||
<input name="symbol" type="submit" value="0">
|
||||
<input name="symbol" type="submit" value=".">
|
||||
<input name="symbol" type="submit" value="=">
|
||||
</p>
|
||||
</form>
|
||||
|
||||
}
|
||||
<%
|
||||
// 輸入的字元
|
||||
|
||||
try {
|
||||
String inputdata = request.getParameter("symbol");
|
||||
if(inputdata == null) {
|
||||
inputdata = "0";
|
||||
}
|
||||
|
||||
if (inputdata.equals("CE")) {
|
||||
clear();
|
||||
}
|
||||
// 如果是數字就累積輸入
|
||||
else if (inputdata.equals("0") ||
|
||||
inputdata.equals("1") ||
|
||||
inputdata.equals("2") ||
|
||||
inputdata.equals("3") ||
|
||||
inputdata.equals("4") ||
|
||||
inputdata.equals("5") ||
|
||||
inputdata.equals("6") ||
|
||||
inputdata.equals("7") ||
|
||||
inputdata.equals("8") ||
|
||||
inputdata.equals("9")) {
|
||||
// 輸入多位數字
|
||||
number[i] *= 10;
|
||||
number[i] += Float.parseFloat(inputdata);
|
||||
}
|
||||
else {
|
||||
// 如果有選擇的運算子
|
||||
if (oprator != 0) {
|
||||
switch (oprator) {
|
||||
case 1:
|
||||
add();
|
||||
break;
|
||||
case 2:
|
||||
subtract();
|
||||
break;
|
||||
case 3:
|
||||
multiply();
|
||||
break;
|
||||
case 4:
|
||||
divide();
|
||||
break;
|
||||
case 5:
|
||||
remainder();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (inputdata.equals("=")) {
|
||||
// 清除運算子
|
||||
oprator = 0;
|
||||
// 回到第一個運算元
|
||||
i = 0;
|
||||
number[1] = 0;
|
||||
}
|
||||
else {
|
||||
// 回到第二個運算元
|
||||
i = 1;
|
||||
number[1] = 0;
|
||||
// 把運算
|
||||
if (inputdata.equals("+")) {
|
||||
oprator = 1;
|
||||
}
|
||||
else if (inputdata.equals("-")) {
|
||||
oprator = 2;
|
||||
}
|
||||
else if (inputdata.equals("*")) {
|
||||
oprator = 3;
|
||||
}
|
||||
else if (inputdata.equals("/")) {
|
||||
oprator = 4;
|
||||
}
|
||||
else if (inputdata.equals("%")) {
|
||||
oprator = 5;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 印出現在的數字
|
||||
out.println(number[i]);
|
||||
}
|
||||
catch (NumberFormatException e) {
|
||||
// 錯誤訊息
|
||||
throw new NumberFormatException("您輸入的不是整數");
|
||||
}
|
||||
%>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user