福建农林大学J2EE实验报告四.docx
- 文档编号:29229138
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:25
- 大小:262.09KB
福建农林大学J2EE实验报告四.docx
《福建农林大学J2EE实验报告四.docx》由会员分享,可在线阅读,更多相关《福建农林大学J2EE实验报告四.docx(25页珍藏版)》请在冰豆网上搜索。
福建农林大学J2EE实验报告四
福建农林大学计算机与信息学院实验报告
系
计算机与信息
专业
计算机科学与技术
年级
2013级
成绩
姓名
学号
实验室
机号
实验时间
教师签字
实验(四)JavaBean
一、实验目的和要求
1.掌握JavaBean的用法
二、实验内容和原理
1.应用JavaBean完成一个简易计算器。
2.应用Servlet、JavaBean改写实验三。
三、实验环境
1.硬件环境:
2.软件环境:
JDK1.5
四、算法描述及实验步骤
1.算法描述(可以用流程图、伪代码或源程序描述)
2.实验步骤
●输入源代码
Redirect.jsp
<%@pagelanguage="java"import="java.util.*"pageEncoding="GB2312"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
--
-->
//输入单个数字并进行检验和操作
functionInput(s)
{
varinput=document.getElementById("input");
if(input.value=='0')
{
input.value='';
}
varsInput=input.value;
varsLast=sInput.charAt(sInput.length-1);
//sLast=sInput.subString(sInput.length-1,sInput.length);
if((s=='+'||s=='-'||s=='*'||s=='/')&&
(sLast=='+'||sLast=='-'||sLast=='*'||sLast=='/'))
{
varsFore=sInput.substring(0,sInput.length-1);
sFore+=s;
input.value=sFore;
//input.value=sLast;
}
elseif(s=='.'&&sLast=='.')
{
return;
}
else
{
input.value+=s;
}
}
//实现清除功能
functionClear()
{
varinput=document.getElementById("input");
input.value='0';
}
//实现删除功能
functionDel()
{
varinput=document.getElementById("input");
varsInput=input.value;
varsFore=sInput.substring(0,sInput.length-1);
if(sFore.length==0)
{
input.value='0';
}
else
{
input.value=sFore;
}
}
<%!
StringszOutput="0";%>
<%
Objectobj=session.getAttribute("output");
if(obj!
=null)
{
szOutput=obj.toString();
}
%>
100%;height: 100%"value="<%=szOutput%>">
100%;height: 100%"onclick="Clear()"> 100%;height: 100%"onclick="Del()"> 100%;height: 100%"onclick="Input('/')"> 100%;height: 100%"onclick="Input('*')">
100%;height: 100%"onclick="Input('7')"> 100%;height: 100%"onclick="Input('8')"> 100%;height: 100%"onclick="Input('9')"> 100%;height: 100%"onclick="Input('-')">
100%;height: 100%"onclick="Input('4')"> 100%;height: 100%"onclick="Input('5')">
100%;height: 100%"onclick="Input('6')">
100%;height: 100%"onclick="Input('+')">
100%;height: 100%"onclick="Input('1')"> 100%;height: 100%"onclick="Input('2')">
100%;height: 100%"onclick="Input('3')">
100%;height: 100%">
100%;height: 100%"onclick="Input('0')"> 100%;height: 100%"onclick="Input('.')"> 100%;height: 100%">
Handle.jsp
<%--
Document:
handle
Createdon:
2015-5-13,20:
56:
29
Author:
Administrator
--%>
<%@pageimport="java.util.Enumeration"%>
<%@pagecontentType="text/html"pageEncoding="GB2312"%>
DOCTYPEhtml>
useBeanid="couter"class="beanPackage.JCouter"scope="page">
useBean>
<%
StringszInput=request.getParameter("inputText");
szInput+="=";
//out.print(szInput);
StringszOutput=couter.Couter(szInput);
//out.print(szOutput);
session.setAttribute("output",szOutput);
response.sendRedirect("redirect.jsp");
%>
JCouter.java
/*
*Tochangethislicenseheader,chooseLicenseHeadersinProjectProperties.
*Tochangethistemplatefile,chooseTools|Templates
*andopenthetemplateintheeditor.
*/
packagebeanPackage;
importjava.util.Stack;
/**
*
*@authorAdministrator
*/
publicclassJCouter
{
privateStringsResult="";
privatefinaldoublePI=3.1415926;
publicStringCouter(StringszEquation)
{
Stack
Stack
Stack
doubleresult=0;//计算结果
booleanbNum=false;
booleanbDot=false;//是否含小数点
booleanhasLeft=false;//是否还有左操作数
doublenum=0;
doubledec=0;
doubled1,d2,temp;
//存储算式模块
for(inti=0;i { if(szEquation.charAt(i)=='=') { if(bNum==true)//说明前面部分是数字 { if(bDot==true)//如果含有小数部分 { while(! decimal.isEmpty()) { dec+=decimal.peek();// decimal.pop(); dec*=0.1; } num+=dec;//整数部分加上小数部分 } operand.push(num);//操作数入栈并重置为0 num=0; bNum=false;//修改标识 bDot=false; } //把栈中剩余的数据全部取出并计算 while(! operand.isEmpty()) { d2=operand.peek();//因为栈是后进先出,所以先出的是右操作数 operand.pop(); if(! operand.isEmpty()) { d1=operand.peek(); operand.pop(); hasLeft=true; } else { d1=0;//如果没有数据,指定为0 hasLeft=false; } //如果是单目运算符且存在左操作数未使用,则把左操作数压回去 if((hasLeft==true)&&("sin".equals(operato.peek())||"cos".equals(operato.peek())|| "tan".equals(operato.peek())||"sqrt".equals(operato.peek()))) { operand.push(d1); } result=Compute(operato.peek(),d1,d2); operato.pop(); if(! operand.isEmpty()) { operand.push(result);//如果数据栈还有数据,还有数据则把计算结果压入数据栈 } else { break;//跳出while循环 } } break;//跳出for循环 } if(szEquation.charAt(i)=='.') { bDot=true;//修改标识 } if(szEquation.charAt(i)=='+'||szEquation.charAt(i)=='-'||szEquation.charAt(i)=='*'||szEquation.charAt(i)=='/'||//基本运算符号 szEquation.charAt(i)=='^'|| szEquation.charAt(i)=='s'||szEquation.charAt(i)=='c'||szEquation.charAt(i)=='t')//三角函数 { if(bNum==true)//说明前面部分是数字 { bNum=false;//修改标识 if(bDot==true)//如果含有小数部分 { bDot=false; while(! decimal.isEmpty()) { dec+=decimal.peek(); decimal.pop(); dec*=0.1; } num+=dec;//整数部分加上小数部分 } //操作数入栈并重置为0 operand.push(num); num=0; } //str为操作符 Stringstr=""; if(szEquation.charAt(i)=='s'||szEquation.charAt(i)=='c'||szEquation.charAt(i)=='t') { str+=Character.toString(szEquation.charAt(i)); str+=Character.toString(szEquation.charAt(++i)); str+=Character.toString(szEquation.charAt(++i));//读取完整的三角函数并转化成字符串 if(szEquation.charAt(i+1)=='t')//可能是sqrt,则继续读取一位字符 { str+=Character.toString(szEquation.charAt(++i)); } } else { str+=Character.toString(szEquation.charAt(i));//字符转化成字符串 } //如果当前操作符优先级高于栈顶优先级,则操作符入栈 //如果当前操作符优先级低于或等于栈顶优先级,则符号栈栈顶元素出栈并计算当前符号入栈 while(! operato.isEmpty()&&Priority(str,operato.peek())<=0) { d2=operand.peek();//因为栈是后进先出,所以先出的是右操作数 operand.pop(); if(! operand.isEmpty()) { d1=operand.peek(); operand.pop(); hasLeft=true; } else { d1=0;//如果没有数据,指定为0 hasLeft=false; } temp=Compute(operato.peek(),d1,d2); //如果是单目运算符且存在左操作数未使用,则把左操作数压回去 if((hasLeft==true)&&("sin".equals(operato.peek())||"cos".equals(operato.peek())|| "tan".equals(operato.peek())||"sqrt".equals(operato.peek()))) { operand.push(d1); } operato.pop(); operand.push(temp);//计算结果压入数据栈 } operato.push(str);//操作符入栈 } if(szEquation.charAt(i)>='0'&&szEquation.charAt(i)<='9') { if(bNum==false)//说明第一次读取到数字或之前是运算符号 { bNum=tru
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 福建 农林 大学 J2EE 实验 报告