1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)
l 请用类和方法(写一个求最大公约数的方法)实现,命名时请按照规范命名。
l 在main方式中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。
l 利用FindBugs查找程序中是否存在bug。
import java.util.Scanner;
public class Commondivisor {
public static int getCommonDivisor(int a, int b) {
while (a % b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return b;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s = new Scanner(System.in);
System.out.print("请输入第一个数:");
int a = s.nextInt();
System.out.print("请输入第二个数:");
int b = s.nextInt();
System.out.println("最大公约数为:" + getCommonDivisor(a, b));
}
}
1、 逻辑覆盖的应用
l 按照所给的程序流程图,写出Java代码(用类和方法实现)
l 写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径,用JUnit编写测试用例进行测试
语句覆盖:a-b-c X=1,Y=2; a-e-g X=4,Y=0;a-e-f X=5,Y=0
分支覆盖: a-b-d X=1,Y=1; a-b-c X=1,Y=2; a-e-f X=5,Y=0; a-e-g X=4,Y=0
import java.util.Scanner;
public class Test2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s = new Scanner(System.in);
System.out.print("请输入X的值:");
double X = s.nextInt();
System.out.print("请输入Y的值:");
double Y = s.nextInt();
if ((X < 4) || (Y > 0)) {
if (Y > 1) {
Y = Y + 1;
} else {
}
System.out.println(Y);
} else {
if (X >= 5) {
X = X - Y;
} else {
X = X + Y;
}
System.out.println(X);
}
}
}