网页版四则运算

结对开发伙伴:杨程鑫

博客链接:http://www.cnblogs.com/shenshenxin

设计思路:主页进行用户自定义操作,然后把输入的参数传递到第二个页面进行题目显示,并提示用户进行结果输入,然后在第三个界面给出正确答案并判断对错,传递的参数利用session和request进行传输。

程序源代码:

NewFile.jsp文件

 1 <%@ page language="java" contentType="text/html; charset=GBK"
 2     pageEncoding="GBK"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=GBK">
 7 <title>四则混合运算器</title>
 8 <script>
 9 function myFunction()
10 {
11 var x=document.getElementById("demo").value;
12 if(x==""||isNaN(x))
13     {
14     alert("限制条件输入错误,请重新输入");
15     }
16 }
17 </script>
18 </head>
19 <body>
20 <form id="form1" mehod="post" action="request1.jsp">
21 <center>
22 请输入运算上限:<input id="demo" type="test" name="max"><hr/>
23 请输入题目数量:<input id="demo" type="test" name="num"><hr/>
24 请选定具体参数:<br/>
25 是否支持乘除:
26 是<input type="radio" name="ccselect" value="1">
27 否<input type="radio" name="ccselect" value="0"><hr/>
28 是否进行混合运算:
29 是<input type="radio" name="hhselect" value="1">
30 否<input type="radio" name="hhselect" value="0"><hr/>
31 <input type="submit" οnclick="myFunction()" value="提交">
32 <input type="reset" value="重置">
33 </center>
34 </form>
35 </body>
36 </html>

request.jsp文件

  1 <%@ page language="java" contentType="text/html; charset=GBK"
  2     pageEncoding="GBK"%>
  3 <%@ page import="java.util.*"%>
  4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
  5     http://www.w3.org/TR/html4/loose.dtd">
  6 <html>
  7 <head>
  8 <meta http-equiv="Content-Type" content="text/html; charset=GBK">
  9 <title>获取参数</title>
 10 </head>
 11 <body>
 12     <form action="judge.jsp" method="post">
 13         <%
 14             int max = Integer.parseInt(request.getParameter("max"));
 15             int num = Integer.parseInt(request.getParameter("num"));
 16             int ccselect = Integer.parseInt(request.getParameter("ccselect"));
 17             int hhselect = Integer.parseInt(request.getParameter("hhselect"));
 18             int[] re = new int[num];
 19             int[] result = new int[num];
 20             if (ccselect == 1 && hhselect == 0) {
 21                 for (int i = 0; i < max; i++) {
 22                     Random random = new Random();
 23                     int fuhao = Math.abs(random.nextInt() % 4);
 24                     int a = Math.abs(random.nextInt() % (num - 1)) + 1;
 25                     int b = Math.abs(random.nextInt() % (num - 1)) + 1;
 26                     if (fuhao == 0) //加法运算
 27                     {
 28                         result[i] = a + b;
 29                         out.println(a + "+" + b + "=" + "</br>");
 30                     }
 31                     if (fuhao == 1)//减法运算
 32                     {
 33                         if (a >= b) {
 34                             result[i] = a - b;
 35                             out.println(a + "-" + b + "=" + "</br>");
 36                         } else {
 37                             result[i] = b - a;
 38                             out.println(b + "-" + a + "=" + "</br>");
 39                         }
 40                     }
 41                     if (fuhao == 2)//乘法运算
 42                     {
 43                         result[i] = a * b;
 44                         out.println(a + "*" + b + "=" + "</br>");
 45                     }
 46                     if (fuhao == 3)//除法运算
 47                     {
 48                         result[i] = a / b;
 49                         out.println(a + "/" + b + "=" + "</br>");
 50                     }
 51         %>
 52         <input type="text" name=<%=re[i]%>><br>
 53         <%
 54             }
 55             } else if (ccselect == 0 && hhselect == 0) {
 56                 for (int i = 0; i < max; i++) {
 57                     Random random = new Random();
 58                     int fuhao = Math.abs(random.nextInt() % 2);
 59                     int a = Math.abs(random.nextInt() % (num - 1)) + 1;
 60                     int b = Math.abs(random.nextInt() % (num - 1)) + 1;
 61                     if (fuhao == 0) //加法运算
 62                     {
 63                         result[i] = a + b;
 64                         out.println(a + "+" + b + "=" + "</br>");
 65                     }
 66                     if (fuhao == 1)//减法运算
 67                     {
 68                         if (a >= b) {
 69                             result[i] = a - b;
 70                             out.println(a + "-" + b + "=" + "</br>");
 71                         } else {
 72                             result[i] = b - a;
 73                             out.println(b + "-" + a + "=" + "</br>");
 74                         }
 75                     }
 76         %>
 77         <input type="text" name=<%=re[i]%>><br>
 78         <%
 79             }
 80             }
 81             
 82             /*else if(ccselect==0&&hhselect==1)
 83             {
 84                 int length,chlen,j,k,t;
 85                 Random random = new Random();
 86                 int number[] = new int[20];
 87                 char chs[] = new char[20];
 88                 char ch[]={'+','-','*','/'};
 89                 for(int i=0;i<max;i++)
 90                 {
 91                     length = Math.abs(random.nextInt()%2)+2;
 92                     chlen = length - 1;
 93                     for(j=0;j<length;j++)
 94                     {
 95             number[j]=Math.abs(random.nextInt()%(num-1))+1;
 96                     }
 97                     for(j=0;j<chlen;j++)
 98                     {
 99             chs[j]=ch[Math.abs(random.nextInt()%4)];
100                     }
101                     chs[chlen]='=';
102                     for(t=0;t<length;i++)
103                     {
104                         out.println(number[t] + chs[t] +"</br>");
105                     }
106                 }
107             }*/
108                 
109             session.setAttribute("v1", re);
110             session.setAttribute("v2", result);
111             session.setAttribute("v3",num); 
112         %><br /> <input type="submit" name="submit" value="提交">
113         </form>
114 </body>
115 </html>

