回麻雀苑主页          

2.6简易计算器代码及说明

作者:老麻雀 2006/9/13 14:56:43

简易计算器
  为了进一步体验JSP动态网页,将上一个范例稍加修改,做一个简易的计算器。同时解决上一个范例中,输入非正常数据,程序不能运行的问题。
一、 范例的演示和代码清单
  演示步骤:
1. 启动JSP引擎后,启动IE,在地址栏键入http://127.0.0.1:8080/ch2/ch2-31.htm,如图2-16所示:

  
  图 2-16
2. 在两个文本框中输入数字,并且在下拉列表中,选择运算符号,点击“计算”,可看到图2-17所示的界面,可以选择不同的运算符号,输入整数、小数、正数、负数等各种不同的数试一下运算的结果。
  
  
  图 2-17
3. 如果文本框中未输入任何内容,直接点击“计算”会出现图2-18。如果文本框中输入字母、汉字等非数字的内容,直接点击“计算”会出现图2-19。如果选择了除法,并且除数输入0,也有相应的提示界面。
    
        图 2-18                                  图 2-19
  
  通过演示我们可以看到,这个计算器虽然简单,但已比较完善了。能够拦截输入的各种非法数据、能够正确的对任何实数进行加减乘除运算。
两个网页的代码如下:
◇-◇-◇-◇-◇-◇-◇-◇-◇-◇  简易计算器  ◇-◇-◇-◇-◇-◇-◇-◇-◇
范例ch2-31.htm
1) <html>
2) <head>
3) <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
4) <title>简易计算器</title>
5) <style type="text/css">
6) <!--HTML表单提供数据和运算符,JSP动态网页对数据进行指定运算,并能对错误的数据输入进行提示-->
7) .style3 {font-size: x-small}
8) </style></head>
9) <body bgcolor="#FFFFCC" style="text-align:center">
10) <form action="ch2-31.jsp" name="form" target="_self"><table width="300" border="0" cellpadding="0" cellspacing="0" bgcolor="#ddeeff">
11) <tr align="center">
12) <td height="50" colspan="3">两个数的简易计算器</td>
13) </tr>
14) <tr>
15) <td height="50" align="center" valign="bottom"><div align="right" class="style3">第一个数</div></td>
16) <td height="50" align="center">&nbsp;</td>
17) <td align="center" valign="bottom"><div align="left" class="style3">第二个数</div></td>
18) </tr>
19) <tr>
20) <td width="111" height="50" align="center" valign="top"><div align="right">
21) <input name="n1" type="text" id="n1" size="12">
22) </div></td>
23) <td width="57" height="50" align="center" valign="top"><select name="select">
24) <option value="1">+</option>
25) <option value="2">-</option>
26) <option value="3">×</option>
27) <option value="4">÷</option>
28) </select></td>
29) <td width="132" align="center" valign="top"><div align="left">
30) <input name="n2" type="text" id="n2" size="12">
31) </div></td>
32) </tr>
33) <tr align="center">
34) <td height="50" colspan="3"><input type="submit" value="计算"></td>
35) </tr>
36) </table>
37) </form>
38) </body>
39) </html>
  
