从键盘上获取需要计算的数据,和计算类型
package com.jjl.Counter;
import java.util.Scanner;
public class CounPrint extends counter {
public Double one(){
Scanner onenumder = new Scanner(System.in);
Double a = 0.0;
while (true) {
System.out.println("请输入一个数字");
if (onenumder.hasNextDouble()) {
a = onenumder.nextDouble();
break;
} else {
System.out.println("你输入的不是数字,请重新输入");
onenumder.next();
}
}
return a;
}
public Double two(){
Double b = 0.0;
Scanner twonumder = new Scanner(System.in);
while (true) {
System.out.println("请输入第二个数字");
if (twonumder.hasNextDouble()) {
b = twonumder.nextDouble();
break;
} else {
System.out.println("你输入的不是数字,请重新输入");
twonumder.next();
}
}
return b;
}
public String Coun() {
String counter;
Scanner coun = new Scanner(System.in);
while (true) {
System.out.println("请输入计算方式");
counter = coun.next();
if (counter.equals("+") || counter.equals("-") || counter.equals("*") || counter.equals("/")) {
break;
} else {
System.out.println("你输入的不是运算符,请重新输出");
coun.next();
}
}
return counter;
}
}
用于接收数据计算的类
package com.jjl.Counter;
public class counter {
// 加法
public Double add(double a, double b) {
double sum = 0;
sum = a + b;
System.out.println(sum);
return sum;
}
// 减法
public Double Subtraction(double a, double b) {
double sum = 0;
sum = a - b;
System.out.println(sum);
return sum;
}
// 乘法
public Double Mul(double a, double b) {
double sum = 0;
sum = a * b;
System.out.println(sum);
return sum;
}
// 除法
public Double DivMe(double a, double b) {
double sum = 0;
sum = a / b;
System.out.println(sum);
return sum;
}
}
判断计算方式,并计算的类
package com.jjl.Counter;
public class Count extends CounPrint {
public Double count(){
Double a = super.one();
String counter = super.Coun();
Double b = super.two();
switch (counter){
case "+":
a = super.add(a,b);
break;
case "-":
a = super.Subtraction(a,b);
break;
case "*":
a = super.Mul(a,b);
break;
case "/":
a = super.DivMe(a,b);
break;
default:
System.out.println("程序错误");
}
return a;
}
}
用于接收前一次计算结果,并连续计算的类
package com.jjl.Counter;
public class CountAgain extends CounPrint {
private String symbol;
private Double sum;
public void setSymbol(String symbol) {
this.symbol = symbol;
}
public void setSum(Double sum) {
this.sum = sum;
}
public Double Again(){
Double a = sum;
String counter = symbol;
Double b = super.two();
switch (counter) {
case "+":
sum = super.add(a, b);
break;
case "-":
sum = super.Subtraction(a, b);
break;
case "*":
sum = super.Mul(a, b);
break;
case "/":
sum = super.DivMe(a, b);
break;
default:
System.out.println("程序错误");
}
return sum;
}
}
主程序
package com.jjl.Counter;
import java.util.Scanner;
public class test {
static Double sum;
public static void main(String[] args) {
Count count = new Count();
sum = count.count();
String IfAgain;
Scanner coun = new Scanner(System.in);
while (true) {
System.out.println("如需连续计算,请输入计算方式,重新计算请输入:c");
IfAgain = coun.next();
if (IfAgain.equals("+") || IfAgain.equals("-") || IfAgain.equals("*") || IfAgain.equals("/")) {
CountAgain countAgain = new CountAgain();
countAgain.setSum(sum);
countAgain.setSymbol(IfAgain);
sum = countAgain.Again();
} else if (IfAgain.equals("c")){
sum = count.count();
}else {
System.out.println("你的输入有误!");
coun.next();
}
}
}
}