第二次作业+105032014061

1.测试人员的测试帖链接:http://www.cnblogs.com/chen-dg/p/6602207.html

2.测试人员提出的问题、发现的缺陷:被测试代码能通过大部分判定覆盖与语句覆盖的测试,能判断值是否在范围内和是否构成三角形,判断构成为等腰三角形还是等边三角形,但不能判断是否为直角三角形,在输入的字符不为整数型时不能做出相应的提示。

代码优化意见:

(1)添加判断是否为直角三角形的语句,例如下列代码:

if (a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a) {

      System.out.println("可以组成直角三角形");

}

(2)在输入边值的代码区域添加try-catch语句,当输入为非法字符时会跳出提示,如“请确保输入的边为整数”。

3.修正后的代码清单:

import java.util.Scanner;

public class triangle {
    private int a;
    private int b;
    private int c;

    public triangle(int a, int b, int c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (true) {
            System.out.println("请输入第一条边:");// 输入第1条边
            int a = isNumber(scan.next());
            System.out.println("请输入第二条边:");// 输入第2条边
            int b = isNumber(scan.next());
            System.out.println("请输入第三条边:");//// 输入第3条边
            int c = isNumber(scan.next());
            System.out.println(triangle.trangle(a, b, c));// 判断输入的能否构成三角形以及类型
            System.out.println("-------------------");
        }
    }



    public static String trangle(int a, int b, int c) {
        String s = null;
        if ((a < 1 || a > 100) || (b < 1 || b > 100) || (c < 1 || c > 100)) {
            s = "边的值不在范围内!";
        }
        
        if (a < b + c && b < a + c && c < a + b) {// 两边之和大于第三边可构成三角形
              if (a == b || a == c || b == c) {// 等腰三角形
                if (a == b && b == c) {// 等边三角形
                    s = "可以组成等边三角形";
                } else {
                    s = "可以组成等腰三角形";
                }
              }
              else if (a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a) {//直角三角形
              s="可以组成直角三角形";
            }
            else s = "可以组成普通三角形";

            }
            
        // 不能构成三角形
        else{
            s = "不能够组成三角形!";
        }
        
        return s;
    }

    public static int isNumber(String num) {
        Scanner input = new Scanner(System.in);
        while (true) {
            if (!num.matches("^[0-9]*$")) {
                System.out.println("请确保输入的边是整数!");
                num = input.next();
            } else {
                return Integer.parseInt(num);
            }
        }

    }

}

4.修改代码心得体会:

(1).按照测试人员,修改了代码,有的不是完全按照测试人员的意见,但是还是达到了测试人员的要求。

(2).经过此次的修改代码,我认识到了软件测试的重要性。

(3).要学会对测试人员提出的要求,修改自己的代码,同时也要认真阅读需求,尽量做到实现每个要求。

posted on 2017-03-26 22:52  陈小兰  阅读(141)  评论(0编辑  收藏  举报

导航