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);

}

 

}

}