博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
四则运算2(持续更新)
阅读量:6348 次
发布时间:2019-06-22

本文共 9506 字,大约阅读时间需要 31 分钟。

1.程序设计思想

(1)      首先绘制一个界面,里面含有出题个数、出题范围、答题时间的输入框,含有提交按钮;

(2)      写一个传递这三个参数的jsp文件,获取这三个参数,然后跳转到整数这个页面;

(3)      创建一个整数jsp,在这个页面中写一个类,在这个类中产生四则运算表达式、获取表达式答案、判断是否有重复的表达式、获取运算符四个方法。然后写主函数,产生要求个数的表达式,显示出来,同时计时,时间结束后停止答题,跳转到获取页面;

(4)      获取页面中将所有计算式、正确答案、使用者输入的答案都显示出来,并显示出使用者答案正确的题号和错误题号。

2.源程序代码

zhujiemian.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
Insert title here
请输入出题的个数:
请选择出题的范围:
请选择答题时间:

chuandi.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
Insert title here<%try{ int tishu=Integer.parseInt(request.getParameter("geshu")); int fanwei=Integer.parseInt(request.getParameter("fanwei")); int shijian=Integer.parseInt(request.getParameter("shijian")); session.setAttribute("tishu", tishu); session.setAttribute("fanwei", fanwei); session.setAttribute("shijian", shijian); response.setHeader("refresh","0;url = zhengshu.jsp");}catch(Exception e){ %> <% response.setHeader("refresh","0;url = error.jsp");}%>

zhengshu.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8" import="java.util.Random" import="java.sql.Connection"     import="java.sql.DriverManager"%><%  String path = request.getContextPath();  String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  %>    <%         String url = basePath;   //设置跳转的地址  %>
Insert title here

10 秒钟答题结束

<%!class Suan1//生成整数计算的类{ private int x; private int y; private int operate;//定义两个变量,还有一个符号变量 public Random random=new Random();//定义随机数 private String jisuanshi;//生成的计算式储存在jisuanshi里面 int fanwei; public String shengcheng(int fanwei1)//自动生成数的函数 { fanwei=fanwei1; operate=random.nextInt(4);//生成符号 String fuhao; x=random.nextInt(fanwei);//生成100以内的自然数 y=random.nextInt(fanwei); if(operate==0)//0是加法 { fuhao="+"; jisuanshi=String.valueOf(x)+fuhao+String.valueOf(y); } else if(operate==1)//1是减法 { fuhao="-"; if(x>=y) { jisuanshi=String.valueOf(x)+fuhao+String.valueOf(y); } else { jisuanshi=String.valueOf(y)+fuhao+String.valueOf(x); } } else if(operate==2)//乘法 { fuhao="*"; x=random.nextInt(10);//生成10以内的自然数 y=random.nextInt(10); jisuanshi=String.valueOf(x)+fuhao+String.valueOf(y); } else { fuhao="/";//除法 x=random.nextInt(10); y=random.nextInt(10); int z=x*y; for(int i=0;;i++) { if(y==0) { x=random.nextInt(10); y=random.nextInt(10); z=x*y; } else { break; } } x=z; jisuanshi=String.valueOf(x)+fuhao+String.valueOf(y); } return jisuanshi; } public String shuchu()//定义输出函数 { if(operate==0) { return (String.valueOf(x+y));//并且返回计算的结果 } else if(operate==1) { if(x>=y)//将较大的数放在前面,不能出现负数 { return (String.valueOf(x-y)); } else { return (String.valueOf(y-x)); } } else if(operate==2) { return (String.valueOf(x*y)); } else { return (String.valueOf(x/y)); } } public int fanhuioperate() { return operate; } public int jianyan(String a[],int s)//检验是否有重复的式子,如果有返回0,没有就返回1 { int flag=1; for(int i=0;i
<%tishu=Integer.parseInt((String.valueOf(session.getAttribute("tishu"))));fanwei=Integer.parseInt((String.valueOf(session.getAttribute("fanwei"))));session.setAttribute("tishu", tishu);if(m
<%out.print(shuju[m]+"="); %>
请输入答案:
<% } else { daan=a.shuchu(); session.setAttribute("shuju", shuju[m]); session.setAttribute("daan", daan); session.setAttribute("m", m); %>
<%out.print(shuju[m]+"=");%>
请输入答案:
<% m++; flag=0; } } else { response.setHeader("refresh","1;url = zhengshu.jsp"); }}%>

