实验三
1、 计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)
l 请用类和方法实现(定义一个类,在类中定义一个求最大公约数的方法),命名时请按照规范命名。
l 在main方法中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。
l 利用FindBugs查找程序中是否存在bug。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class qwe {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 0;
System.out.print("请输入m:");
BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));
try {
a=Integer.parseInt(strin.readLine());
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int b = 0;
System.out.print("请输入一个n:");
BufferedReader strin2=new BufferedReader(new InputStreamReader(System.in));
try {
b=Integer.parseInt(strin2.readLine());
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int flag = 0;
for (int i = 1; i <= a; i++) {
if(a%i==0){
if(b%i==0){
flag=i;}
}
}
System.out.println("最大公约数为"+flag);
}
2、 逻辑覆盖的应用
l 按照所给的程序流程图,分别写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径
l 附加题:根据程序流程图,写出代码(定义一个类和方法来实现),用JUnit生成单元测试,并利用前面设计的测试用例进行测试。
import java.util.Scanner;
public class SHY {
public void shu(int a ,int b){
if(a<=4||b>0){
if (b>1){
b=b+1;
System.out.println("y="+b);
System.out.println("h="+a);
}else{
System.out.println("y="+b);
System.out.println("h="+a);
}
}if(a>=5){
a=a-b;
System.out.println("y="+b);
System.out.println("h="+a);
}else if{
a=b+a;
System.out.println("y="+b);
System.out.println("h="+a);
}
return;
}
public static void main(String[] args) {
SHY Hui = new SHY();
Scanner in=new Scanner(System.in);
System.out.println("请输入一个数: ");
int s=in.nextInt();
System.out.println("请输入另一个数: ");
int h=in.nextInt();
}
}