我的代码
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)每个功能名字,表达了它的作用,很直观,一目了然。