利用面向对象实现的控制台计算器

/** *//**
* ConsoleCalc.java
* 控制台计算器
* @author 邓超
* @version 0.1 2008-5-7
* 开发/测试环境:jdk1.6 + eclipse SDK 3.3.2
*/
import java.util.Scanner;

public class ConsoleCalc ...{

public static void main(String[] args) throws Exception ...{
//保存二目运算所使用的两个操作数
double numberA , numberB;
//保存二目运算所使用的运算符
char operator;
//将Scanner类示例化为input对象用于接收用户控制台输入
Scanner input = new Scanner(System.in);

try ...{
//提示并接收控制台用户输入
System.out.print("请输入第一个数:");
numberA = input.nextDouble();
System.out.print("请选择运算符号(+、-、*、/):");
operator = input.next().charAt(0);
System.out.print("请输入第二个数:");
numberB = input.nextDouble();
//获得从Operation类返回的二目运算结果
Operation oper;
oper = OperationFactory.createOperate(operator);
oper.numberA = numberA;
oper.numberB = numberB;
double result = oper.GetResult();
//控制台输出运算结果
System.out.print(" 运算结果为:" + result);
} catch (Exception ex) ...{
//控制台输出抛出的异常信息
System.out.print(" 输入有误,信息:" + ex.getMessage());
}
}
}
/** *//**
* Operation.java
* Operation 运算类
* @author 邓超
* @version 0.1 2008-5-9
* 开发/测试环境:jdk1.6 + eclipse SDK 3.3.2
*/

public class Operation ...{
double numberA = 0;
double numberB = 0;

public double GetResult() throws Exception ...{
//保存二目运算结果
double result = 0;
//返回二目运算结果
return result;
}
}
/** *//**
* OperationFactory.java
* 简单运算工厂类
* @author 邓超
* @version 0.1 2008-5-9
* 开发/测试环境:jdk1.6 + eclipse SDK 3.3.2
*/

public class OperationFactory ...{

public static Operation createOperate(char operate) throws Exception ...{
Operation oper = null;

switch (operate) ...{
case '+':
oper = new OperationAdd();
break;
case '-':
oper = new OperationSub();
break;
case '*':
oper = new OperationMul();
break;
case '/':
oper = new OperationDiv();
break;
default:
//是未定义的运算符就抛出异常
throw new Exception("符号异常,不能识别的运算符!");
}
return oper;
}
}
/** *//**
* OperationAdd.java
* 加法类
* @author 邓超
* @version 0.1 2008-5-9
* 开发/测试环境:jdk1.6 + eclipse SDK 3.3.2
*/
//继承父类Operation 运算类
public class OperationAdd extends Operation ...{
//重写父类GetResult()方法
public double GetResult() ...{
//保存加法运算结果
double result = 0;
//计算加法运算结果
result = numberA + numberB;
//返回加法运算结果
return result;
}
}
/** *//**
* OperationSub.java
* 减法类
* @author 邓超
* @version 0.1 2008-5-9
* 开发/测试环境:jdk1.6 + eclipse SDK 3.3.2
*/
//继承父类Operation 运算类
public class OperationSub extends Operation ...{
//重写父类GetResult()方法
public double GetResult() ...{
//保存减法运算结果
double result = 0;
//计算减法运算结果
result = numberA - numberB;
//返回减法运算结果
return result;
}
}
/** *//**
* OperationMul.java
* 乘法类
* @author 邓超
* @version 0.1 2008-5-9
* 开发/测试环境:jdk1.6 + eclipse SDK 3.3.2
*/
//继承父类Operation 运算类
public class OperationMul extends Operation ...{
//重写父类GetResult()方法
public double GetResult() ...{
//保存乘法运算结果
double result = 0;
//计算乘法运算结果
result = numberA * numberB;
//返回乘法运算结果
return result;
}
}
/** *//**
* OperationDiv.java
* 除法类
* @author 邓超
* @version 0.1 2008-5-9
* 开发/测试环境:jdk1.6 + eclipse SDK 3.3.2
*/
//继承父类Operation 运算类
public class OperationDiv extends Operation ...{
//重写父类GetResult()方法
public double GetResult() throws Exception ...{
//保存除法运算结果
double result = 0;
if (numberB == 0)
//除数为0就抛出异常
throw new Exception("运算异常,除数不能为0!");
//计算除法运算结果
result = numberA / numberB;
//返回除法运算结果
return result;
}
}
这是一个使用Java面向对象编程实现的简易控制台计算器程序,支持基本的加、减、乘、除运算。用户可以在控制台输入两个数字及运算符进行计算。
613

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