◇-◇-◇-◇-◇-◇-◇-◇-◇-◇  简易计算器  ◇-◇-◇-◇-◇-◇-◇-◇-◇
范例ch2-31.jsp
1) <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
2) <html>
3) <head>
4) <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
5) <title>简易计算器</title>
6) <style type="text/css">
7) <!--HTML表单提供数据和运算符,JSP动态网页对数据进行指定运算,并能对错误的数据输入进行提示-->
8) </style></head>
9) <body bgcolor="#FFFFCC" style="text-align:center">
10) <table width="466" border="0" cellpadding="0" cellspacing="0" bgcolor="#ddeeff">
11)   <tr align="center">
12)     <td width="405" height="50">两个数的简易计算器</td>
13)   </tr>
14)   <tr>
15)     <td height="100">
16)  <%
17) String a=request.getParameter("n1");
18) String b=request.getParameter("n2");
19) String c=request.getParameter("select");
20) if(a.equals("")||b.equals(""))
21) {
22) out.print("<font size=5>输入的数据,不能为空</font>");
23) out.print("<P><a href=ch2-31.htm>返回</a>");
24) return;
25) }
26) float x,y,z,s;
27) try {
28)  x=Float.parseFloat(a);
29)  y=Float.parseFloat(b);
30)  z=Integer.parseInt(c);
31)  }
32)  catch (NumberFormatException e) {
33) out.print("<font size=5> 输入的数据,必须都是数字</font>");
34) out.print("<P><a href=ch2-31.htm>返回</a>");
35) return;
36) }
37) if (z==4&&y==0)
38) {out.print("<font size=5>0 不能做除数</font>");
39) out.print("<P><a href=ch2-31.htm>返回</a>");
40) return;
41) }
42)  %> 
43)  <%
44) out.print("运算结果: ");
45) if (z==1)
46)  {s=x+y;
47)   out.print(x+"+"+y+"="+s);}
48) else if (z==2)
49)  {s=x-y;
50)   out.print(x+"-"+y+"="+s);}
51) else if (z==3)
52)  {s=x*y;
53)   out.print(x+"×"+y+"="+s);}
54) else if (z==4)
55)  {s=x/y;
56)   out.print(x+"÷"+y+"="+s);}
57)  %>
58) </td>
59)   </tr>
60)   <tr>
61)     <td height="30" align="center"><a href="ch2-31.htm">返回</a></td>
62)   </tr>
63) </table>
64) </body>
65) </html>
二、HTML表单的分析
  这个HTML表单非常简单,由两个文本框和一个下拉列表组成,再就是一个用于提交的“计算”按钮了。这里选择运算符号用的下拉列表和以前的范例略有不同,在Dreamweaver的图形设计界面下,单击运算符号的下拉列表,在属性面板中再点击“列表值”按钮,如图2-20所示:
  
  图 2-20
  在项目标签中分别是+、-、×、÷,而他们对应的值分别是 1、2、3、4 。即当网页运行时,如果选择了“+”,单击“计算”按钮后,提交的不是“+”,而是1,同理选择“-”,提交的是2。这样处理对于后面的JSP网页编写代码时,提供了方便。这一块对应的代码行是:
23) <td width="57" height="50" align="center" valign="top"><select name="select">
24) <option value="1">+</option>
25) <option value="2">-</option>
26) <option value="3">×</option>
27) <option value="4">÷</option>
28) </select></td>
三、JSP动态网页的分析
  这个JSP动态网页的代码主要由拦截非法输入数据和计算显示结果过程组成。几段相关的代码提示如下:
  拦截数据为空值的代码行:
20) if(a.equals("")||b.equals(""))
21) {
22) out.print("<font size=5>输入的数据,不能为空</font>");
23) out.print("<P><a href=ch2-31.htm>返回</a>");
24) return;
25) }
  拦截非法数据的代码行:
26) float x,y,z,s;                      定义四个浮点型变量
27) try {                            抛出异常
28)  x=Float.parseFloat(a);             将字符串型变量a获得的值转换成浮点型,赋值给x
29)  y=Float.parseFloat(b);             将字符串型变量b获得的值转换成浮点型,赋值给y
30)  z=Integer.parseInt(c);              将字符串型变量c获得的值转换成整型,赋值给z(运算符号)
31)  }
32)  catch (NumberFormatException e) {                            异常捕捉
33) out.print("<font size=5> 输入的数据,必须都是数字</font>");      捕捉到异常后,显示的文字
34) out.print("<P><a href=ch2-31.htm>返回</a>");
35) return;
36) }
  这一段代码是先定义四个浮点型变量,其中x、y用于承载由字符串型数据转换成浮点型的两个数据 ,z用于承载代表每个运算符号的数值(1是+,2是-,3是×,4是÷),s用于承载下面计算的结果。然后抛出异常,将三个变量获得的字符串型数据转换成浮点型或整型数据。这时如果变量获得的数据不能顺利转换,必然产生异常,32、33两行就会将异常捕捉到,并屏幕输出相应的提示文字。如果三个变量获得的数据顺利转换,说明用户输入的是数字,则可以继续运行计算、显示输出的代码。
  计算和显示输出的代码,并无特殊之处,在此不再进行具体地分析了。

 

 

我也说两句
E-File帐号:用户名: 密码: [注册]
评论:(内容不能超过500字,如果您不填写用户名和密码只能以游客的身份发表评论。)

*评论内容将在30分钟以后显示!
发表须知:
一、用户须严格遵守国家法律和政策,包括但不限于《全国人大常委会关于维护互联网安全的决定》、《信息网络传播权保护条例》等规定,审慎、合法地利用伊妃(E-file)平台发表言论、作品。
二、用户的言论、行为若涉嫌违法或侵权,用户可能被强制承担因该行为直接或间接导致的全部法律责任。依照法律法规规定,伊妃(E-file)运营方有义务提供用户资料,有义务和权利采取删除、屏蔽、断开链接等各种必要措施。
三、伊妃(E-file)中心授权网络法律专业研究服务机构“网络法苑”为用户及客户提供包括免费咨询在内的全方位的法律支持。

 

版权所有:段保珠   电话:64616239   E-mail:dbz@sina.com   京ICP备06044461号
阿酷科技 Arkoo.com 提供底层技术