【Java Web】设计网页计算一元二次方程的解

通过JSP求解一元二次方程的解


一、问题描述

通过创建JSP表单和服务器来接收和计算传入值,计算得出一元二次方程的解。

二、具体实现

1.代码

input.jsp

<%@ page contentType="text/html; charset=gb2312"%>
<html>
<body><font size=2>
<form action="handleData" method="post">
<br>输入一元二次方程的系数:
<br>二次项系数a:<input type=text name="a" size=4>
              一次项系数b:<input type=text name="b" size=4>
              常数项系数c:<input type=text name="c" size=4>
    <input type=submit value="提交">
    </form>
    </font>
</body>
</html>

show.jsp

<%@ page contentType="text/html; charset=gb2312"%>
<jsp:useBean id="equation" type="mybean.data.Equation" scope="request"/>
<html>
<body><font size=2>
                   一元二次方程的系数是:
        <br>二次项系数:<jsp:getProperty name="equation" property="a"/>
                                           一次项系数:<jsp:getProperty name="equation" property="b"/>
                                           常数项:<jsp:getProperty name="equation" property="c"/>
         <br>是一元二次方程吗?<jsp:getProperty name="equation" property="isSquareEquation"/>
         <br>方程的两个根: <jsp:getProperty name="equation" property="rootOne"/>
                       <jsp:getProperty name="equation" property="rootTwo"/>
                       </font>
</body>
</html>

circle_bean.java

package mybean.data;

public class circle_bean {
	double radius;
	double area;
	public void setRadius(double a) {
		radius=a;
	}
	public double getRadius() {
		return radius;
	}
	public void setArea(double b) {
		area=b;
	}
	public double getArea() {
		return area;
	}

}

Equation.java

package mybean.data;

public class Equation {
	double a,b,c;
	String rootOne,rootTwo;
	boolean squareEquation;
	public void setA(double a) {
		this.a=a;
	}
	public double getA() {
		return a;
	}
	public void setB(double b) {
		this.b=b;
	}
	public double getB() {
		return b;
	}	
	public void setC(double c) {
		this.c=c;
	}
	public double getC() {
		return c;
	}
	public void setRootOne(String root) {
		rootOne=root;
	}
	public String getRootOne() {
		return rootOne;
	}
	public void setRootTwo(String root) {
		rootTwo=root;
	}
	public String getRootTwo() {
		return rootTwo;
	}
	public void setIsSquareEquation(boolean b) {
		squareEquation=b;
	}
	public boolean getIsSquareEquation() {
		return squareEquation;
	}
}

Servlet_control.java

package myservlet.control;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import mybean.data.circle_bean;

public class circle_Servlet extends HttpServlet{
	   public void init(ServletConfig config) throws ServletException{
		      super.init(config);
		   }
	   public void doPost(HttpServletRequest request,HttpServletResponse response)
               throws IOException, ServletException{
		   circle_bean circle_bean=new circle_bean();
            request.setAttribute("circle_bean", circle_bean);
            double radius=Double.parseDouble(request.getParameter("radius"));
            
            circle_bean.setRadius(radius);
            double area=0;
            area=3.14*radius*radius;
            circle_bean.setArea(area);
            RequestDispatcher dispatcher=request.getRequestDispatcher("show_area.jsp");
            dispatcher.forward(request, response);
            }


}

HandleData.java

package myservlet.control;

import mybean.data.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HandleData  extends HttpServlet{
	   public void init(ServletConfig config) throws ServletException{
		      super.init(config);
		   }
	   public void doPost(HttpServletRequest request,HttpServletResponse response)
            throws IOException, ServletException{
		   Equation equ=new Equation();
		   request.setAttribute("equation", equ);
		   double a= Double.parseDouble(request.getParameter("a"));
		   double b= Double.parseDouble(request.getParameter("b"));
		   double c= Double.parseDouble(request.getParameter("c"));
		   equ.setA(a);
		   equ.setB(b);
		   equ.setC(c);
		   if(a!=0)
			   equ.setIsSquareEquation(true);
		   else
			   equ.setIsSquareEquation(true);
		   double disk=b*b-4*a*c;
		   if(disk<0) {
			   equ.setRootOne("无实根");
			   equ.setRootTwo("无实根");
		   }
		   else {
			   double root1=(-b+Math.sqrt(disk))/(2*a),
			          root2=(-b-Math.sqrt(disk))/(2*a);
			   equ.setRootOne(""+root1);
			   equ.setRootTwo(""+root2);
		   }
		   RequestDispatcher dispatcher=request.getRequestDispatcher("show.jsp");
		   dispatcher.forward(request, response);
	   }
	   public void doGet(HttpServletRequest request,HttpServletResponse response)
	            throws IOException, ServletException{
		   doPost(request,response);
	   }

}

2.程序结构图

程序结构
在这里插入图片描述

实现效果
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九芒星#

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值