求教!简单的计算器小程序开发
啾啾啾九九 2020-11-17 07:58:02 基本程序已写好,现在要使该程序具备容错能力(处理数据溢出问题)
要求:
1、增加一个常量MAX_VALUE,其值为当前充许的最大精度(目前设置为8个数字);
2、 增加一个private 数据成员 String statusFlag,用于保存engine的状态。例如"E" 代表错误, " "代表正常. 这些串设成符号常量。
3、增加一个public String status() 方法,用于返回statusFlag;
public String status(){
return statusFlag;}
4、增加一个public boolean isError(),如果engine处理出错状态,则返回true.
5、增加一个private boolean isError(double n),用于返回计算结果是否太大;
6、修改operate方法,使其能检测计算器的状态,且使clear,all_clear均能处理statusFlag.
其中operate方法:
public void operate(char nc) { // nc is next opcode(下一个运算符)
//当计算器处于异常状态时
//当计算器处于正常状态时
switch (nc) {
case 'A': //nc=All Clear
allClear();
return; // All Clear
case 'C': //nc=Clear
clear();
return; // Clear
case 'N': // sign change(负号)
if (argcnt == 1) //操作数为1,输出ans(计算结果),比如输入12则输出12
ans = -ans;
else //操作数为2,输出arg(第二个操作数),负号赋予给第二个操作数arg = -arg
arg = -arg;
return;
default: // +-*/= (如果没有任何case表达式和开关值匹配,则控制传递给default)
compute();//在下面给出具体方法
op = nc; // new opcode,将下一个运算符赋值给当前运算符
}
}