第三次作业

1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)

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

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

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

 1 public class HCF {
 2     public static int getHCF(int a ,int b){
 3         int hcf=1;
 4         int min;
 5         int max;
 6         if(a>b){
 7             min=b;
 8             max=a;
 9         }else{
10             min=a;
11             max=b;
12         }
13         for(int i=min;i>0;i--){
14             if(min%i==0){
15                 if(max%i==0){
16                     hcf=i;
17                     break;
18                 }
19             }
20         }    
21         return hcf;
22     }
23 }

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 { 2 3 4 public static void demo(int x,int y){ 5 if(x<4 || y>0){ 6 if(x>1){ 7 y+=1; 8 } 9 }else { 10 if(x>=5){ 11 x-=y; 12 }else{ 13 x+=y; 14 } 15 } 16 System.out.println("x="+x+",y="+y); 17 18 } 19 }

测试

@Test
 public void test() {
  int x=4;
  int y=-1;
  demo2.demo(x, y);
 }

 

转载于:https://www.cnblogs.com/mjrj-ng/p/5390777.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值