1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)
l 请用类和方法(写一个求最大公约数的方法)实现,命名时请按照规范命名。
l 在main方式中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。
l 利用FindBugs查找程序中是否存在bug。
Demo类
package cn.yu.test;
public class Demo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Method m =new Method();
m.index();
}
}
Method类
package cn.yu.test;
public class Method {
public void index(){
int n=24,t=60;
int min =Math.min(n, t);
for(int k=min;k>0;k--){
if(n%k==0 && t%k==0){
System.out.println(n+"和"+t+"的最大公约数为:"+k);
return;
}
}}
}
2、 逻辑覆盖的应用
l 按照所给的程序流程图,写出Java代码(用类和方法实现)
l 写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径,用JUnit编写测试用例进行测试
l 测试用例(语句覆盖):
x |
y |
结果 |
路径 |
3 |
2 |
Y+1=3 x=3 |
abd |
3 |
1 |
不变 |
abc |
6 |
-1 |
x-y=7 |
aeg |
4 |
-1 |
X+y=3 |
aef |
l 测试用例(分支覆盖):
X<4 or y>0 |
x>5 |
Y>1 |
用例 |
结果 |
路径 |
T |
F |
X=3,y=1 |
不变 |
abc |
|
T |
T |
X=3,y=2 |
Y+1=3 x=3 |
adb |
|
F |
F |
X=6,y=-1 |
x-y=7 |
aeg |
|
F |
T |
X=4,y=-1 |
X+y=3 |
aef |
代码
package cn.yu.test;
public class Methods {
public void indexs(){
int x = 5,y = 6;
if(x<4 || y>0){
if(y>1){
y=y+1;
System.out.println("x结果是:"+x);
System.out.println("y+1结果是:"+y);
}
else{
System.out.println("x结果是:"+x);
System.out.println("y结果是:"+y);
}
}
else{
if(x>=5){
x=x-y;
System.out.println("x-y结果是:"+x);
}
else{
x=x+y;
System.out.println("x+y结果是:"+x);
}
}
}
}
package cn.yu.test;
public class Demo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Methods m =new Methods();
m.indexs();
}
}