1.题目要求
2.实现方法
我用了html+servlet的方法。html给出前端的UserForm1,servlet在后台处理输入并返回判断的结果。
以下是项目的结构及前端的样子(结尾处会贴上重要代码)
3.等价类的划分、测试用例及实验结果
有效等价类 无效等价类
长度1~6 输入为空
字符:a~z,A~Z,0~9 输入长度大于6
含有特殊字符
由上,则测试用例为:1.ab53c
2.空输入
3.1234avbs
4.%250a
5.小白哥
测试过程及测试结果如下图:
1.ab53c
2.空输入
3.1234avbs
4.%250a
5.小白哥
4.结果分析
等价类,有效等价类,无效等价类的划分确实可以让测试过程变得简单,有效,今后在测试的过程中要学以致用。
5.关键代码
PrintWriter out = response.getWriter(); String name = request.getParameter("username"); if(name.length() > 6){ out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<html>"); out.println("<head>"); out.println("<title>无效</title>"); out.println("</head>"); out.println("<body>"); out.println("<h2> <a href=\"/UserForm/index.jsp\">输入长度不能大于6</a></h2>"); out.println("</body>"); out.println("</html>"); out.flush(); }else{ boolean ok = true; for(int i = 0;i < name.length();i++){ if(Character.getNumericValue(name.charAt(i)) < 0){//判断是否输入为中文 ok=false;break; } if(!Character.isLetterOrDigit(name.charAt(i))){ ok=false;break; } }if(ok){ out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<html>"); out.println("<head>"); out.println("<title>有效</title>"); out.println("</head>"); out.println("<body>"); out.println("<h2> <a href=\"/UserForm/index.jsp\">恭喜你输入了有效的名字</a></h2>"); out.println("</body>"); out.println("</html>"); out.flush(); }else{ out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<html>"); out.println("<head>"); out.println("<title>无效</title>"); out.println("</head>"); out.println("<body>"); out.println("<h2> <a href=\"/UserForm/index.jsp\">不能包括非英文字符和非数字</a></h2>"); out.println("</body>"); out.println("</html>"); out.flush(); } }
6.写在后面
因为c1,c2不能同时发生,要考虑的情况剩了24种,当c1,c2均为0时,因果
图逻辑是OK的,c1,c2有一个唯一时,按一种饮料的按钮没问题,按2个或3
个按钮行不行我觉得看程序怎么写了,如果程序的逻辑是按可乐,雪碧,红茶
来依次判断按钮是否被点击,相互又是或的关系,这样饮料机只需给出判断到
的第一种饮料即可。
时间: 2024-10-17 05:31:30