实验三
一、
计算整数X和整数Y的最大公约数。(不允许采用课堂上所用的方式实现)
(1)请用类和方法(写一个求最大公约数的方法)实现,命名时请按照规范命名。
(2)在main方式中获取用户输入的两个整数,调用之前写的方法,输出它们的最大公约数。
(3) 利用FindBugs查找程序中是否存在bug。
package com.lxb.cn;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class maxgongyueshu {
/**
* @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);
}
}
二、
1、 逻辑覆盖的应用
(1)按照所给的程序流程图,写出Java代码(用类和方法实现)
(2) 写出语句覆盖、分支覆盖的测试用例,以及它所覆盖的路径,用JUnit编写测试用例进行测试
代码(1)
package com.lxb.cn;
public class Decisiontree {
double x;
double y;
public void excute(){
if(x<4 || y>0){
if(y>1){
y=y+1;
x=x;
System.out.println("x结果是:"+x);
System.out.println("y结果是:"+y);
}
else{
System.out.println("x结果是:"+x);
System.out.println("y结果是:"+y);
}
}
else{
if(x>=5){
x=x-y;
System.out.println("x结果是:"+x);
}
else{
x=x+y;
System.out.println("x结果是:"+x);
}
}
}
}
代码(2)
package com.lxb.cn;
public class Test {
public static void main(String[] args){
Decisiontree dec = new Decisiontree();
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.println("输入x值");
double x = input.nextDouble();
System.out.println("输入y值");
double y = input.nextDouble();
dec.x = x;
dec.y = y;
dec.excute();
}
}