您的位置:首页 > 其它

第三次作业

2016-04-14 13:38 211 查看
1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)

l 请用类和方法实现(定义一个类,在类中定义一个求最大公约数的方法),命名时请按照规范命名。

l 在main方法中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。

l 利用FindBugs查找程序中是否存在bug。

public class HCF {
public static int getHCF(int a ,int b){
int hcf=1;
int min;
int max;
if(a>b){
min=b;
max=a;
}else{
min=a;
max=b;
}
for(int i=min;i>0;i--){
if(min%i==0){
if(max%i==0){
hcf=i;
break;
}
}
}
return hcf;
}
}


main

import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
System.out.println("请输入两个整数:");
Scanner scanner = new Scanner(System.in);
int a=scanner.nextInt();
int b=scanner.nextInt();
System.out.println("最大公约数为:"+HCF.getHCF(a, b));
}
}


findbugs显示不存在bug

2、 逻辑覆盖的应用

l 按照所给的程序流程图,分别写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径

l 附加题:根据程序流程图,写出代码(定义一个类和方法来实现),用JUnit生成单元测试,并利用前面设计的测试用例进行测试。

  语句覆盖:

x

y

路径

预期结果

1

4

-1

aeg

X=3,y=-1

2

5

-1

aef

X=6,y=-1

3

0

2

abc

X=0,y=1.5

  分支覆盖(判定覆盖)

x

y

路径

预期结果

1

4

-1

aeg

X=3,y=-1

2

5

-1

aef

X=6,y=-1

3

0

1

abd

X=0,y=1

4

0

2

abc

X=0,y=3

实现代码:
1 public class demo2 {

public static void demo(int x,int y){
if(x<4 || y>0){
if(x>1){
y+=1;
}
}else {
if(x>=5){
x-=y;
}else{
x+=y;
}
}
System.out.println("x="+x+",y="+y);

}
}


测试

@Test
public void test() {
int x=4;
int y=-1;
demo2.demo(x, y);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: