设计思路:
1需要的工具以及实现这个算法和代码的事先条件。
(1)sql server里面建议一个叫t_result的表)(当然你起什么名字都可以),里面输入所需要的列名。id,firstnumber,secondnumber,thirdnumber,operator,result。
(2)eslisp 导入jdbc包(自己去百度找,谢谢.),连接数据库需要。
(3)导入jsp的包。
2思路:
1.连接数据库,并实现增删改查。
2 设计一个随机生成计算式的函数方法。
3 jsp页面设计4个,第一个界面输入时间以及题目数,第二个界面利用for循环,进行输入次数的随机生成计算式存入数据库,第三个界面进行遍历输入数据库中的所有计算式,在列表里面输出。
代码参上:
1连接数据库(sql server的)
package com.gao.msg.Utli; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DBUtil { public static Connection getConnection() { try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); } //try catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { e.printStackTrace(); }//catch String user="sa"; String password="123456"; String url="jdbc:sqlserver://localhost:1433;DatabaseName=Text"; Connection connection =null; try { connection=DriverManager.getConnection(url, user, password); } //try catch (SQLException e) { e.printStackTrace(); }//catch return connection; }//connection public static void close(Connection connection) { try { if(connection!=null) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } }//close connection public static void close(PreparedStatement preparedStatement) { try { if(preparedStatement!=null) { preparedStatement.close(); } } catch (SQLException e) { e.printStackTrace(); } }//close preparedStatement public static void close(ResultSet resultSet) { try { if(resultSet!=null) { resultSet.close(); } } catch (SQLException e) { e.printStackTrace(); } } }//class
2 增删改查:
(1)接口类。
package com.gao.msg.Dao;
import java.util.List;
import com.gao.msg.model.User;
public interface IUserDao {
public void add(User user);
public void delete(int id);
public int load(int id);
public List<User> load();
}
2实现类:
package com.gao.msg.Dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.gao.msg.Utli.DBUtil; import com.gao.msg.model.User; public class UserDaoImpl implements IUserDao { @Override public void add(User user) //添加 { Connection connection=DBUtil.getConnection(); String sql="insert into t_result (id,firstnumber,secondnumber,thirdnumber,result,operator) values(?,?,?,?,?,?)"; PreparedStatement preparedStatement=null; try { preparedStatement=connection.prepareStatement(sql); preparedStatement.setInt(1, user.getId()); preparedStatement.setInt(2, user.getFirstnumber()); preparedStatement.setInt(3, user.getSecondnumber()); preparedStatement.setInt(4, user.getThirdnumber()); preparedStatement.setInt(5, user.getResult()); preparedStatement.setString(6, user.getOperator()); preparedStatement.executeUpdate(); }//try catch (SQLException e) { e.printStackTrace(); }//catch finally { DBUtil.close(preparedStatement); DBUtil.close(connection); }//finally }//add public void delete(int id)//删除 { Connection connection=DBUtil.getConnection(); String sql="delete from t_result where id=?"; PreparedStatement preparedStatement=null; try { preparedStatement=connection.prepareStatement(sql); preparedStatement.setInt(1, id); preparedStatement.executeUpdate(); } //try catch (SQLException e) { e.printStackTrace(); }//catch finally { DBUtil.close(connection); DBUtil.close(preparedStatement); }//finally }//delete public int load(int id) { Connection connection=DBUtil.getConnection(); String sql="select * from t_result where id = ?"; PreparedStatement preparedStatement=null; ResultSet resultSet=null; int result=0; try { preparedStatement=connection.prepareStatement(sql); preparedStatement.setInt(1, id); resultSet=preparedStatement.executeQuery(); while(resultSet.next()) { result=resultSet.getInt("result"); }//while } //try catch (SQLException e) { e.printStackTrace(); }//catch finally { DBUtil.close(connection); DBUtil.close(preparedStatement); }//finally return result; }//load public List<User> load() { Connection connection = DBUtil.getConnection(); //准备sql语句 String sql = "select * from t_result"; //创建语句传输对象 PreparedStatement preparedStatement = null; ResultSet resultSet = null; //集合中只能放入user对象 List<User> users = new ArrayList<User>(); User user = null; try { preparedStatement = connection.prepareStatement(sql); resultSet = preparedStatement.executeQuery(); while(resultSet.next()) { user = new User(); user.setId(resultSet.getInt("id")); user.setFirstnumber(resultSet.getInt("firstnumber")); user.setSecondnumber(resultSet.getInt("secondnumber")); user.setThirdnumber(resultSet.getInt("thirdnumber")); user.setResult(resultSet.getInt("result")); user.setOperator(resultSet.getString("operator")); users.add(user); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { DBUtil.close(resultSet); DBUtil.close(preparedStatement); DBUtil.close(connection); } return users; } }//class
生成随机算式的方法:
(1)随机数生成:
package com.gao.msg.faction; import java.util.Random; class Romdomnumber { public int randomunmber(int number) { Random random=new Random(); int b=random.nextInt(number); return b; }//Randomnumber }
(2)利用随机数生成算式:
package com.gao.msg.faction; import com.gao.msg.Dao.UserDaoImpl; import com.gao.msg.model.User; public class yunsuan { int firstnumber; int secondnumber; int thirdnumber; int operator; int panduan; UserDaoImpl userdao=new UserDaoImpl(); public void xfaction(int id) { Romdomnumber xromdomnumber=new Romdomnumber(); User user=new User(); operator=xromdomnumber.randomunmber(4)+1; if(operator==1) { user.setId(id); user.setOperator("+"); while(true){ firstnumber=xromdomnumber.randomunmber(101); secondnumber=xromdomnumber.randomunmber(101); panduan=xromdomnumber.randomunmber(2); if(panduan==0) { thirdnumber=xromdomnumber.randomunmber(101); }//if else { thirdnumber=0; }//else if((firstnumber+secondnumber+thirdnumber)<=100) { break; }//if }//while user.setFirstnumber(firstnumber); user.setSecondnumber(secondnumber); user.setThirdnumber(thirdnumber); user.setResult(firstnumber+secondnumber+thirdnumber); }//if(operator==1) else if(operator==2) { user.setId(id); user.setOperator("-"); while(true){ firstnumber=xromdomnumber.randomunmber(101); secondnumber=xromdomnumber.randomunmber(101); panduan=xromdomnumber.randomunmber(2); if(panduan==0) { thirdnumber=xromdomnumber.randomunmber(101); }//if else { thirdnumber=0; }//else if((firstnumber-secondnumber-thirdnumber)>0) { break; }//if }//while user.setFirstnumber(firstnumber); user.setSecondnumber(secondnumber); user.setThirdnumber(thirdnumber); user.setResult(firstnumber-secondnumber-thirdnumber); }//if(operator==2) else if(operator==3) { user.setId(id); user.setOperator("×"); firstnumber=xromdomnumber.randomunmber(11); secondnumber=xromdomnumber.randomunmber(11); while(true) { if((firstnumber*secondnumber)<=100) { break; } }//while user.setFirstnumber(firstnumber); user.setSecondnumber(secondnumber); user.setThirdnumber(0); user.setResult(firstnumber*secondnumber); }//if(operator==3) else { user.setId(id); user.setOperator("÷"); while(true) { firstnumber=xromdomnumber.randomunmber(101); secondnumber=xromdomnumber.randomunmber(10)+1; if((firstnumber%secondnumber)==0) { break; }//if }//while user.setFirstnumber(firstnumber); user.setSecondnumber(secondnumber); user.setThirdnumber(0); user.setResult(firstnumber/secondnumber); }//if(operator==4) userdao.add(user); }//xfaction }//yunsuan
User类,用来储存各种数据:
package com.gao.msg.model; public class User { private int id; private int firstnumber; private int secondnumber; private int thirdnumber; private String operator; public String getOperator() { return operator; } public void setOperator(String operator) { this.operator = operator; } public int getFirstnumber() { return firstnumber; } public void setFirstnumber(int firstnumber) { this.firstnumber = firstnumber; } public int getSecondnumber() { return secondnumber; } public void setSecondnumber(int secondnumber) { this.secondnumber = secondnumber; } public int getThirdnumber() { return thirdnumber; } public void setThirdnumber(int thirdnumber) { this.thirdnumber = thirdnumber; } private int result; public int getId() { return id; } public void setId(int id) { this.id = id; } public int getResult() { return result; } public void setResult(int result) { this.result = result; } }
jsp的输入页面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <%@ page language="java" contentType="text/html; charset=UTf-8" pageEncoding="UTf-8"%> <meta http-equiv="Content-Type" content="text/html; charset=UTf-8"> <title>选择界面</title> <style type="text/css"> <!-- .STYLE2 {color: #0000FF} .STYLE3 {color: #FFFF00} --> </style> </head> <body background=C:Users111Pictures22.jpg> <form action="select.jsp" > <table width="400" height="189" border="1" align="center"> <tr align="center" > </tr> <tr align="center"> <td align="left" bgcolor="#CCE8CF"><span class="STYLE2">请输入出题数</span></td> <td><input type="text" name="num2"/></td> </tr> <tr align="center"> <td align="left"><span class="STYLE3">请输入答题时间</span></td> <td><input type="text" name="num"/> </td> </tr> <tr align="center"> <td colspan="2"><input name="submit" type="submit" value="确定" /> </td> </tr> </table> </form> </body> </html>
题目生成:
<%@page import="com.gao.msg.faction.yunsuan"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <% String number=request.getParameter("number"); int num=Integer.parseInt(request.getParameter("num")); yunsuan yun=new yunsuan(); int i=0; for(i=1;i<=num;i++) { yun.xfaction(i); }//for response.sendRedirect("list.jsp"); %> </html>
题目列表:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%@page import="java.util.List"%> <%@page import="com.gao.msg.Dao.UserDaoImpl"%> <%@page import="com.gao.msg.model.User"%> <html> <head> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>习题</title> <style type="text/css"> <!-- .STYLE3 { font-family: "宋体"; font-size: 24px; } body { background:C:Users111Pictures333.jpg; } --> </style> </head> <% UserDaoImpl userDao=new UserDaoImpl(); List<User> users = userDao.load(); %> <body background="C:Users111Pictures333.jpg"> <form action="judge.jsp"> <table align="left" border="1" width="464"> <tr> <td width="216" height="70" bgcolor="#FFCC33">题目</td> <td width="232" bgcolor="#CC6699">请输入结果</td> </tr> <% int ni=0; for( User user : users ){ %> <tr> <td height="96" bgcolor="#00FF00"> <span class="STYLE3"><%=user.getFirstnumber()%> <%=user.getOperator()%> <%=user.getSecondnumber()%> <%if(user.getThirdnumber()!=0){%> <%=user.getOperator()%> <%=user.getThirdnumber() %> <%} %> =</span></td> <td bgcolor="#0066FF"> <% ni=ni+1; %> <input type="text" name="<%=ni%>"/> </td> </tr> <% } %> <tr align="center"> <td height="91" colspan="2" bgcolor="#FF0000"> <input type="submit" value="确定提交" /> </td> </tr> </table> 、 </form> </body> </html>
结果输出:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%@page import="org.apache.coyote.http11.NpnHandler"%> <%@page import="java.util.List"%> <%@page import="com.gao.msg.Dao.UserDaoImpl"%> <%@page import="com.gao.msg.model.User"%> <html> <head> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>测试结果</title> <style type="text/css"> .container{font-family:宋体;font-size:18px;font-weight:bold;720px;} H1{font-family:宋体;font-size:44px;color:#B22222;letter-spacing:12px;} ul{list-style-type:none;margin:0;padding:0;overflow:hidden;} </style> </head> <body background=C:Users111Pictures777.jpg> <% UserDaoImpl UserDao=new UserDaoImpl(); List<User> users = UserDao.load(); int m=0;int n=0;int stm=0; for( User user : users ){ m=m+1; } %> <% for(n=1;n<=m;n++) { String x=Integer.toString(n); int id=-2; String y=request.getParameter(x); if(y==null||"".equals(y)) { id=-1;} else { id = Integer.parseInt(y);} if(id==UserDao.load(n)) { stm=stm+1; System.out.println(stm); } } %> <h1 align="center">总题数:<%=m %>题</h1> <h1 align="center">答对:<%=stm %>题</h1>
<% for(User user : users ) { int id=user.getId(); UserDao.delete(id); } %> <blockquote> <blockquote> <blockquote> <blockquote> <blockquote> <blockquote> <blockquote> <blockquote> <a href="InputTitle.jsp" >继续答题</a> </blockquote> </blockquote> </blockquote> </blockquote> </blockquote> </blockquote> </blockquote> </blockquote> </body> </html>
运行结果:
】