jsp作業--計算三角形面積,結果保留3,6位小數

一、題目
     編寫一個Tag文件GetArea.tag負責求出三角形面積,並使用variable指令返回三角形的面積給調用該Tag文件的JSP頁面。JSP頁面負責顯示Tag文件返回的三角形的面積。JSP在調用Tag文件時,使用attribute指令將三角形三邊的長度傳遞給Tag文件。one.jsp和two.jsp都使用Tag標記調用GetArea.tag。one.jsp將返回三角形的面積保留最多3位小數、two.jsp將返回的三角形面積保留最多6位小數。
 

二、 實驗代碼

 

one.jsp


<%@ page contentType="text/html; charset=UTF-8"%>
<%@page import="java.text.*" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="computer" %>
<html>
<body>
<form action="" method=get name=form>
    <h3>請輸入三角形三邊長:</h3>
	<table>
		<tr>
			<td>a:</td>
			<td><input type="text" name="a"></td>
		</tr>
		<tr>
			<td>b:</td>
			<td><input type="text" name="b"></td>
		</tr>
		<tr>
			<td>c:</td>
			<td><input type="text" name="c"></td>
		</tr>
	</table>
	<br> <input type="submit" value="計算結果最多保留3位小數" name=submit>
	<% String a=request.getParameter("a");
	String b=request.getParameter("b");
	String c=request.getParameter("c");
	if(a==null||b==null||c==null){
		a="0";
		b="0";
		c="0";
	}
	if(a.length()>0&&b.length()>0&&c.length()>0){
%>
		<computer:GetArea sideA="<%=a %>" sideB="<%=b %>" sideC="<%=c %>" />
<%
		NumberFormat f=NumberFormat.getInstance();
        f.setMaximumFractionDigits(3);
        double result=area.doubleValue();
        String str=f.format(result);
        out.println(str);
	} %>
</form>
</body>
</html>

 

two.jsp


<%@ page contentType="text/html; charset=UTF-8"%>
<%@page import="java.text.*" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="computer" %>
<html>
<body>
<form action="" method=get name=form>
    <h3>請輸入三角形三邊長:</h3>
	<table>
		<tr>
			<td>a:</td>
			<td><input type="text" name="a"></td>
		</tr>
		<tr>
			<td>b:</td>
			<td><input type="text" name="b"></td>
		</tr>
		<tr>
			<td>c:</td>
			<td><input type="text" name="c"></td>
		</tr>
	</table>
	<br> <input type="submit" value="計算結果最多保留3位小數" name=submit>
	<% String a=request.getParameter("a");
	String b=request.getParameter("b");
	String c=request.getParameter("c");
	if(a==null||b==null||c==null){
		a="0";
		b="0";
		c="0";
	}
	if(a.length()>0&&b.length()>0&&c.length()>0){
%>
		<computer:GetArea sideA="<%=a %>" sideB="<%=b %>" sideC="<%=c %>" />
<%
		NumberFormat f=NumberFormat.getInstance();
        f.setMaximumFractionDigits(3);
        double result=area.doubleValue();
        String str=f.format(result);
        out.println(str);
	} %>
</form>
</body>
</html>
!

GetArea.tag

<%@ tag pageEncoding="gb2312" %>
<%@ attribute name="sideA" required="true" %>
<%@ attribute name="sideB" required="true" %>
<%@ attribute name="sideC" required="true" %>
<%@ variable name-given="area" variable-class="java.lang.Double" scope="AT_END" %>
<%
	double a=Double.parseDouble(sideA);
	double b=Double.parseDouble(sideB);
	double c=Double.parseDouble(sideC);
	if(a+b>c&&a+c>b&&c+b>a){
		double p=(a+b+c)/2.0;
		double area=Math.sqrt(p*(p-a)*(p-b)*(p-c));
		jspContext.setAttribute("area",new Double(area));
	}
	else{
		jspContext.setAttribute("area",new Double(-1));
	}
%>

三、效果展示

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章