judge.jsp文件

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10 <center>
11 <%
12             
13             int[] s = (int[]) session.getAttribute("v1");
14             int[] k = (int[]) session.getAttribute("v2");
15             int n = (Integer) session.getAttribute("v3");
16             
17             //int n = Integer.parseInt((String) session.getAttribute("v3"));
18             int right= 0;
19             for (int i = 0; i < n; i++){
20                 out.print("第 " + i + " 题 ");
21             
22             if (s[i]==k[i]) {
23                     out.print(" 回答正确!");
24                     right++;
25                 } else
26                     out.print(" 回答错误,正确答案是: " + k[i]);
27 
28                 out.println("<br>");
29             }
30             out.print("总共做对 " + right + " 题 ");
31         %><br> <input type="button" value="返回首页"
32             onClick="window.location.href='NewFile.jsp'"> 
33             <input type="button" value="关闭" onClick="window.close();">
34             </center>
35 </body>
36 </html>

运行结果截图:

总结:具体实现代码基本是按照原先的改编,提高了我们的是web的编写能力,对java做了复习。

转载于:https://www.cnblogs.com/hyluckydog/p/5375628.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是实现步骤: 1. 安装 Flask 框架,可以使用命令 `pip install flask` 进行安装。 2. 在项目目录下创建一个名为 `app.py` 的 Python 文件。 3. 在 `app.py` 中导入 Flask 模块,创建一个 Flask 应用对象,代码如下: ```python from flask import Flask app = Flask(__name__) ``` 4. 在应用对象上使用 `@app.route` 装饰器来定义一个路由,该路由对应着我们要实现的四则运算页面。 ```python @app.route('/') def index(): return ''' <html> <body> <form action="/calculate" method="post"> <label>请输入第一个数:</label> <input type="text" name="num1"><br> <label>请输入第二个数:</label> <input type="text" name="num2"><br> <label>请选择运算符:</label> <select name="operator"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select><br> <input type="submit" value="提交"> </form> </body> </html> ''' ``` 在这个路由函数中,我们返回了一个 HTML 表单,该表单包含了两个文本输入框和一个下拉列表框,用户可以在这个表单中输入两个数和选择一个运算符,然后点击提交按钮。 当用户提交表单时,将会向 `/calculate` 路由发送一个 POST 请求,我们需要在下面的步骤中实现这个路由。 5. 在应用对象上使用 `@app.route` 装饰器来定义一个新的路由,该路由对应着计算结果的页面。 ```python @app.route('/calculate', methods=['POST']) def calculate(): num1 = float(request.form['num1']) num2 = float(request.form['num2']) operator = request.form['operator'] if operator == '+': result = num1 + num2 elif operator == '-': result = num1 - num2 elif operator == '*': result = num1 * num2 else: result = num1 / num2 return f'计算结果为:{result}' ``` 在这个路由函数中,我们首先从表单中获取用户输入的两个数和运算符,然后根据运算符进行相应的计算,最后将计算结果返回给用户。 6. 最后,在 `app.py` 中添加以下代码来启动应用程序: ```python if __name__ == '__main__': app.run() ``` 现在,运行这个应用程序,通过浏览器访问 `http://localhost:5000` 即可看到四则运算页面。输入两个数和选择一个运算符,点击提交按钮,即可看到计算结果页面。 完整代码如下: ```python from flask import Flask, request app = Flask(__name__) @app.route('/') def index(): return ''' <html> <body> <form action="/calculate" method="post"> <label>请输入第一个数:</label> <input type="text" name="num1"><br> <label>请输入第二个数:</label> <input type="text" name="num2"><br> <label>请选择运算符:</label> <select name="operator"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select><br> <input type="submit" value="提交"> </form> </body> </html> ''' @app.route('/calculate', methods=['POST']) def calculate(): num1 = float(request.form['num1']) num2 = float(request.form['num2']) operator = request.form['operator'] if operator == '+': result = num1 + num2 elif operator == '-': result = num1 - num2 elif operator == '*': result = num1 * num2 else: result = num1 / num2 return f'计算结果为:{result}' if __name__ == '__main__': app.run() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值