import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class Operate{
double numA;
double numB;
public double getResult(double numA,double numB){
double result =0d;
return result;
}
}
class AddOperate extends Operate{
public double getResult(double numA,double numB){
double result =0d;
result=numA+numB;
return result;
}
}
class SubOperate extends Operate{
public double getResult(double numA,double numB){
double result =0d;
result=numA-numB;
return result;
}
}
class MulOperate extends Operate{
public double getResult(double numA,double numB){
double result =0d;
result=numA*numB;
return result;
}
}
class DivOperate extends Operate{
public double getResult(double numA,double numB){
double result =0d;
try {
if (numB == 0) {
throw new Exception("除數不能爲零!");
}
} catch (Exception e) {
e.printStackTrace();
}
result=numA/numB;
return result;
}
}
class Factory{
public static Operate createOperate(char c){
Operate op=null;
switch (c){
case '+':
op=new AddOperate();
break;
case '-':
op=new SubOperate();
break;
case '*':
op=new MulOperate();
break;
case '/':
op=new DivOperate();
break;
}
return op;
}
}
public class Test {
public static void main(String [] args)
{
double numA = 0;
char c = 0;
double numB = 0;
try {
System.out.println("請輸入第一個數字:");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
numA = Double.parseDouble(br.readLine());
System.out.println("請選擇運算方法(+,-,*,/):");
BufferedReader br2=new BufferedReader(new InputStreamReader(System.in));
c = br2.readLine().charAt(0);
System.out.println("請輸入第二個數字:");
BufferedReader br3=new BufferedReader(new InputStreamReader(System.in));
numB = Double.parseDouble(br.readLine());
} catch (Exception e) {
e.printStackTrace();
}
Operate op=Factory.createOperate(c);
double i=op.getResult(numA, numB);
System.out.println(i);
}
}