• 等价类划分方法的应用(二)


    等价类划分方法的应用(二)

    题目:

    个EditBox,全部值允许输入1-6个英文字符或数字,按OK结束。


    以输入条件划分等价类:

    输入的字符串必须满足以下条件:

    条件1:第一行长度1-6

    条件2:第一行字符为'0'-'9'或'a'-'z'或'A'-'Z'

    条件3:第二行长度1-6

    条件4:第二行字符为'0'-'9'或'a'-'z'或'A'-'Z'

    条件5:第三行长度1-6

    条件6:第三行字符为'0'-'9'或'a'-'z'或'A'-'Z'

    编号 有效等价类 编号 无效等价类
    1 第一行长度1-6 7 第一行长度为0
    2 第一行字符为'0'-'9'或'a'-'z'或'A'-'Z' 8 第一行长度大于等于7
    3 第二行长度1-6 9 第一行含有英文/数字以外字符
    4 第二行字符为'0'-'9'或'a'-'z'或'A'-'Z' 10 第二行长度为0
    5 第三行长度1-6 11 第二行长度大于等于7
    6 第三行字符为'0'-'9'或'a'-'z'或'A'-'Z' 12 第二行含有英文/数字以外字符
    13 第三行长度为0
    14 第三行长度大于等于7
    15 第三行含有英文/数字以外字符

    测试用例:

    编号 输入 覆盖等价类 期望输出
    第一行 第二行 第三行
    1 Fks143 Fks143 Fks143 1,2,3,4,5,6 输入全部正确
    2   Fks143 Fks143 7 第一行输入为空
    3 Fks1431 Fks143 Fks143 8 第一行长度不合法
    4 Fks. Fks143 Fks143 9 第一行含有非法字符
    5 Fks143   Fks143 10 第二行输入为空
    6 Fks143 Fks1431 Fks143 11 第二行长度不合法
    7 Fks143 Fks. Fks143 12 第二行含有非法字符
    8 Fks143 Fks143   13 第三行输入为空
    9 Fks143 Fks143 Fks1431 14 第三行长度不合法
    10 Fks143 Fks143 Fks. 15 第三行含有非法字符

    测试结果图:

    代码:

     1 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 }
  • 相关阅读:
    C++11 学习笔记 std::function和bind绑定器
    vue服务端渲染如何使用html模板
    vue服务端渲染的基本实现
    vscode实用6款插件
    $router.addRoutes()+vuex 动态添加路由
    Vue.extend()
    vue router滚动行为scrollBehavior
    vue路由精确匹配模式 exact
    redirect和alias的区别
    vue命名路由(name)的作用
  • 原文地址:https://www.cnblogs.com/fks143/p/4375802.html
Copyright © 2020-2023  润新知