设计思路:

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的)

  1. package com.gao.msg.Utli;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8.  
  9. public class DBUtil {
  10. public static Connection getConnection()
  11. {
  12. try {
  13. Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
  14. } //try
  15. catch (InstantiationException | IllegalAccessException | ClassNotFoundException e)
  16. {
  17. e.printStackTrace();
  18. }//catch
  19. String user="sa";
  20. String password="123456";
  21. String url="jdbc:sqlserver://localhost:1433;DatabaseName=Text";
  22. Connection connection =null;
  23. try {
  24. connection=DriverManager.getConnection(url, user, password);
  25. } //try
  26. catch (SQLException e) {
  27. e.printStackTrace();
  28. }//catch
  29. return connection;
  30. }//connection
  31. public static void close(Connection connection)
  32. {
  33. try {
  34. if(connection!=null)
  35. {
  36. connection.close();
  37. }
  38. } catch (SQLException e) {
  39. e.printStackTrace();
  40. }
  41. }//close connection
  42. public static void close(PreparedStatement preparedStatement)
  43. {
  44. try {
  45. if(preparedStatement!=null)
  46. {
  47. preparedStatement.close();
  48. }
  49. } catch (SQLException e) {
  50. e.printStackTrace();
  51. }
  52. }//close preparedStatement
  53.  
  54. public static void close(ResultSet resultSet)
  55. {
  56. try {
  57. if(resultSet!=null)
  58. {
  59. resultSet.close();
  60. }
  61. } catch (SQLException e) {
  62. e.printStackTrace();
  63. }
  64. }
  65. }//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实现类:

  1. package com.gao.msg.Dao;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9.  
  10. import com.gao.msg.Utli.DBUtil;
  11. import com.gao.msg.model.User;
  12.  
  13. public class UserDaoImpl implements IUserDao {
  14.  
  15. @Override
  16. public void add(User user) //添加
  17. {
  18. Connection connection=DBUtil.getConnection();
  19. String sql="insert into t_result (id,firstnumber,secondnumber,thirdnumber,result,operator) values(?,?,?,?,?,?)";
  20. PreparedStatement preparedStatement=null;
  21. try
  22. {
  23. preparedStatement=connection.prepareStatement(sql);
  24. preparedStatement.setInt(1, user.getId());
  25. preparedStatement.setInt(2, user.getFirstnumber());
  26. preparedStatement.setInt(3, user.getSecondnumber());
  27. preparedStatement.setInt(4, user.getThirdnumber());
  28. preparedStatement.setInt(5, user.getResult());
  29. preparedStatement.setString(6, user.getOperator());
  30. preparedStatement.executeUpdate();
  31. }//try
  32. catch (SQLException e)
  33. {
  34. e.printStackTrace();
  35. }//catch
  36. finally
  37. {
  38. DBUtil.close(preparedStatement);
  39. DBUtil.close(connection);
  40. }//finally
  41.  
  42. }//add
  43. public void delete(int id)//删除
  44. {
  45. Connection connection=DBUtil.getConnection();
  46. String sql="delete from t_result where id=?";
  47. PreparedStatement preparedStatement=null;
  48. try
  49. {
  50. preparedStatement=connection.prepareStatement(sql);
  51. preparedStatement.setInt(1, id);
  52. preparedStatement.executeUpdate();
  53. } //try
  54. catch (SQLException e)
  55. {
  56. e.printStackTrace();
  57. }//catch
  58. finally
  59. {
  60. DBUtil.close(connection);
  61. DBUtil.close(preparedStatement);
  62. }//finally
  63. }//delete
  64. public int load(int id)
  65. {
  66. Connection connection=DBUtil.getConnection();
  67. String sql="select * from t_result where id = ?";
  68. PreparedStatement preparedStatement=null;
  69. ResultSet resultSet=null;
  70. int result=0;
  71. try
  72. {
  73. preparedStatement=connection.prepareStatement(sql);
  74. preparedStatement.setInt(1, id);
  75. resultSet=preparedStatement.executeQuery();
  76. while(resultSet.next())
  77. {
  78. result=resultSet.getInt("result");
  79. }//while
  80. } //try
  81. catch (SQLException e)
  82. {
  83. e.printStackTrace();
  84. }//catch
  85. finally
  86. {
  87. DBUtil.close(connection);
  88. DBUtil.close(preparedStatement);
  89. }//finally
  90. return result;
  91. }//load
  92. public List<User> load() {
  93. Connection connection = DBUtil.getConnection();
  94. //准备sql语句
  95. String sql = "select * from t_result";
  96. //创建语句传输对象
  97. PreparedStatement preparedStatement = null;
  98. ResultSet resultSet = null;
  99. //集合中只能放入user对象
  100. List<User> users = new ArrayList<User>();
  101. User user = null;
  102. try {
  103. preparedStatement = connection.prepareStatement(sql);
  104. resultSet = preparedStatement.executeQuery();
  105. while(resultSet.next()) {
  106. user = new User();
  107. user.setId(resultSet.getInt("id"));
  108. user.setFirstnumber(resultSet.getInt("firstnumber"));
  109. user.setSecondnumber(resultSet.getInt("secondnumber"));
  110. user.setThirdnumber(resultSet.getInt("thirdnumber"));
  111. user.setResult(resultSet.getInt("result"));
  112. user.setOperator(resultSet.getString("operator"));
  113. users.add(user);
  114. }
  115. } catch (SQLException e) {
  116. // TODO Auto-generated catch block
  117. e.printStackTrace();
  118. }finally {
  119. DBUtil.close(resultSet);
  120. DBUtil.close(preparedStatement);
  121. DBUtil.close(connection);
  122. }
  123. return users;
  124. }
  125.  
  126. }//class

  生成随机算式的方法:

