实现功能是:参数a和参数b运算输出结果后,其结果再和参数c运算输出!代码:package pkg;
//import pkg.*;
public class SimpleCalculator1{
private String first;
private String second;
public double result;
private String operator;

public void setFirst(String first){
this.first=first;
}
public void setSecond(String second){
this.second=second;
}
public void setOperator(String operator){
this.operator=operator;
}
public String getFirst(){
return this.first;
}
public String getSecond(){
return this.second;
}
public String getOperator(){
return this.operator;
}

public double getResult(){
return this.result;
}

 
 public void calculation()
 {
  double one=Double.parseDouble(first);
double two=Double.parseDouble(second);
try{
if (operator.equals("x+y"))
      result=one+two;
  else if(operator.equals("x-y"))
       result=one-two;
       else if(operator.equals("x*y"))
         result=one*two;
          else if(operator.equals("x/y"))
            result=one/two;
}
catch(Exception e)
{
System.out.println(e);
}
 }
-----------------------------------------------------------------------------------------package pkg;
import pkg.SimpleCalculator1;
public class SimpleCalculator2 extends SimpleCalculator1
{
private String third;
private double fourth;
private double result;
private String optor;

public void setOptor(String optor)
{
this.optor=optor;
}
public String getOptor()
{
return this.optor;
}
public void setThird(String third)
{
this.third=third;
}
  

public String getThird()
{
return this.third;
}
public double getFourth()
{
return this.fourth;
}
public double getResult1()
{
return this.result;
}
public void calculate()
{
double three=Double.parseDouble(third);
try{
if (optor.equals("R+Z"))
      result=super.getResult()+three;
  else if(optor.equals("R-Z"))
       result=super.getResult()-three;
       else if(optor.equals("R*Z"))
         result=super.getResult()*three;
          else if(optor.equals("R/Z"))
            result=super.getResult()/three;
}
catch(Exception e)
{
System.out.println(e);
}
}
   
}
-----------------------------------------------------------------------------------------
<%@ page contentType="text/html; charset=gb2312"%>
<jsp:useBean id="calculator" scope="session" class="pkg.SimpleCalculator1">
<jsp:setProperty name="calculator" property="*"/>
</jsp:useBean>
<%
       String first=request.getParameter("first"); 
       String second=request.getParameter("second"); 
       String result=request.getParameter("result");
%>
<% 
   //session.getAttribute("result");
   session.setAttribute("result",result);
%>
<html>
<head>
<title>简单计算器</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<p align=center><b>简单计算器</b>
<hr>
<div align=center>
<form action="calculate.jsp" method=get>
<table width="75%">   
  <tr>
    <td align=right>请输入X值</td>
    <td><input type=text name="first"></td>
  </tr>
   <tr>
    <td align=right>请输入Y值</td>
    <td><input type=text name="second"></td>
   </tr>
   <hr>
 <td align=right>计算结果是</td>
 <td><input type=text name=result value=<%
   try
   {   
        calculator.calculation();
        out.println(calculator.getResult());
      
    }
   catch(Exception e)
   {
      out.println(e);
   }
   %>></td>
   
   <tr>
    <td></td>   
    <td><input type=submit value="x+y" name="operator">
        <input type=submit value="x-y" name="operator">
        <input type=submit value="x*y" name="operator">
        <input type=submit value="x/y" name="operator"></td>
   </tr><jsp:useBean id="SC" scope="session" class="pkg.SimpleCalculator2">
<jsp:setProperty name="SC" property="*"/>
</jsp:useBean>
<tr>
  <td align="right">R的值是:</td>
  <td><input type=text name=fourth value=<%=calculator.getResult() %>></td>
</tr>
<tr>
  <td align="right">请输入Z值</td>
  <td><input type=text name=third></td>
</t>
<TR>
<td align="right">计算结果是</td>
<td><input type=text value=<% 
  try
   {
       SC.calculate();
       out.println(SC.getResult1());
    }
   catch(Exception e)
   {
      out.println(e);
   }
 %>></td>
 </TR>
 <tr>
    <td></td>   
    <td><input type=submit value="R+Z" name="optor">
        <input type=submit value="R-Z" name="optor">
        <input type=submit value="R*Z" name="optor">
        <input type=submit value="R/Z" name="optor"></td>
</tr></table>
</form>
</div>
</body>
</html>
a和b的结果传不到与c运算!!麻烦大家指点下!

解决方案 »

  1.   

    要在网页上实现,还用的着传给后台让jsp做?!js的eval()函数就搞定了
      

  2.   

    简单表达式求值应该用自顶向下文法分析,也就是用递归的思想来做。
    你要计算两步以上的运算,可以把前面一步的计算结果(result),
    赋给左值(也就是取代原来的x),清空右值让用户输入第三个操作数,
    如此循环而已
      

  3.   

    我来试试,可能是没有从session取到值吧
      

  4.   

    那请问我用session怎么传不了值呢?
      

  5.   

    结果提示:java.lang.NullPointerException