huoqu.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8" import="java.sql.Connection" import="java.sql.DriverManager"     import="java.sql.PreparedStatement" import ="java.sql.ResultSet"    import="java.util.ArrayList" import="java.util.List"    import="java.sql.SQLException"%>
Insert title here<%!int tishu1;String error="",zhengque=""; %><%try{ Connection con = null; //定义一个MYSQL链接对象 Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动 con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root"); //链接本地MYSQL java.sql.Statement stmt; //创建声明 stmt = con.createStatement(); String shuju=String.valueOf(session.getAttribute("shuju")); String daan=String.valueOf(session.getAttribute("daan")); // String shuju=(String)session.getAttribute("shuju"); // String daan=(String)session.getAttribute("daan"); int m=Integer.parseInt(String.valueOf(session.getAttribute("m"))); tishu1=Integer.parseInt((String.valueOf(session.getAttribute("tishu")))); String daan1=request.getParameter("daan1"); String sql="INSERT INTO grade (shizi,result,userresult) VALUES ('"+shuju+" = "+"','"+daan+"','"+daan1+"')"; stmt.executeUpdate(sql); if(daan.equals(daan1)) { zhengque=zhengque+String.valueOf(m+1)+","; } else { error=error+String.valueOf(m+1)+","; } if(m+1==tishu1) { sql="INSERT INTO Grade (zhengque,cuowu) VALUES ('"+zhengque+"','"+error+"')"; stmt.executeUpdate(sql); %>
<% class User{ private String result; private String userresult; private String shizi; public String getShizi() { return shizi; } public void setShizi(String shizi) { this.shizi = shizi; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } public String getUserresult() { return userresult; } public void setUserresult(String userresult) { this.userresult = userresult; } } //准备sql语句 sql = "select * from grade "; //创建语句传输对象 PreparedStatement preparedStatement = null; ResultSet resultSet = null; //集合中只能放入user对象 List
users = new ArrayList
(); User user = null; try { preparedStatement = con.prepareStatement(sql); resultSet = preparedStatement.executeQuery(); while(resultSet.next()) { user = new User(); user.setShizi(resultSet.getString("Shizi")); user.setResult(resultSet.getString("result")); user.setUserresult(resultSet.getString("userresult")); users.add(user); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } /*finally { DBUtil.close(resultSet); DBUtil.close(preparedStatement); DBUtil.close(con); }*/ for( User user1 : users ){ %>
<%=user1.getShizi() %> <%=user1.getResult() %> <%=user1.getUserresult() %>
<% } %> <% out.print("
"+"正确的题目是:"+zhengque+"
"+"错误的题目是:"+error+"
"+"点击确定返回主界面"); zhengque=""; error=""; %>
<%}else{response.setHeader("refresh","0;url = zhengshu.jsp");}}catch (Exception e) { System.out.print("MYSQL ERROR:" + e.getMessage());} %>

3.运行结果截图

4.编程总结分析

当我不动手做的时候,我觉得太难,自己肯定不会,但是当我真正被逼到没有选择的时候,我一点一点写,一点一点查资料,直到我写完的时候,我才发现,不是我写不出来,而是我不敢写,对它有很深的恐惧感,而且我发现我应该逼一逼自己,不能太过安逸。

 

转载于:https://www.cnblogs.com/wxd136/p/7994565.html

你可能感兴趣的文章
极客工具
查看>>
【14】Python100例基础练习(1)
查看>>
boost bind使用指南
查看>>
使用ntpdate更新系统时间
查看>>
Android M 特性 Doze and App Standby模式详解
查看>>
IE FF(火狐) line-height兼容详解
查看>>
谷歌Pixel 3吸引三星用户, 但未动摇iPhone地位
查看>>
python获取当前工作目录
查看>>
VUE中使用vuex,cookie,全局变量(少代码示例)
查看>>
grep -w 的解析_学习笔记
查看>>
量化交易之启航
查看>>
TX Text Control文字处理教程(3)打印操作
查看>>
CENTOS 7 如何修改IP地址为静态!
查看>>
MyCat分片算法学习(纯转)
查看>>
IO Foundation 3 -文件解析器 FileParser
查看>>
linux学习经验之谈
查看>>
mysqld_multi实现多主一从复制
查看>>
中介模式
查看>>
JS中将变量转为字符串
查看>>
servlet笔记
查看>>