
算法开始。输入A和B值,首先分别判断A和B是否为正数:如果都是正数,那么计算AB数值之和减去10的数值;如果是非正数,那么计算AB之和加上10的数值。对于新计算得到的数值,再次判断是否为负数:如果是负数,将其设定为0;如果是非负数,原样输出结果。算法结束。
要求:
1)画出该算法的流程图
2)标出所有的分支
3)写出该算法的代码(Hbuilder)
4)选用白盒测试的逻辑覆盖方法中的一种设计相应的测试用例,确保能够覆盖所有分支

算法开始。输入A和B值,首先分别判断A和B是否为正数:如果都是正数,那么计算AB数值之和减去10的数值;如果是非正数,那么计算AB之和加上10的数值。对于新计算得到的数值,再次判断是否为负数:如果是负数,将其设定为0;如果是非负数,原样输出结果。算法结束。
要求:
1)画出该算法的流程图
2)标出所有的分支
3)写出该算法的代码(Hbuilder)
4)选用白盒测试的逻辑覆盖方法中的一种设计相应的测试用例,确保能够覆盖所有分支
关注以下是该算法的流程图:
开始
输入A,B
判断A是否为正数,是则执行以下操作,否则跳到步骤6
判断B是否为正数,是则执行以下操作,否则跳到步骤8
计算AB数值之和减去10的值,存入临时变量temp
计算得到的数值是否为负数,是则跳到步骤10,否则执行以下操作
输出temp的值
结束算法
跳到步骤12
跳到步骤14
计算AB之和加上10的值,存入临时变量temp
计算得到的数值是否为负数,是则跳到步骤16,否则执行以下操作
输出temp的值
结束算法
跳到步骤18
以下是该算法的代码(Hbuilder):
#include <iostream>
using namespace std;
int main() {
int A, B;
cin >> A >> B;
int temp;
if (A > 0 && B > 0) {
temp = A + B - 10;
} else if (A <= 0 || B <= 0) {
temp = A + B + 10;
} else {
cout << "Invalid input!" << endl;
return 1;
}
if (temp < 0) {
temp = 0;
}
cout << temp << endl;
return 0;
}
以下是白盒测试的逻辑覆盖方法中的一种设计相应的测试用例: