zoukankan      html  css  js  c++  java
  • 等价类划分应用的扩展

    一、问题描述

      1. 三个编辑框,允许1到6个英文字符或数字,按OK结束。

    二、等价类划分

      1. 有效等价类:

               长度: 1、2、3、4、5、6; 非0 不超过6

               字符: a-z, A-Z, 0-9

      2. 无效等价类:

               长度: 0,7

               字符: 英文/数字以外字符,控制字符,标点符号

    三、实现方法

      同样的在该例中也是采用javascript来验证输入的字符串,由于是三个文本框,采用循环验证的方法并记录每一个文本框的验证结果,使用条件语句对每种结果进行判断并给出相应的提示。

    四、测试用例

    编号 输入 预期输出
    1

    String 1="123",

    String 2="abc",

    String 3="123abc"

    全部正确
     2

    String 1="",

    String 2="abc",

    String 3="123abc"

     框1格式错误
     3

    String 1="123a!",

    String 2="abc",

    String 3="123abc"

     框1格式错误
     4

    String 1="123",

    String 2="",

    String 3="123abc"

     框2格式错误
     5

    String 1="123",

    String 2="abc!",

    String 3="123abc"

     框2格式错误
     6

    String 1="123",

    String 2="abc",

    String 3=""

     框3格式错误
     7

    String 1="123",

    String 2="abc",

    String 3="123a!"

     框3格式错误
     8

    String 1="123!",

    String 2="",

    String 3="123abc"

     框1和框2格式错误
    9

    String 1="123!",

    String 2="abc",

    String 3="123abcd"

     框1和框3格式错误
    10

    String 1="123",

    String 2="abc!",

    String 3="123abcd"

     框2和框3格式错误
    11

    String 1="",

    String 2="abc!",

    String 3="123abcd"

     全部格式错误

    五、代码如下(C#实现)

    namespace SoftwareTest1
     2 {
     3     public partial class Form1 : Form
     4     {
     5         private string result;
     6         private int r;
     7 
     8         public Form1()
     9         {
    10             InitializeComponent();
    11         }
    12 
    13         private void button1_Click(object sender, EventArgs e)
    14         {
    15             r = 0;
    16             string input1 = textBox1.Text;
    17             string input2 = textBox2.Text;
    18             string input3 = textBox3.Text;
    19             result = "Name1: ";
    20             checkInput(input1);
    21             result += "
    Name2: ";
    22             checkInput(input2);
    23             result += "
    Name3: ";
    24             checkInput(input3);
    25             if (r == 3)
    26             {
    27                 result = "输入全部正确";
    28             }
    29             else
    30             {
    31                 result += "
    请重新输入";
    32             }
    33             MessageBox.Show(result);
    34         }
    35 
    36         private bool legalStr(string str)
    37         {
    38             for (int i = 0; i < str.Length; i++)
    39             {
    40                 if ((str[i] < 'a' || str[i] > 'z') && (str[i] < 'A' || str[i] > 'Z') && (str[i] < '0' || str[i] > '9'))
    41                     return false;
    42             }
    43             return true;
    44         }
    45 
    46         private void checkInput(string input)
    47         {
    48             if (input.Length == 0)
    49             {
    50                 result += "输入为空";
    51                 return;
    52             }
    53             if (input.Length > 6)
    54             {
    55                 result += "长度不合法";
    56                 return;
    57             }
    58             else if (!legalStr(input))
    59             {
    60                 result += "含有非法字符";
    61                 return;
    62             }
    63             else
    64             {
    65                 r += 1;
    66                 result += "输入正确";
    67                 return;
    68             }
    69         }
    70     }
    71 }
  • 相关阅读:
    asp.net 中theme一个意外问题
    常用的APT命令参数
    使用分布式编译incredbuild错误error C2858: commandline option 'program database name 解决方法
    使用分布式编译incredbuild错误error C2858: commandline option 'program database name 解决方法
    闻名遐迩的MySQL乱码问题(转)
    让你在职场上不可替代的12信条 30句职场箴言
    让你在职场上不可替代的12信条 30句职场箴言
    常用的APT命令参数
    [转]深入理解SET NAMES和mysql(i)_set_charset的区别
    [转]深入理解SET NAMES和mysql(i)_set_charset的区别
  • 原文地址:https://www.cnblogs.com/PreTang/p/4376645.html
Copyright © 2011-2022 走看看