写一个输入两位数,实现加减乘除的程序。并和同学比较一下各种的功能、实现方法的异同等等。写出自己程序存在的缺陷,以及比别人做的好的地方。

我的代码

test类

package cn.linqi.com;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        System.out.println("========我的计算器========");
        System.out.println("请输入第一个数:");
        Scanner a = new Scanner(System.in);
        int num1 = a.nextInt();
        System.out.println("请输入第二个数");
        Scanner b = new Scanner(System.in);
        int num2 = b.nextInt();
        System.out.println("请输入运算符+,-,*,/");
        Scanner c = new Scanner(System.in);
        String opt = c.next();
        if ("+".equals(opt)) {
            Add add = new Add();
            int result = add.add(num1, num2);
            System.out.println("结果为:" + result);
        } else if ("-".equals(opt)) {
            Sub sub = new Sub();
            int result = sub.sub(num1, num2);
            System.out.println("结果为:" + result);
        }

        else if ("*".equals(opt)) {
            Mul mul = new Mul();
            int result = mul.mul(num1, num2);
            System.out.println("结果为:" + result);
        }

        else if ("/".equals(opt)) {
            if (num2 != 0) {
                Div div = new Div();
                int result = div.div(num1, num2);
                System.out.println("结果为:" + result);
            } else {
                System.out.println("除数不能为0,请重新输入~");
            }
        } else {
            System.out.println("输入有误,请重新输入运算符");
        }
    }
}

 

Add类

 

package cn.linqi.com;

public class Add {  
  
//加法运算 public int add(int num1, int num2) { System.out.println("这两个数的和是:"); return num1+num2; } }

 

Sub类

package cn.linqi.com;

public class Sub { 
  
// 减法运算    public int sub(int num1, int num2) {

    System.out.println("这两个数相减:");    return num1 - num2; } }

Mul类

package cn.linqi.com;

public class Mul { 
 
  // 乘法运算    public int mul(int num1, int num2) {
   
     System.out.println("这两个数相乘为:");     return num1 * num2; } }

Div类

package cn.linqi.com;

public class Div { 

 // 除法运算

 public int div(int num1, int num2) { 

    System.out.println("这两个数的相除为:"); 

    return num1 / num2;

 }
}

 

说说自己程序存在的缺陷,以及比别人做的好的地方。

  缺陷

      (1)没有考虑到,当对方输入的不是数字时的异常处理。

    (2)计算器的重复使用性,例如不能同时做加,减的运算,只能运行一次,计算一次。

    (3)除法中,只能用于整数除法,且无余数只能向下取余。

  优势

     (1)把每个功能分开写,重用性高。

     (2)有做除数为零的判断,教为严谨。

      (3)每个功能名字,表达了它的作用,很直观,一目了然。

 

posted @ 2016-03-23 23:43  木木大可  阅读(915)  评论(0编辑  收藏  举报