web計算器案例

never123450發表於2014-04-16
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>計算器</title>


  </head>
  
  <body style="text-align: center;">
      
      <jsp:useBean id="calcuilatorBean" class="cn.itcast.domain.CalcuilatorBean"></jsp:useBean>
      <jsp:setProperty property="*" name="calcuilatorBean"/>
      
      <%
        try{
           calcuilatorBean.calculate();
           }catch(Exception e){
               out.write(e.getMessage());
           }
       %>
       
       <br/>-----------------------------------------------------------<br/>
                       計算結果是:
       <jsp:getProperty property="firstNum" name="calcuilatorBean"/>
       <jsp:getProperty property="operator" name="calcuilatorBean"/>
       <jsp:getProperty property="secondNum" name="calcuilatorBean"/>
       =
       <jsp:getProperty property="result" name="calcuilatorBean"/>
       
       <br/>-----------------------------------------------------------
      
      <br/>
      
  <form action="/day09/calculate.jsp" method="post">
     <table>
     
         <tr width="40" border="1">
             <td colspan="2">簡單的計算器</td>
         </tr>
         
         <tr>
             <td>第一個引數</td>
             <td>
                <input type="text" name="firstNum">
             </td>
         </tr>
         
         <tr>
             <td>操作符</td>
              <td>
                       <select name="operator">
                           <option value="+">+</option>
                           <option value="-">-</option>
                           <option value="*">*</option>
                           <option value="/"></option>
                       
                       </select>
             </td>
         </tr>
         
         <tr>
             <td>第二個引數</td>
             <td>
                  <input type="text" name="secondNum">
             </td>
         </tr>
         
         <tr>
             <td colspan="2">
                <input type="submit" value="計算">
             </td>
         </tr>
     </table>
    </form>
  </body>

</html>



package cn.itcast.domain;


import java.math.BigDecimal;


//封裝計算機資料的bean
public class CalcuilatorBean {


private String firstNum = "0";
private String secondNum = "0";
private char operator = '+';
private String result;
public String getFirstNum() {
return firstNum;
}
public void setFirstNum(String firstNum) {
this.firstNum = firstNum;
}
public String getSecondNum() {
return secondNum;
}
public void setSecondNum(String secondNum) {
this.secondNum = secondNum;
}

public char getOperator() {
return operator;
}
public void setOperator(char operator) {
this.operator = operator;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}

public void calculate(){
BigDecimal first = new BigDecimal(firstNum);
BigDecimal second = new BigDecimal(secondNum);

switch (this.operator) {
case '+':{
this.result = first.add(second).toString();
break;
}
         case '-':{
this.result = first.subtract(second).toString();
break;
}
         case '*':{
  this.result = first.multiply(second).toString();
  break;
  }
         case '/':{
        if(second.doubleValue()==0){
        throw new RuntimeException("被除數不能為0");
        }
  this.result = first.divide(second,20,BigDecimal.ROUND_HALF_UP).toString();
  break;
  }
default:
throw new RuntimeException("只能為+-*、/");

}
}
}

相關文章