第二次作业+105032014142

1. 测试帖链接

测试帖链接:http://www.cnblogs.com/lucerner/p/6583142.html

第一次开发源代码:http://www.cnblogs.com/wangjiao0-0/p/6531421.html

2. 测试人员提出的问题、发现的缺陷

 缺陷:无

  建议:

(1)在每输入一个值的时候能够进行判断,这样就可以避免多次输入无用值。

(2)题目要求输入的内容为整数,而 isRightTriangle(double a, double b, double c )这个函数的参数为double类型,建议能够统一为int类型

3. 修正后的代码清单

 1 import java.util.Scanner;
 2 
 3 public class Triangle {
 4     public static String triangle(int a, int b, int c) {
 5         if (!((1 <= a && a <= 100) && (1 <= b && b <= 100) && (1 <= c && c <= 100)))
 6             return "边的值不在范围内!";
 7         if (!((a < b + c) && (b < a + c) && (c < a + b)))
 8             return "不构成三角形";
 9         if ((a == b) || (b == c) || (c == a))
10             if (a == b && b == c)
11                 return "等边三角形";
12             else
13                 return "等腰三角形";
14         else {
15             if ((a * a == b * b + c * c) || (b * b == a * a + c * c) || (c * c == a * a + b * b))
16                 return "直角三角形";
17             return "一般三角形";
18         }
19     }
20 
21     public static void main(String[] args) {
22         String input = "";
23         int a, b, c;
24         Scanner scan = new Scanner(System.in);
25         while (true) {
26             System.out.print("请输入三角形的三条边");
27             input = scan.nextLine().trim();
28             String[] buf = input.split("[\\s+,,]");
29             if (input.equals(""))
30                 continue;
31             else if (input.equalsIgnoreCase("return"))//退出程序
32                 break;
33             else if (buf.length == 3) {
34                 try {
35                     a = Integer.valueOf(buf[0]);
36                     b = Integer.valueOf(buf[1]);
37                     c = Integer.valueOf(buf[2]);
38                     System.out.println(triangle(a, b, c));
39                 } catch (NumberFormatException e) {
40                     System.out.println("请输入整数");
41                 }
42             } else//长度错误
43                 System.out.println("格式错误");
44         }
45         System.out.println("谢谢使用,再见~");
46         scan.close();
47     }
48 }

4. 修正后心得体会

(1)变更:

   a).用简洁易懂的代码代替isRightTriangle(double a, double b, double c )这个函数,增强代码的可读性。

   b).改造if else判断降低了代码层级,缩小了catch范围,捕获异常更加精准,将变量提到循环体外部提高了效率,改进了退出方式,改进为多种拆分字符,使程序输入更加方便。

(2)出现缺陷的原因:

无缺陷。

(3)学习心得:

  a).一个好的程序应该有一个体验良好的界面方便用户输入。

  b).应当认真研读客户的需求,不能遗漏。

  c).测试人员和开发人员应该做好沟通协调的工作。

  d).使用尽量简洁易懂的代码代替复杂冗长的代码

  e).降低代码的层级方便阅读。

posted @ 2017-03-26 12:50  王娇(wj)  阅读(133)  评论(0编辑  收藏  举报