题目:
使用多态模拟计算器加减乘除 父类:计算类 方法:计算 子类:加法类 减法类 乘法类 除法类 子类重写父类计算方法 创建各对象,进行测试
代码实现:
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
计算完成
731

被折叠的 条评论
为什么被折叠?