(1)随机数生成:

  1. package com.gao.msg.faction;
  2.  
  3. import java.util.Random;
  4. class Romdomnumber {
  5. public int randomunmber(int number)
  6. {
  7. Random random=new Random();
  8. int b=random.nextInt(number);
  9. return b;
  10. }//Randomnumber
  11.  
  12. }

  (2)利用随机数生成算式:

  1. package com.gao.msg.faction;
  2.  
  3. import com.gao.msg.Dao.UserDaoImpl;
  4. import com.gao.msg.model.User;
  5.  
  6. public class yunsuan
  7. {
  8. int firstnumber;
  9. int secondnumber;
  10. int thirdnumber;
  11. int operator;
  12. int panduan;
  13. UserDaoImpl userdao=new UserDaoImpl();
  14. public void xfaction(int id)
  15. {
  16. Romdomnumber xromdomnumber=new Romdomnumber();
  17. User user=new User();
  18. operator=xromdomnumber.randomunmber(4)+1;
  19. if(operator==1)
  20. {
  21. user.setId(id);
  22. user.setOperator("+");
  23. while(true){
  24. firstnumber=xromdomnumber.randomunmber(101);
  25. secondnumber=xromdomnumber.randomunmber(101);
  26. panduan=xromdomnumber.randomunmber(2);
  27. if(panduan==0)
  28. {
  29. thirdnumber=xromdomnumber.randomunmber(101);
  30. }//if
  31. else
  32. {
  33. thirdnumber=0;
  34. }//else
  35. if((firstnumber+secondnumber+thirdnumber)<=100)
  36. {
  37. break;
  38. }//if
  39. }//while
  40. user.setFirstnumber(firstnumber);
  41. user.setSecondnumber(secondnumber);
  42. user.setThirdnumber(thirdnumber);
  43. user.setResult(firstnumber+secondnumber+thirdnumber);
  44. }//if(operator==1)
  45. else if(operator==2)
  46. {
  47. user.setId(id);
  48. user.setOperator("-");
  49. while(true){
  50. firstnumber=xromdomnumber.randomunmber(101);
  51. secondnumber=xromdomnumber.randomunmber(101);
  52. panduan=xromdomnumber.randomunmber(2);
  53. if(panduan==0)
  54. {
  55. thirdnumber=xromdomnumber.randomunmber(101);
  56. }//if
  57. else
  58. {
  59. thirdnumber=0;
  60. }//else
  61. if((firstnumber-secondnumber-thirdnumber)>0)
  62. {
  63. break;
  64. }//if
  65. }//while
  66. user.setFirstnumber(firstnumber);
  67. user.setSecondnumber(secondnumber);
  68. user.setThirdnumber(thirdnumber);
  69. user.setResult(firstnumber-secondnumber-thirdnumber);
  70. }//if(operator==2)
  71. else if(operator==3)
  72. {
  73. user.setId(id);
  74. user.setOperator("×");
  75. firstnumber=xromdomnumber.randomunmber(11);
  76. secondnumber=xromdomnumber.randomunmber(11);
  77. while(true)
  78. {
  79. if((firstnumber*secondnumber)<=100)
  80. {
  81. break;
  82. }
  83. }//while
  84. user.setFirstnumber(firstnumber);
  85. user.setSecondnumber(secondnumber);
  86. user.setThirdnumber(0);
  87. user.setResult(firstnumber*secondnumber);
  88. }//if(operator==3)
  89. else
  90. {
  91. user.setId(id);
  92. user.setOperator("÷");
  93. while(true)
  94. {
  95. firstnumber=xromdomnumber.randomunmber(101);
  96. secondnumber=xromdomnumber.randomunmber(10)+1;
  97. if((firstnumber%secondnumber)==0)
  98. {
  99. break;
  100. }//if
  101. }//while
  102. user.setFirstnumber(firstnumber);
  103. user.setSecondnumber(secondnumber);
  104. user.setThirdnumber(0);
  105. user.setResult(firstnumber/secondnumber);
  106. }//if(operator==4)
  107. userdao.add(user);
  108. }//xfaction
  109.  
  110. }//yunsuan

  User类,用来储存各种数据:

  1. package com.gao.msg.model;
  2.  
  3. public class User {
  4. private int id;
  5. private int firstnumber;
  6. private int secondnumber;
  7. private int thirdnumber;
  8. private String operator;
  9. public String getOperator() {
  10. return operator;
  11. }
  12. public void setOperator(String operator) {
  13. this.operator = operator;
  14. }
  15. public int getFirstnumber() {
  16. return firstnumber;
  17. }
  18. public void setFirstnumber(int firstnumber) {
  19. this.firstnumber = firstnumber;
  20. }
  21. public int getSecondnumber() {
  22. return secondnumber;
  23. }
  24. public void setSecondnumber(int secondnumber) {
  25. this.secondnumber = secondnumber;
  26. }
  27. public int getThirdnumber() {
  28. return thirdnumber;
  29. }
  30. public void setThirdnumber(int thirdnumber) {
  31. this.thirdnumber = thirdnumber;
  32. }
  33. private int result;
  34. public int getId() {
  35. return id;
  36. }
  37. public void setId(int id) {
  38. this.id = id;
  39. }
  40. public int getResult() {
  41. return result;
  42. }
  43. public void setResult(int result) {
  44. this.result = result;
  45. }
  46. }

  jsp的输入页面:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <%@ page language="java" contentType="text/html; charset=UTf-8"
  5. pageEncoding="UTf-8"%>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTf-8">
  7. <title>选择界面</title>
  8. <style type="text/css">
  9. <!--
  10. .STYLE2 {color: #0000FF}
  11. .STYLE3 {color: #FFFF00}
  12. -->
  13. </style>
  14. </head>
  15. <body background=C:\Users\111\Pictures\22.jpg>
  16. <form action="select.jsp" >
  17. <table width="400" height="189" border="1" align="center">
  18. <tr align="center" > </tr>
  19. <tr align="center">
  20. <td align="left" bgcolor="#CCE8CF"><span class="STYLE2">请输入出题数</span></td>
  21. <td><input type="text" name="num2"/></td>
  22. </tr>
  23. <tr align="center">
  24. <td align="left"><span class="STYLE3">请输入答题时间</span></td>
  25. <td><input type="text" name="num"/>
  26. </td>
  27. </tr>
  28. <tr align="center">
  29. <td colspan="2"><input name="submit" type="submit" value="确定" />
  30. </td>
  31. </tr>
  32. </table>
  33. </form>
  34. </body>
  35. </html>

  题目生成:

  1. <%@page import="com.gao.msg.faction.yunsuan"%>
  2. <%@ page language="java" contentType="text/html; charset=UTF-8"
  3. pageEncoding="UTF-8"%>
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6.  
  7. <%
  8. String number=request.getParameter("number");
  9. int num=Integer.parseInt(request.getParameter("num"));
  10. yunsuan yun=new yunsuan();
  11. int i=0;
  12. for(i=1;i<=num;i++)
  13. {
  14. yun.xfaction(i);
  15. }//for
  16. response.sendRedirect("list.jsp");
  17. %>
  18.  
  19. </html>

  题目列表:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <%@page import="java.util.List"%>
  3. <%@page import="com.gao.msg.Dao.UserDaoImpl"%>
  4. <%@page import="com.gao.msg.model.User"%>
  5. <html>
  6. <head>
  7. <%@ page language="java" contentType="text/html; charset=UTF-8"
  8. pageEncoding="UTF-8"%>
  9. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  10. <title>习题</title>
  11. <style type="text/css">
  12. <!--
  13. .STYLE3 {
  14. font-family: "宋体";
  15. font-size: 24px;
  16. }
  17. body {
  18. background:C:\Users\111\Pictures\333.jpg;
  19. }
  20. -->
  21. </style>
  22. </head>
  23.  
  24. <%
  25. UserDaoImpl userDao=new UserDaoImpl();
  26. List<User> users = userDao.load();
  27. %>
  28. <body background="C:\Users\111\Pictures\333.jpg">
  29. <form action="judge.jsp">
  30. <table align="left" border="1" width="464">
  31. <tr>
  32. <td width="216" height="70" bgcolor="#FFCC33">题目</td>
  33. <td width="232" bgcolor="#CC6699">请输入结果</td>
  34. </tr>
  35. <% int ni=0;
  36. for( User user : users ){
  37. %>
  38. <tr>
  39. <td height="96" bgcolor="#00FF00"> <span class="STYLE3"><%=user.getFirstnumber()%>
  40. <%=user.getOperator()%>
  41. <%=user.getSecondnumber()%>
  42. <%if(user.getThirdnumber()!=0){%>
  43. <%=user.getOperator()%>
  44. <%=user.getThirdnumber() %>
  45. <%} %>
  46. =</span></td>
  47. <td bgcolor="#0066FF">
  48. <% ni=ni+1; %>
  49. <input type="text" name="<%=ni%>"/>
  50. </td>
  51. </tr>
  52. <%
  53. }
  54. %>
  55. <tr align="center">
  56. <td height="91" colspan="2" bgcolor="#FF0000">
  57. <input type="submit" value="确定提交" />
  58. </td>
  59. </tr>
  60. </table>

  61. </form>
  62. </body>
  63. </html>

  结果输出:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <%@page import="org.apache.coyote.http11.NpnHandler"%>
  3. <%@page import="java.util.List"%>
  4. <%@page import="com.gao.msg.Dao.UserDaoImpl"%>
  5. <%@page import="com.gao.msg.model.User"%>
  6. <html>
  7. <head>
  8. <%@ page language="java" contentType="text/html; charset=UTF-8"
  9. pageEncoding="UTF-8"%>
  10. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  11. <title>测试结果</title>
  12. <style type="text/css">
  13. .container{font-family:宋体;font-size:18px;font-weight:bold;width:720px;}
  14. H1{font-family:宋体;font-size:44px;color:#B22222;letter-spacing:12px;}
  15. ul{list-style-type:none;margin:0;padding:0;overflow:hidden;}
  16. </style>
  17. </head>
  18. <body background=C:\Users\111\Pictures\777.jpg>
  19. <%
  20. UserDaoImpl UserDao=new UserDaoImpl();
  21. List<User> users = UserDao.load();
  22. int m=0;int n=0;int stm=0;
  23. for( User user : users ){
  24. m=m+1;
  25. }
  26. %>
  27. <%
  28. for(n=1;n<=m;n++)
  29. {
  30. String x=Integer.toString(n);
  31. int id=-2;
  32. String y=request.getParameter(x);
  33. if(y==null||"".equals(y))
  34. { id=-1;}
  35. else
  36. { id = Integer.parseInt(y);}
  37. if(id==UserDao.load(n))
  38. {
  39. stm=stm+1;
  40. System.out.println(stm);
  41. }
  42. }
  43. %>
  44. <h1 align="center">总题数:<%=m %>题</h1>
  45.  
  46. <h1 align="center">答对:<%=stm %>题</h1>
  1. <%
  2. for(User user : users )
  3. {
  4. int id=user.getId();
  5. UserDao.delete(id);
  6. }
  7. %>
  8. <blockquote>
  9. <blockquote>
  10. <blockquote>
  11. <blockquote>
  12. <blockquote>
  13. <blockquote>
  14. <blockquote>
  15. <blockquote>
  16. <a href="InputTitle.jsp" >继续答题</a>
  17. </blockquote>
  18. </blockquote>
  19. </blockquote>
  20. </blockquote>
  21. </blockquote>
  22. </blockquote>
  23. </blockquote>
  24. </blockquote>
  25. </body>
  26. </html>

  运行结果:

java+jsp+sql server实现网页版四则运算.的更多相关文章

  1. SQL Server 2016正式版安装(超多图)

    微软数据库SQL Server 2016正式版在2016年6月就发布,由于近期工作忙,一直拖到现在才有时间把安装过程写到博客上,分享给大家.本人一直习惯使用英文版,所以版本和截图都是英文版的.废话少说 ...

  2. win7 安装SQL Server 2005 开发版 图文教程

    转自win7 安装SQL Server 2005 开发版 图文教程 ----------------------------写在安装前------------------------------ 一. ...

  3. Windows XP系统安装SQL Server 2005(开发版)图解

    转自Windows XP系统安装SQL Server 2005(开发版)图解 安装前提:由于有些从网上的下载的项目需要导入SQL Server 2005的数据文件,因此,今天便安装了这个数据库,我的系 ...

  4. Sql Server 2005 开发版亲測可用下载地址

    sqlserver2005开发版下载地址:http://222.132.81.146/rj/cs_sql_2005_dev_all_dvd.rar建议使用迅雷下载. sql server 2005 开 ...

  5. 使用java对sql server进行增删改查

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  6. Sql Server 2008开发版(Developer Edition)过期升级企业版(Enterprise Edition)失败后安装学习版(Express Edition)

    最近一个多月,甚是悠哉,无事可做.上线的网站系统也没接到客户的反馈,反而觉得无聊之极了.上周五早上,一上QQ,就收到客户发来消息,管理平台无法登陆了.心里一惊,立马开始查找故障原因.翻看了系统日志,提 ...

  7. jTDS Java连接SQL Server 2000数据库

    Java连接SQL Server 2000数据库时,有两种方法: (1)通过Microsoft的JDBC驱动连接.此JDBC驱动共有三个文件,分别 是mssqlserver.jar.msutil.ja ...

  8. Java 链接SQL Server 数据库

    1 //Java 连接 SQL Server数据库 2 public static final String DRIVERNAME="com.microsoft.sqlserver.jdbc ...

  9. JAVA 连接 SQL Server 2008:java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver

    新项目需要修改Java开发的MES系统...Java忘的也差不多了...简单尝试以下JAVA连接SQL Server吧,没想到坑还是很多的.以前直接连oracle时没有这么多麻烦啊....可能微软和o ...

随机推荐

  1. [Java第一个游戏]JFrame文本框下贪吃蛇

    刚刚接触java的文本框绘图的知识点,然后就可以按照老师的提醒做一些简单的游戏,对JFrame加深一下,下面就贪吃蛇给出一些源代码,其实正真的实现的代码并不多,只是稍微处理一下就可以明白,下面代码均有 ...

  2. LeetCode 566. Reshape the Matrix (重塑矩阵)

    In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new o ...

  3. 顺序线性表 ---- ArrayList 源码解析及实现原理分析

    原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7738888.html ------------------------------------ ...

  4. 【前端】javascript实现导航栏筋斗云效果特效

    实现效果: 实现效果如下图所示 实现原理: 什么是筋斗云效果: 这个效果很简单,就是鼠标移到其他导航目录时会有背景图片跟着鼠标滑动到当前的目录. 实现思路: 鼠标经过的时候,利用offsetLeft获 ...

  5. 如何在openlayer接入矢量数据

    先说矢量数据集接入,我们通过GeoJSON的示例代码(http://openlayers.org/en/latest/examples/geojson.html)了解Openlayers的源代码,确定 ...

  6. swift之函数式编程(三)

    文章来源于<Functional Programing in Swift>,本系列仅仅是观后概括的一些内容 Wrapping Core Image 上一篇文章我们介绍了 高阶函数并且展示了 ...

  7. JSON.stringify实战用法

    1.首先定义一个数组 var teamPlanMinList = new Array(); 2. 定义一个json对象 var json = { "plname":plname, ...

  8. 前端性能优化jQuery性能优化

    一.使用合适的选择器 $("#id"); 1.使用id来定位DOM元素无疑是最佳提高性能的方式,因为jQuery底层将直接调用本地方法document.getElementById ...

  9. 用编写一个简单的记事本(C#实现)

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. Travel

    Travel Time Limit: 10000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...