1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)
import java.util.Scanner;
public class Exp {
/**
* 求两数最大公约数
*/
public static void wa(int a,int b)
{
if(a>b)
{
while(a%b!=0)
{
int r=a%b;
a=b;
b=r;
}
}
System.out.println("最大公约数:"+b);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//测试语句
int a,b;
System.out.println("请输入两个数:");
Scanner scanner = new Scanner(System.in);
a = scanner.nextInt();
b = scanner.nextInt();
wa(a,b);
}
2、 逻辑覆盖的应用
按照所给的程序流程图,分别写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径
语句覆盖:需要三条路径:a-e-g , X=4.5,Y=0; a-e-f,X=5 Y=0;
以及a-b-c X=4 Y=2
分支覆盖:需要四条路径:
a-b-c X=3 Y=2; a-b-d X=3 Y=1
a-e-f X=5 Y=1; a-e-g X=4 Y=1
l 附加题:根据程序流程图,写出代码(定义一个类和方法来实现),用JUnit生成单元测试,并利用前面设计的测试用例进行测试。
代码如下:
public static void Hi(float x,float y)
{
if(x<4||y>0)
{
If(y>1)
{y=y+1;}
Else{break;}
}
else
{
If(x>=5)
{
x=x-y;
}
else{x=x+y;}
}
System.out.println("x="+x);
System.out.println("y="+y);
}
public static void main(String[] args) {
float x,y;
System.out.println("请输入两个数:");
Scanner scanner = new Scanner(System.in);
x = scanner.nextFloat();
y = scanner.nextFloat();
Hi(float x,float y);
}