Java 面向对象 综合练习模拟计算器的实现

Java 面向对象 综合练习模拟计算器的实现

一、语言和环境

  1. 实现语言:JAVA。
  2. 开发环境:Eclipse。
    二、要求及评分
    使用接口和异常处理模拟计算器的实现,功能要求如下:
    (1)定义计算接口(Caculate)。(5分)
public interface Caculate {
 
}

(2)在Caculate接口中定义计算的抽象方法calc,包含两个整型参数,分别表示两个操作数。(10分)

public interface Caculate {	
  public void calc(int x, int y);
  
}

(3)定义加(Jia),减(Jian),乘(Cheng),除(Chu)四个类,分别实现接口Caculate,在各自类中分别重写计算的方法,完成各自的加,减,乘,除的操作,在除法的操作中要求判断除数,除数不可以为0。(加减乘每个类10分,其中正确定义类实现接口5分,方法重写正确5分,除类15分,类正确实现5分,方法正确10分,如未判断除数为0,则扣掉5分)

public class Jia implements Caculate {
  @Override
  public void calc(int x, int y) {
    System.out.println(x + "+" + y + "=" + (x + y));
  }
--------------------------------------------------------------------------
public class Jian implements Caculate {
  @Override
  public void calc(int x, int y) {
    System.out.println(x + "-" + y + "=" + (x - y));
  }
}
--------------------------------------------------------------------------
public class Cheng implements Caculate {

  @Override
  public void calc(int x, int y) {
    System.out.println(x + "*" + y + "=" + (x * y));
  }
}
--------------------------------------------------------------------------
public class Chu implements Caculate {

  @Override
  public void calc(int x, int y) {
    if (y == 0) {
      System.out.println("除数不能为0");
    } else {
      System.out.println(x + "/" + y + "=" + (x / y));
    }
  }
}
}

(4) 创建类(Factory),在类中定义一个静态方法calcManage方法,方法传递一个char类型或String类型的操作符参数,根据传递的操作符建立不同的操作类型对象,以接口的形式返回(15分,正确创建类5分,方法10分,不是静态方法扣3分)

public class Factory {
	//工厂模式
  public static Caculate calcManage(String str) {
    if ("+".equals(str)) {
      return new Jia();
    } else if ("-".equals(str)) {
      return new Jian();
    } else if ("*".equals(str)) {
      return new Chrng();
    } else if ("/".equals(str)) {
      return new Chu();
    }
    return null;
  }
}

(5) 创建Test测试类,在测试类中从控制台输入两个整数和一个操作符号,调用Factory中的静态方法,然后通过返回的接口对象,完成计算操作,在输入整数时为了避免输入类型错误要进行异常处理,输入错误的类型时,在控制台打印错误信息“请输入整数”,用红色字体显示(15分,正确调用方法传递参数5分,异常处理10分)

public class Text {
  public static void main(String[] args) {
    try {
      Scanner sc = new Scanner(System.in);
      System.out.println("请输入第一个操作数:");
      int x = sc.nextInt();
      System.out.println("请输入第二个操作数:");
      int y = sc.nextInt();
       System.out.println("请输入操作符:");
         String c = sc.next();
      
     Caculate  dsb = Factory.calcManage(c); //-1111111111111111111111111111111111111


       dsb.calc(x, y);  //执行dsb中的calc方法  x=第一个操作数 y=第二个操作数 
       
       
       
       
    } catch (Exception e) {
      System.err.println("请输入整数");
      e.printStackTrace();
    }

  }
}

(5)注意编码规范,起名规则,注意添加必要的注释(10分,规范5分,注释5分)
运行后的效果如图所示:
正确情况:

Java 面向对象 综合练习模拟计算器的实现_第1张图片
输入不正确情况:
Java 面向对象 综合练习模拟计算器的实现_第2张图片

除数为0的情况:
Java 面向对象 综合练习模拟计算器的实现_第3张图片

你可能感兴趣的:(Java综合练习)