Bootstrap

等价类划分法实验

一、使用等价类划分法分析三角形问题

要求一:需包含有效等价类及无效等价类划分表格 以及 测试用例表格
要求二:代码实现
实现 方式一:设计 三个输入框 一个判断按钮 点击按钮后显示结果
实现方式二:Java控制台进行测试判断【本实验实现该种方式】

测试报告

Test Case: 三角形类型程序测试
Summary: 在页面输入三个值,程序运行结果是否能够正确输出结果。
测试数据:预期结果:
1、5 5 51、 等边三角形
2、3,4,52、 一般三角形
3、3,3,43、 等腰三角形
4、3,4,44、 等腰三角形
5、3,4,35、 等腰三角形
6、-1,2,36、 不构成三角形
7、0,1,27、 不构成三角形
8、1,2,38、 不构成三角形
测试方法:等价类划分法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Java实现

import java.util.InputMismatchException;
import java.util.Scanner;

public class SjxProject{
    /**
     * num为0表示无法构成三角形
     * num为3表示为等边三角形
     * num为2表示为等腰三角形
     * num为1表示为一般三角形
     */

    //定义三角形三条边分别为a,b,c
    public static void numangle(int a,int b, int c) {
        int num =0;
        //有一条边为负数,无法构成三角形
        if(a<=0||b<=0||c<=0) {
            num=0;
            getReuslt(a,b,c,num);
        }
        else {
            if(((a+b)>c) && ((a+c)>b && (b+c)>a)) {
                if((a == b) &&(a == c)) {
                  num = 3;
                    getReuslt(a,b,c,num);
                }
                if((a==b && a!=c)||(a==c && a!=b)||(b==c && a!=b)) {
                    num = 2;
                    getReuslt(a,b,c,num);
                    
                }
                if(a!=b && a!=c && b!=c) {
                    num = 1;
                    getReuslt(a,b,c,num);
                }
            }
            else {
                num=0;//三边长度无法构成三角形
                getReuslt(a,b,c,num);
            }
        }        
    }
    //输出判断结果
    public static void getReuslt(int a,int b,int c, int num){
        switch(num) {
            case 0:
                System.out.println(a+"  "+b+"  "+c+"  "+"不构成三角形");
                break;
            case 1:
                System.out.println(a+"  "+b+"  "+c+"  "+"一般三角形");
                break;
            case 2:
                System.out.println(a+"  "+b+"  "+c+"  "+"等腰三角形");
                break;
            case 3:
                System.out.println(a+"  "+b+"  "+c+"  "+"等边三角形");
                break;
            default:
                System.out.println(a+"  "+b+"  "+c+"  "+"数据异常~~~");
                break;
        }

    }



    public static void main(String[] args) {
        //nextInt 接收从键盘输入的int(数字)类型的数据,不是数字类型会报错
        //next 不会接收回车符,tab 或者空格键,在接收有效数据之前会忽略这些符号,若已经读取了有效数据,遇到这些符号会直接退出
        //nextLine 可以接收空格或者 tab 键,其输入以 enter 键结束
        boolean isTrue = true;
        while (isTrue) {
            Scanner input=new Scanner(System.in);
            try {
                System.out.print("请输入边长a,要求填写数字");
                int a=input.nextInt();
                System.out.print("请输入边长b,要求填写数字");
                int b=input.nextInt();
                System.out.print("请输入边长c,要求填写数字");
                int c=input.nextInt();
                isTrue = false;// 当输入的三个数都是整数的时候,才会执行到这条语句
                numangle(a, b, c);
            } catch (InputMismatchException e) {
                System.out.println("输入的数字有误,请重新输入!");
                input.nextLine();// 清空输入的数字
            }
        }


//        numangle(5, 5, 5);
//
//        numangle(3, 4, 5);
//
//        numangle(3, 3, 4);
//
//        numangle(3, 4, 4);
//
//        numangle(3, 4, 3);
//
//        numangle(-1, 2, 3);
//
//        numangle(0, 1 ,2);
//
//        numangle(1, 2, 3);
        
       }
}

