实验内容
1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)
l 请用类和方法(写一个求最大公约数的方法)实现,命名时请按照规范命名。
import java.io.BufferedReader;
import java.io.IoException;
import java.io.InputStreamReader;
public class chenx {
public static void main(String[] args) {
int j = 0;
system.out.print("请输入一个数:");
BufferedReader saa=new BufferedReader(new InputStreamReader(System.in));
try {
j=Integer.parseInt(saa.readLine());
}
catch (NumberFormatException e) {
e.printStackTrace();
}
catch (IoException e) {
e.printStackTrace();
}
int k = 0;
system.out.print("请输入一个数:");
BufferedReader saa1=new BufferedReader(new InputStreamReader(System.in));
try {
k=Integer.parseInt(saa1.readLine());
}
catch (NumberFormatException e) {
e.printStackTrace();
}
catch (IoException e) {
e.printStackTrace();
}
int flag = 0;
for (int i = 1; i <= a; i++) {
if(j%i==0){
if(k%i==0){
flag=i;
}
}
}
system.out.print ("最大公约数是:"+flag);
}
}
l 在main方式中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。
l 利用FindBugs查找程序中是否存在bug。
2、 逻辑覆盖的应用
l 按照所给的程序流程图,写出Java代码(用类和方法实现)
import java.util.Scanner;
public class chenxiao{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
int y = scanner.nextInt();
if(X<4 ||Y>0){
if(Y>1){
Y=Y+1;
}
}
else{
if(X>=5){
X=X-Y;
}
else{
X=X+Y;
}
}
}
}
l 写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径,用JUnit编写测试用例进行测试。
语句覆盖:
X =4 ,Y =0,路径aeg
X=3,Y=2 ,路径abc
X=5, Y=0 ,路径aef
分支覆盖:
X=4, Y=0 ,路径aeg ; X=5, Y=0,路径aef
X=3 ,Y=0 ,路径abd; X=3, Y=6 ,路径abc