第三次作业
1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)
l 请用类和方法(写一个求最大公约数的方法)实现,命名时请按照规范命名。
l 在main方式中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。
l 利用FindBugs查找程序中是否存在bug。
package cn.chen.guan;
/*
* @author 陈重冠
*/
public class GetNum {
public static int maxnum(int num1,int num2){
while(num1%num2!=0){
int temp=num1%num2;
num1=num2;
num2=temp;
}
return num2;
}
}
package cn.chen.guan;
import java.util.Scanner;
public class TestGetNum {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入第一个数字");
Scanner input1=new Scanner(System.in);
int a=input1.nextInt();
System.out.println("请输入第二个数字");
Scanner input2=new Scanner(System.in);
int b=input2.nextInt();
System.out.println(GetNum.maxnum(a, b));
}
}
2、 逻辑覆盖的应用
l 按照所给的程序流程图,写出Java代码(用类和方法实现)
l 写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径,用JUnit编写测试用例进行测试
package cn.chen.chong;
/*
* @author 陈重冠
*/
public class Mycode {
public static void getxy(int x ,int y){
if(x<4||y>0){
if(y>1){
y=y+1;
System.out.println(y);
}
}
else{
if(x>=5){
x=x-y;
System.out.println(x);
}
else{
x=x+y;
System.out.println(x);
}
}
}
}
package cn.chen.chong;
import java.util.Scanner;
public class TestMycode {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入第一个数字");
Scanner input1=new Scanner(System.in);
int a=input1.nextInt();
System.out.println("请输入第二个数字");
Scanner input2=new Scanner(System.in);
int b=input1.nextInt();
Mycode.getxy(a, b);
}
}
语句覆盖
X=3,Y=2 路径为abc
X=5,Y=-1 路径为aef
X=4,Y=-1路径为aeg
分支覆盖
X=3,Y=1路径为abd
X=3,Y=2路径为abc
X=5,Y=-1路径为aef
X=4,Y=-1路径为aeg