一、结对小伙伴:陈淑筠
二、(1)我用小伙伴上一次5.1的作业来单元测试,发现当除数为零时,运行时未抛出异常,于是我们加上了
1. if
(fh2==
'/'
){
if
(b==
0
){
throw
new
Exception(
"除数不能为0!"
);
}
answer=a/b;
}
2.
try
{
res=Calculator.Onefhnum(
1
,
1
,
3
);
}
catch
(Exception e) {
e.printStackTrace();
Assert.fail(
"抛出异常,测试失败!"
);
}
这段代码;
(2).还发现上次作业的代码有错误,三个运算符的最后的第一个为除数没有写上:
if(fh2=='/')//第一为除 { if(fh3=='+') { if(fh4=='+') { if(b==0){ throw new Exception("除数不能为0!"); } answer=a/b+c+d; } if(fh4=='-') { if(b==0){ throw new Exception("除数不能为0!"); } answer=a/b+c-d; } if(fh4=='*') { if(b==0){ throw new Exception("除数不能为0!"); } answer=a/b+c*d; } if(fh4=='/') { if(b==0){ throw new Exception("除数不能为0!"); } if(d==0){ throw new Exception("除数不能为0!"); } answer=a/b+c/d; } } if(fh3=='-') { if(fh4=='+') { if(b==0){ throw new Exception("除数不能为0!"); } answer=a/b-c+d; } if(fh4=='-') { if(b==0){ throw new Exception("除数不能为0!"); } answer=a/b-c-d; } if(fh4=='*') { if(b==0){ throw new Exception("除数不能为0!"); } answer=a/b-c*d; } if(fh4=='/') { if(b==0){ throw new Exception("除数不能为0!"); } if(d==0){ throw new Exception("除数不能为0!"); } answer=a/b-c/d; } } if(fh3=='*') { if(fh4=='+') { if(b==0){ throw new Exception("除数不能为0!"); } answer=a/b*c+d; } if(fh4=='-') { if(b==0){ throw new Exception("除数不能为0!"); } answer=a/b*c-d; } if(fh4=='*') { if(b==0){ throw new Exception("除数不能为0!"); } answer=a/b*c*d; } if(fh4=='/') { if(b==0){ throw new Exception("除数不能为0!"); } if(d==0){ throw new Exception("除数不能为0!"); } answer=a/b*c/d; } } if(fh3=='/') { if(fh4=='+') { if(b==0){ throw new Exception("除数不能为0!"); } if(c==0){ throw new Exception("除数不能为0!"); } answer=a/b/c+d; } if(fh4=='-') { if(b==0){ throw new Exception("除数不能为0!"); } if(c==0){ throw new Exception("除数不能为0!"); } answer=a/b/c-d; } if(fh4=='*') { if(b==0){ throw new Exception("除数不能为0!"); } if(c==0){ throw new Exception("除数不能为0!"); } answer=a/b/c*d; } if(fh4=='/') { if(b==0){ throw new Exception("除数不能为0!"); } if(c==0){ throw new Exception("除数不能为0!"); } if(d==0){ throw new Exception("除数不能为0!"); } answer=a/b/c/d; } } } return answer; }
(3).在此,我们还增加了答案精确到了小数后一位:
static
double
answer=
0
.0d;
public
static
double
Onefhnum(
int
a,
int
b,
int
e)
throws
Exception{
//一个运算符的方法
public
static
double
Twofhnum(
int
a,
int
b,
int
c,
int
e,
int
h)
throws
Exception{
//两个运算符的方法
public
static
double
Threefhnum(
int
a,
int
b,
int
c,
int
d,
int
e,
int
h,
int
f)
throws
Exception{
//三个运算符的方法
(4).由于时间原因,在代码中增加了:int
precision =
0
;
if
(NUM_MAX_OPERATOR == precision) {
// 这里我可以处理最多三个运算符的字符串哦:)
}
else
if
(NUM_SCALE == precision) {
// 这里我可以处理数值范围是 -100 到 100的字符串哦:)
}
else
if
(NUM_PRECISION == precision) {
// 这里我可以处理精度是小数点后一位的字符串哦:)
}
这段代码后,还不知道如何增加和处理括号里的信息。