项目的  WebRoot 目录下的 calculator.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML>
<html>
<head>
<title>计算结果</title>
</head>
<body>
<jsp:useBean id="calculatorBean"
class="cn.itcast.domain.CalculatorBean"></jsp:useBean> <jsp:setProperty property="*" name="calculatorBean" />
<%
try {
calculatorBean.calculate();
} catch (Exception ex) {
out.write("计算出错:<font color='red'>" + ex.getMessage()
+ "</font>");
}
%> <hr />
<label>计算的结果是:<span id="x1"> <jsp:getProperty
property="arg1" name="calculatorBean" /> </span> <span id="x2"><jsp:getProperty
property="operator" name="calculatorBean" /></span> <span id="x3">
<jsp:getProperty property="arg2" name="calculatorBean" /> </span> = <span
id="x4"> <jsp:getProperty property="result"
name="calculatorBean" /> </span> </label>
<hr /> <form method="post" action="#">
<table border="1">
<tr>
<td colspan="2">简单计算器</td>
</tr>
<tr>
<td>第一个参数</td>
<td><input type="text" name="arg1" />
</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="arg2" />
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="计算" />
</td>
</tr>
</table>
</form>
</body>
</html>
项目的 src 目录下的 包下面的 CalculatorBean.java
package cn.itcast.domain;

import java.math.BigDecimal;

// 封装计算方法 Bean
public class CalculatorBean {
private String arg1 = "0"; private String arg2 = "0"; private char operator = '+'; private String result; public String getArg1() {
return arg1;
} public void setArg1(String arg1) {
this.arg1 = arg1;
} public String getArg2() {
return arg2;
} public void setArg2(String arg2) {
this.arg2 = arg2;
} 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 firstBigDecimal = new BigDecimal(arg1);
BigDecimal sencondBigDecimal = new BigDecimal(arg2); switch (this.operator) {
case '+':
result = firstBigDecimal.add(sencondBigDecimal).toString();
break;
case '-':
result = firstBigDecimal.subtract(sencondBigDecimal).toString();
break;
case '*':
result = firstBigDecimal.multiply(sencondBigDecimal).toString();
break;
case '/':
if (sencondBigDecimal.doubleValue() == 0) {
//result = "除零错误!";
//break;
throw new RuntimeException("除零错误!");
}
result = firstBigDecimal.divide(sencondBigDecimal, 20,
BigDecimal.ROUND_HALF_UP).toString();
break;
default:
result = "未设定的操作!" + String.valueOf(this.operator);
break;
}
}
}

附上效果图:

[Java.web]简单计算器的更多相关文章

  1. 【知了堂学习笔记】java web 简单的登录

    最近皮皮潇在学习java web,刚接触了简单的东西,所以今天给大家带来一个简单的登录实现. 页面: 页面代码: <%@ page language="java" conte ...

  2. Java web 简单的增删改查程序(超详细)

    就是简单的对数据进行增删改查.代码如下: 1.bean层:用来封装属性及其get set方法 toString方法,有参构造方法,无参构造方法等. public class Bean { privat ...

  3. 学生信息的添加 Java web简单项目初试(修改)

    错误原因: 1.Java web 的Servlet类没有配置好,并且缺少一个 Dao类(Date Access Object通常用于操作数据库的). 2.代码的某些名称错误,导致数据库数据存储错误. ...

  4. java实现简单计算器功能

    童鞋们,是不是有使用计算器的时候,还要进入运行,输入calc,太麻烦了,有时候甚至还忘记单词怎么拼写,呵呵程序员自己写代码实现,又简单,又方便啊 以下为代码(想要生成可执行工具可参考:http://w ...

  5. [转]java web简单权限管理设计

    原文地址:http://blog.csdn.net/zwx19921215/article/details/44467099 最近在做一个网站类型项目,主要负责后台,ui框架选型为jquery eas ...

  6. java web简单权限管理设计

    一套最基本的权限管理包括用户.角色.资源. 数据库设计 我的设计如下: 用户:user 角色:role 用户-角色:user_role 资源:resource(包括上级菜单.子菜单.按钮等资源) 角色 ...

  7. java web 简单的登录注册

    --sql文件 create database studentgouse studentgocreate table stuinfo(--stuid int primary key identity( ...

  8. Java实现简单计算器、抽票程序

    计算器: import java.awt.BorderLayout; import java.awt.Container; import java.awt.Font; import java.awt. ...

  9. JAVA web简单的登录界面jsp实现

    此次试验所用到的软件是myeclipse10,tomcat7,Dreamweaver,sqlserver2008数据库.可以实现用户使用用户名和密码登录.如果登录成功,页面会显示登录成功,如果密码错误 ...

随机推荐

  1. Codeforces Round #321 (Div. 2) D. Kefa and Dishes(状压dp)

    http://codeforces.com/contest/580/problem/D 题意: 有个人去餐厅吃饭,现在有n个菜,但是他只需要m个菜,每个菜只吃一份,每份菜都有一个欢乐值.除此之外,还有 ...

  2. Tinkoff Challenge - Elimination Round D. Presents in Bankopolis(区间DP)

    http://codeforces.com/contest/793/problem/D 题意:给出一些点和他们之间的距离,是有向的,这些点从1~n顺序排列,现在选出k个点组成一条路径,使他们之间的距离 ...

  3. 51Nod 1419 最小公倍数挑战

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1419 题意: 思路: 要想最大,肯定去找尽量大的互质的数,如果不是互质的 ...

  4. TreeMap的应用

    public class SortedMap { //treemap按key排序,默认是升序,可自定义降序 public static void main(String[] args) { Map&l ...

  5. PHP设计模式单例模式的继承实现

    最近在做O2O平台的接入,因为发现之前公司的代码里已经有了某家开放平台的接入代码,如果我再往原先的控制器上加入逻辑代码,整个控制器的耦合度会非常高.加上每个平台有自己的签名验证算法,把加解密的方法写到 ...

  6. hihocoder1513

    https://hihocoder.com/problemset/problem/1513 五维偏序问题,直接bitset压位,复杂度O(n^2/32) (本来想写三维偏序,但是cdq不会只好写写五维 ...

  7. powerdesigner安装图解

  8. [转载]java调用本地dos命令

    在社区看到java调用本地dos命令的代码,特贴出来 String command = "ipconfig"; Runtime run = Runtime.getRuntime() ...

  9. delphi文件操作的总结

    csfinal90我的:收件箱资源博客空间设置|帮助|退出 首页 业界 移动 云计算 研发 论坛 博客 下载 更多 windzb的专栏 目录视图 摘要视图 订阅 IT俱乐部创始人杜鸿飞专访       ...

  10. <NET CLR via c# 第4版>笔记 第10章 属性

    10.1 无参属性 10.1.1 自动实现的属性 10.1.2 合理定义属性 属性可以只读或只写,而字段访问总是可读和可写的(一个例外是 readonly 字段仅在构造器中可写). 属性方法可能抛出异 ...