博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二次作业+105032014160
阅读量:5043 次
发布时间:2019-06-12

本文共 3568 字,大约阅读时间需要 11 分钟。

1.测试帖链接:

  http://www.cnblogs.com/ypzeng/p/6530638.html

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

  等腰三角形的判断不能通过。当a,b相等且a大于c或b,c相等且a<c时,程序将判断三角形为一般三角形,这显然是错误的。当输入浮点数,字符等类型数据时程序奔溃。

  (1)对a,b,c三条边大小的排序意义不大,对等腰三角形的判断代码需要改进;

  (2)可以增加对输入类型的判断,以免输入浮点数,字符等类型数据时程序奔溃;

  (3)可以加入一个while(true)循环,以便测试多组数据;

  (4)对变量的命名最好带有含义。

3.修正后的代码

public class GetData {    public static char triangle(int a, int b, int c) {        if(a<=b+c ||b<=a+c || c<=a+b)        {            if ((a==b)&& (b==c)&&(c==a)) {                return '1';            }else if ((a==b) || (b==c) || (a==c)) {                return '2';            }else if (a*a+b*b==c*c || b*b+c*c==a*a || a*a+c*c==b*b) {                return '3';            }else {                return '4';            }        }else         {            return '5';        }    }    }import java.util.Scanner;public class Main {    static String equaltrianger = "等边三角形";    static String isotrianger = "等腰三角形";    static String comtrianger = "一般三角形";    static String rigtrianger = "直角三角形";    static String sidewrong = "边值不存在";    static String noconstruct = "不构成三角形";        public static void main(String[] args) {        char resulet = ' ';        System.out.println(" 1 进行三角形判断操作");        System.out.println(" x 退出程序");                    while(true)        {            Scanner sc = new Scanner(System.in);                String temp =sc.nextLine();                         switch (temp)            {                case "1":{                     System.out.println("请输入三角形的三条边:");                    try {                                                Scanner sca = new Scanner(System.in);                        int a = sca.nextInt();                        Scanner scb = new Scanner(System.in);                        int b = scb.nextInt();                        Scanner scc = new Scanner(System.in);                        int c = scc.nextInt();                        if (a<1 || a>100 || b<1 || b>100 || c<1 || c>100) {                            System.out.println("边值不存在!");                        }else {                            resulet =  GetData.triangle(a, b, c);                        if (resulet == '1') {                            System.out.println(equaltrianger);                        }else if (resulet == '2') {                            System.out.println(isotrianger);                        }else if (resulet == '3') {                            System.out.println(rigtrianger);                        }else if (resulet == '4') {                            System.out.println(comtrianger);                        }else {                            System.out.println(noconstruct);                            }                        }                                                System.out.println(" 1 进行三角形判断操作");                        System.out.println(" x 退出程序");                                                    break;                        } catch (Exception e) {                            System.out.println("请输入正确的边值!");                            System.out.println(" 1 进行三角形判断操作");                            System.out.println(" x 退出程序");                            break;                        }                        }                            case "x":                 System.exit(1);            default:                System.out.println("请选择正确的操作!") ;             }        }            }}

4.修正后的体会

在这次代码的修改中,针对测试人员提出的要求,对代码进行重新修改,使得测试人员所提出的问题得到改正,

对非整型的数据进行异常的捕获,对边判断进行了加强及简化,是代码更为简练优化。同时在对变量的命名中使

变量见其名而知其意,同时加入while(true)语句,使得测试可以多次进行,方便测试人员进行测试。

转载于:https://www.cnblogs.com/ypzeng/p/6626269.html

你可能感兴趣的文章
android客户端向服务器发送请求中文乱码的问
查看>>
Symfony翻译教程已开课
查看>>
TensorFlow2.0矩阵与向量的加减乘
查看>>
NOIP 2010题解
查看>>
javascript中的each遍历
查看>>
String中各方法多数情况下返回新的String对象
查看>>
浅谈tcp粘包问题
查看>>
UVA11524构造系数数组+高斯消元解异或方程组
查看>>
排序系列之——冒泡排序、插入排序、选择排序
查看>>
爬虫基础
查看>>
jquery.lazyload延迟加载图片第一屏问题
查看>>
HDU 1011 Starship Troopers (树形DP)
查看>>
手把手教你写DI_1_DI框架有什么?
查看>>
.net常见的一些面试题
查看>>
OGRE 源码编译方法
查看>>
上周热点回顾(10.20-10.26)
查看>>
C#正则表达式引发的CPU跑高问题以及解决方法
查看>>
云计算之路-阿里云上:“黑色30秒”走了,“黑色1秒”来了,真相也许大白了...
查看>>
APScheduler调度器
查看>>
设计模式——原型模式
查看>>