标签:
1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)
l 请用类和方法实现(定义一个类,在类中定义一个求最大公约数的方法),命名时请按照规范命名。
l 在main方法中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。
l 利用FindBugs查找程序中是否存在bug。
package cn.deng;
/*
* 求两个数的最大公约数,利用的是欧几里德算法
* dengchunzeng
* 2016-4-2
*/
public class GetMaxDivide {
public static int Way(int a,int b){
if(a<b){
int temp;
temp=a;
a=b;
b=temp;
}
if(0==b){
return a;
}
return Way(b,a%b);
}
}
1 package cn.deng;
2
3 import java.util.Scanner;
4
5 public class Bemo {
6
7 /**
8 * @param args
9 */
10 public static void main(String[] args) {
11 // TODO Auto-generated method stub
12 System.out.println("请输入x,y两个正整数:");
13 Scanner in=new Scanner(System.in);
14 int x=in.nextInt();
15 int y=in.nextInt();
16 GetMaxDivide getmax=new GetMaxDivide();
17 int val=getmax.Way(x, y);
18 System.out.println("两个数的最大公约数是:"+val);
19 }
20
21 }
}
2、 逻辑覆盖的应用
l 按照所给的程序流程图,分别写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径
l 附加题:根据程序流程图,写出代码(定义一个类和方法来实现),用JUnit生成单元测试,并利用前面设计的测试用例进行测试。
语句覆盖
abc 3,2
aef 5,0
aeg 4,0
abd 3,0
分支覆盖3,1、3,0、5,0、4,0
1 package cn.deng;
2 /*
3 * 根据流程图判断所输入的两个数
4 * dengchunzeng
5 * 2016-4-5
6 */
7 public class Judge {
8 public void Way(int x,int y){
9 if(x<4||y>0){
10 if(y>1){
11 y=y+1;
12 System.out.println("x="+x);
13 System.out.println("y="+y);
14 }
15 else{
16 System.out.println("x="+x);
17 System.out.println("y="+y);
18 }
19 }else if(x>=5){
20 x=x-y;
21 System.out.println("x="+x);
22 System.out.println("y="+y);
23 }else{
24 x=x+y;
25 System.out.println("x="+x);
26 System.out.println("y="+y);
27 }
28 return;
29 }
30 }
1 package cn.deng;
2
3 import static org.junit.Assert.*;
4
5 import java.util.Scanner;
6
7 import org.junit.Test;
8
9 public class JiSuanTest {
10
11 @Test
12 public void test() {
13 System.out.println("语句覆盖:");
14 Judge judge=new Judge();
15 judge.Way(3, 2);
16 judge.Way(5, 0);
17 judge.Way(4, 0);
18 judge.Way(3, 0);
19 System.out.println("分支覆盖:");
20 judge.Way(3, 1);
21 judge.Way(3, 0);
22 judge.Way(5, 0);
23 judge.Way(4, 0);
24 }
25
26 }
标签:
原文地址:http://www.cnblogs.com/mydcz/p/5380132.html