HTML实现

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script type="text/javascript">
            function result(){
			
			   var a = document.getElementById("a").value;
               var b = document.getElementById("b").value;	
			   var c = document.getElementById("c").value;	
               var a1 = parseFloat(a);
               var b1= parseFloat(b);
			   var c1 = parseFloat(c);
			   
			   //清空搜索框
			  function clear_content(){
			   document.getElementById("a").value="";
			   document.getElementById("b").value="";
			   document.getElementById("c").value="";
             }

			
			function isNotANumber(a,b,c) { 
			  //isNaN(inputData)不能判断空串或一个空格 
			  //如果是一个空串或是一个空格,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。 
			  if (parseFloat(a).toString() == "NaN"||parseFloat(b).toString() == "NaN"||parseFloat(c).toString() == "NaN") { 
			    return false; 
			  } else { 
			    return true; 
			  } 
			}					
			/**
			 * num为0表示无法构成三角形
			 * num为3表示为等边三角形
			 * num为2表示为等腰三角形
			 * num为1表示为一般三角形
			 */
	        //定义三角形三条边分别为a,b,c
			function numangle( a1, b1, c1){
			      var num =0;
				//有一条边为负数或者为0,无法构成三角形
				if(a1<=0||b1<=0||c1<=0) {
                    alert("边长不能为0,不能为负数,请检查后重新输入!");
				    clear_content();
					document.getElementsByTagName('h1')[0].style.display = "none";  //隐藏h1
				}
				else {
					if(((a1+b1)>c1) && ((a1+c1)>b1 && (b1+c1)>a1)) {
						if((a1 == b1) &&(a1 == c1)) {
						  num = 3;
							getReuslt(a1,b1,c1,num);
						}
						if((a1==b1 && a1!=c1)||(a1==c1 && a1!=b1)||(b1==c1 && a1!=b1)) {
							num = 2;
							getReuslt(a1,b1,c1,num);
							
						}
						if(a1!=b1 && a1!=c1 && b1!=c1) {
							num = 1;
							getReuslt(a1,b1,c1,num);
						}
					}
					else {
						num=0;//三边长度无法构成三角形
						getReuslt(a1,b1,c1,num);
					}
				} 
			
			 }
			 
            //输出判断结果
			function getReuslt(a1,b1,c1,num){
				switch(num) {
					case 0:
						//alert(a1+"  "+b1+"  "+c1+"  "+"不构成三角形");
						document.getElementById("show").innerHTML = "<h1>" +a1+"  "+b1+"  "+c1+"  "+"不构成三角形"+ "</h1>";
						   clear_content();
						break;
					case 1:
						//alert(a1+"  "+b1+"  "+c1+"  "+"一般三角形");
						document.getElementById("show").innerHTML = "<h1>" +a1+"  "+b1+"  "+c1+"  "+"一般三角形"+ "</h1>";
						  clear_content();
						break;
					case 2:
						//alert(a1+"  "+b1+"  "+c1+"  "+"等腰三角形");
						document.getElementById("show").innerHTML = "<h1>" +a1+"  "+b1+"  "+c1+"  "+"等腰三角形"+ "</h1>";
						  clear_content();
						break;
					case 3:
						//alert(a1+"  "+b1+"  "+c1+"  "+"等边三角形");
						document.getElementById("show").innerHTML = "<h1>" +a1+"  "+b1+"  "+c1+"  "+"等边三角形"+ "</h1>";
						   clear_content();
						break;
					default:
						alert(a1+"  "+b1+"  "+c1+"  "+"数据异常~~~");
						   clear_content();
						break;
				}

			}
                
				
				if(isNotANumber(a,b,c)){
			   
				 //执行判断代码
					numangle(a1,b1,c1);
				  }else{
                    alert("边长不能为字符串,请检查后重新输入!");
						document.getElementsByTagName('h1')[0].style.display = "none";  //隐藏h1
					    clear_content();
			    }
				
         }
	 
        </script>
    </head>
	
    <body>
        <p>分别输入边长a,b,c</p>
              <input type="text" id="a" placeholder="边长a" />
              <input type="text" id="b" placeholder="边长b" />
			  <input type="text" id="c" placeholder="边长c"/>
            <button type="button" onclick="result()">判断</button>	
			<div id="show"></div>
    </body>
</html>

二、某页面查询条件中有两个查询条件 :开始年月 结束年月 用来查询该时间段内的数据,该查询条件只能输入201501-201912该段时间内的查询年月,如果输入的年月在该段时间之外,则报输入 错误。
请使用等价类划分法及边界值法来设计测试用例。

要求一:需包含有效等价类及无效等价类划分表格 以及 测试用例表格
要求二: 代码实现(可以设计两个输入框 输入6位年月 后 判断日期是否在201501-201912之间)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script type="text/javascript">
            function changeTime(){
			
			
			
			function isNotANumber(years,months) { 
			  //isNaN(inputData)不能判断空串或一个空格 
			  //如果是一个空串或是一个空格,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。 
			  if (parseFloat(years).toString() == "NaN"||parseFloat(months).toString() == "NaN") { 
			    return false; 
			  } else { 
			    return true; 
			  } 
			}
			   var years = document.getElementById("year").value;
               var months = document.getElementById("month").value;	
               var year = parseFloat(document.getElementById("year").value);
               var month = parseFloat(document.getElementById("month").value);
	             if(isNotANumber){
                    alert("请检查是否填写年月,年月数只能填写数字");
			    }else{
						 if(year >=2015&&year <=2019){
						      if(month<=12&&month>=1)
							    alert("日期在201501-201912之间");  
						      else
							    alert("不存在该月数,请重新输入");
					    }
						 else{
						       alert("日期不在201501-201912之间,请检查年月数格式是否填写正确");}	
					}		
               }
	 
        </script>
    </head>
	
    <body>
        <p>分别输入年月数:</p>
        <form>
            <input type="text" id="year" placeholder="" />
            <input type="text" id="month" placeholder="" />
            <button type="button" onclick="changeTime()">查询</button>
        </form>
    </body>
</html>
;