等价类划分应用的扩展

一、问题描述

  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 += "\nName2: ";
22             checkInput(input2);
23             result += "\nName3: ";
24             checkInput(input3);
25             if (r == 3)
26             {
27                 result = "输入全部正确";
28             }
29             else
30             {
31                 result += "\n请重新输入";
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 }
posted @ 2015-03-29 22:45  三班&唐家炜  阅读(280)  评论(0编辑  收藏  举报