工厂类计算器

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);
 }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值