java+jsp+sql server实现网页版四则运算.
设计思路:
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:\Users\111\Pictures\22.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:\Users\111\Pictures\333.jpg;
}
-->
</style>
</head> <%
UserDaoImpl userDao=new UserDaoImpl();
List<User> users = userDao.load();
%>
<body background="C:\Users\111\Pictures\333.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;width: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:\Users\111\Pictures\777.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>
运行结果:
】
java+jsp+sql server实现网页版四则运算.的更多相关文章
- SQL Server 2016正式版安装(超多图)
微软数据库SQL Server 2016正式版在2016年6月就发布,由于近期工作忙,一直拖到现在才有时间把安装过程写到博客上,分享给大家.本人一直习惯使用英文版,所以版本和截图都是英文版的.废话少说 ...
- win7 安装SQL Server 2005 开发版 图文教程
转自win7 安装SQL Server 2005 开发版 图文教程 ----------------------------写在安装前------------------------------ 一. ...
- Windows XP系统安装SQL Server 2005(开发版)图解
转自Windows XP系统安装SQL Server 2005(开发版)图解 安装前提:由于有些从网上的下载的项目需要导入SQL Server 2005的数据文件,因此,今天便安装了这个数据库,我的系 ...
- Sql Server 2005 开发版亲測可用下载地址
sqlserver2005开发版下载地址:http://222.132.81.146/rj/cs_sql_2005_dev_all_dvd.rar建议使用迅雷下载. sql server 2005 开 ...
- 使用java对sql server进行增删改查
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...
- Sql Server 2008开发版(Developer Edition)过期升级企业版(Enterprise Edition)失败后安装学习版(Express Edition)
最近一个多月,甚是悠哉,无事可做.上线的网站系统也没接到客户的反馈,反而觉得无聊之极了.上周五早上,一上QQ,就收到客户发来消息,管理平台无法登陆了.心里一惊,立马开始查找故障原因.翻看了系统日志,提 ...
- jTDS Java连接SQL Server 2000数据库
Java连接SQL Server 2000数据库时,有两种方法: (1)通过Microsoft的JDBC驱动连接.此JDBC驱动共有三个文件,分别 是mssqlserver.jar.msutil.ja ...
- Java 链接SQL Server 数据库
1 //Java 连接 SQL Server数据库 2 public static final String DRIVERNAME="com.microsoft.sqlserver.jdbc ...
- JAVA 连接 SQL Server 2008:java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
新项目需要修改Java开发的MES系统...Java忘的也差不多了...简单尝试以下JAVA连接SQL Server吧,没想到坑还是很多的.以前直接连oracle时没有这么多麻烦啊....可能微软和o ...
随机推荐
- js的事件循环绑定和jQuery的隐式迭代
js的事件循环绑定和jQuery的隐式迭代 js事件循环绑定 jQuery隐式迭代 先举一个例子:给定一个ul,点击列表内的每一个li元素,使它的背景色变红,下边分别用js代码和jQuery实现. & ...
- js-自定义事件
1.自定义事件 开发人员自己定义的事件,是除了系统以外的事件. 可以供其他开发人员使用,有利于多人写作开发,可扩展js的原有事件. 需要:事件绑定器.事件触发器 2.自定义事件三要素 ①:对象.事件名 ...
- LeetCode 104. Maximum Depth of Binary Tree (二叉树的最大深度)
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...
- 【机器学习实战】第 10 章 K-Means(K-均值)聚类算法
第 10 章 K-Means(K-均值)聚类算法 K-Means 算法 聚类是一种无监督的学习, 它将相似的对象归到一个簇中, 将不相似对象归到不同簇中.相似这一概念取决于所选择的相似度计算方法.K- ...
- How to change your password of your mysql account in WampServer
#1. use phpmyadmin to login mysql and click the account menu, and then click "Change the passwo ...
- [板子]segTree
segTree 参考:http://www.cnblogs.com/TenosDoIt/p/3453089.html#c 初学者建议先参考上面“一步一步理解线段树”学习理论. 在这里Code分别为区间 ...
- 扩展 lua require 的行为
扩展 lua require 的行为 来源 https://blog.codingnow.com/2015/10/lua_require_env.html 今天同事提了个需求,他希望可以给部分 lua ...
- ASP.NET Core的身份认证框架IdentityServer4(6)- 开始
安装和概述 启动一个新的IdentityServer项目有两种基本方法: 从头开始 从Visual Studio中的ASP.NET身份模板开始 如果从头开始,我们提供了一些文档.项目帮助和内存存储支持 ...
- [Bayesian] “我是bayesian我怕谁”系列 - Boltzmann Distribution
使用Boltzmann distribution还是Gibbs distribution作为题目纠结了一阵子,选择前者可能只是因为听起来“高大上”一些.本章将会聊一些关于信息.能量这方面的东西,体会“ ...
- android+eclipse+mysql+servlet(Android与mysql建立链接)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原创地址 .作者信息和本声明.http://www.cnblogs.com/zhu520/p/7724524.html 经过两天的时间我终于把A ...