多态模拟实现计算器

题目:

使用多态模拟计算器加减乘除 父类:计算类 方法:计算 子类:加法类 减法类 乘法类 除法类 子类重写父类计算方法 创建各对象,进行测试
代码实现:

package monijisuan;
import java.util.Scanner;
public class Add extends Coll{
	public void add() {
		System.out.println("a的值为" + a );
		System.out.println("b的值为" + b);
		System.out.println("a+b=" + c);
	}
	Scanner input = new Scanner(System.in);
	int a = input.nextInt();
	int b = input.nextInt();
	int c = a+ b;
}
package monijisuan;

public class Coll {
public void add(){
}
public void cut() {
	
}
public void mult() {
	
}
public void divi() {
	
}
}
package monijisuan;
import java.util.Scanner;
public class Cut extends Coll{
	public void cut() {		
		System.out.println("a的值为" + a );
		System.out.println("b的值为" + b);
		System.out.println("a+b=" + c);
	}
	Scanner input = new Scanner(System.in);
	int a = input.nextInt();
	int b = input.nextInt();
	int c= a-b;
}
package monijisuan;
import java.util.Scanner;
public class Divi extends Coll{
	Scanner input = new Scanner(System.in);
	public void divi() {
		int a = input.nextInt();
		int b = input.nextInt();
		int c= a/b;
		System.out.println("a的值为" + a );
		System.out.println("b的值为" + b);
		System.out.println("a+b=" + c);
	}
}
package monijisuan;
import java.util.Scanner;
public class Mult extends Coll{
	public void mult() {
		System.out.println("a的值为" + a );
		System.out.println("b的值为" + b);
		System.out.println("a+b=" + c);
	}
	Scanner input = new Scanner(System.in);
	int a = input.nextInt();
	int b = input.nextInt();
	int c= a*b;
}
package monijisuan;
import java.util.InputMismatchException;
import java.util.Scanner; 
class Test {

	public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner input = new Scanner(System.in);
		String answer = "";
		for(int i=0;i< 50;i++) {
		System.out.println("这是第"+(i+1)+"次计算");
		System.out.println("是否进行计算");
		answer = input.next();
		if(answer.equals("y")) {
			System.out.print("请选择你要进行的操作(1:加,2:减,3:除,4:乘)");
			int num = input.nextInt();
			switch(num){
		case 1:
			try {
				Coll a =new Add();
				a.add();
			}catch (InputMismatchException e) {
	        	System.out.println("参数错误异常");
	        }
			break;
		case 2:
			try {
				Coll b = new Cut();
				b.cut();
			}catch (InputMismatchException e) {
	        	System.out.println("参数错误异常");
	        }
			break;
		case 3:
			try {
				Coll c = new Divi();
				c.divi();
			}catch (ArithmeticException e) {
				System.out.println("计算异常");
	        }catch (InputMismatchException e) {
	        	System.out.println("参数错误异常");
	        }
			break;
		default :
			try {
				Coll d = new Mult();
				d.mult();	
			}catch (InputMismatchException e) {
	        	System.out.println("参数错误异常");
	        }
		}
		}else if(!answer.equals("y")){
			System.out.println("计算完成");
            break;
		}
		System.out.println("继续计算");
		}
			
		
	}


}
运行结果:
这是第1次计算
是否进行计算
y
请选择你要进行的操作(1:加,2:减,3:除,4:乘)1
1
1
a的值为1
b的值为1
a+b=2
继续计算
这是第2次计算
是否进行计算
	y
请选择你要进行的操作(1:加,2:减,3:除,4:乘)3
3
0
计算异常
继续计算
这是第3次计算
是否进行计算
y
请选择你要进行的操作(1:加,2:减,3:除,4:乘)2
2
6
a的值为2
b的值为6
a-b=-4
继续计算
这是第4次计算
是否进行计算
n
计算完成
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风儿吹吹吹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值