package fo.dao;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import fo.domin.data;
public class foDao {
public static void main(String[] args) {
// data data=getData(9);
// System.out.println(data.toString());
// generate(90);
}
public static void generate(int number){
Connection con=null;
PreparedStatement psts=null;
try {
con=JDBCUtils.getConnection();
for(int i=1;i<=number;i++){
String sql="INSERT INTO fooperation VALUES(?,?,?,?,?)";
psts=con.prepareStatement(sql);
int random=(int)(Math.random()*4);
String symbol="";
int digital1=(int)(Math.random()*100);
int digital2=(int)(Math.random()*100);
int result=0;
switch(random){
case 0:
result=digital1+digital2;
while(result>100){
digital1=(int)(Math.random()*100);
digital2=(int)(Math.random()*100);
result=digital1+digital2;
}
symbol="+";
break;
case 1:
result=digital1-digital2;
while(digital1-digital2<0){
digital1=(int)(Math.random()*100);
digital2=(int)(Math.random()*100);
result=digital1-digital2;
}
symbol="-";
break;
case 2:
result=digital1*digital2;
while(digital1*digital2>100){
digital1=(int)(Math.random()*100);
digital2=(int)(Math.random()*100);
result=digital1*digital2;
}
symbol="*";
break;
case 3:
digital2=(int)(Math.random()*100)+1;
while(digital1%digital2!=0||digital1<digital2){
digital1=(int)(Math.random()*100);
digital2=(int)(Math.random()*100)+1;
result=digital1/digital2;
}
symbol="/";
break;
}
psts.setInt(1, i);
psts.setString(2, symbol);
psts.setInt(3, digital1);
psts.setInt(4, digital2);
psts.setInt(5, result);
psts.executeUpdate();
}
}catch(RuntimeException e){
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try{
if(psts!=null){
psts.close();
}
if(con!=null){
con.close();
}
}
catch(SQLException e){
e.printStackTrace();
}
}
}
public static data getData(int number){
Connection con=null;
PreparedStatement psts=null;
ResultSet rs=null;
try{
con=JDBCUtils.getConnection();
String sql="SELECT * FROM fooperation WHERE number=?";
psts=con.prepareStatement(sql);
psts.setInt(1, number);
rs=psts.executeQuery();
if(rs==null){
return null;
}
if(rs.next()){
data datas=new data();
datas.setNumber(number);
datas.setSymbol(rs.getString("symbol"));
datas.setDigital1(rs.getInt("digital1"));
datas.setDigital2(rs.getInt("digital2"));
datas.setResult(rs.getInt("result"));
return datas;
}
else {
return null;
}
}
catch(Exception e){
e.printStackTrace();
}
finally{
try{
if(psts!=null){
psts.close();
}
if(con!=null){
con.close();
}
}
catch(SQLException e){
e.printStackTrace();
}
}
return null;
}
}
package fo.dao;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class JDBCUtils {
public static Properties props=null;
static {
try{
InputStream in=JDBCUtils.class.getResourceAsStream("dbconfig.properties");
props=new Properties();
props.load(in);
}
catch(IOException e){
throw new RuntimeException();
}
try {
Class.forName(props.getProperty("driverClassName"));
} catch (ClassNotFoundException e) {
throw new RuntimeException();
}
}
public static Connection getConnection() throws IOException, ClassNotFoundException, SQLException{
return DriverManager.getConnection(props.getProperty("url"),props.getProperty("username"),props.getProperty("password"));
}
}
package fo.domin;
public class data {
private int number;
private String symbol;
private int digital1;
private int digital2;
private int result;
public data() {
super();
// TODO Auto-generated constructor stub
}
public data(int number, String symbol, int digital1, int digital2, int result) {
super();
this.number = number;
this.symbol = symbol;
this.digital1 = digital1;
this.digital2 = digital2;
this.result = result;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getSymbol() {
return symbol;
}
public void setSymbol(String symbol) {
this.symbol = symbol;
}
public int getDigital1() {
return digital1;
}
public void setDigital1(int digital1) {
this.digital1 = digital1;
}
public int getDigital2() {
return digital2;
}
public void setDigital2(int digital2) {
this.digital2 = digital2;
}
public int getResult() {
return result;
}
public void setResult(int result) {
this.result = result;
}
@Override
public String toString() {
return "data [number=" + number + ", symbol=" + symbol + ", digital1=" + digital1 + ", digital2=" + digital2
+ ", result=" + result + "]";
}
}
package fo.service;
import fo.dao.foDao;
import fo.domin.data;
public class foService {
private foDao userdao=new foDao();
public void generate(int number){
userdao.generate(number);
}
public data getData(int number){
data data=userdao.getData(number);
return data;
}
public boolean judge(data form){
data data=userdao.getData(form.getNumber());
int correctResult=data.getResult();
int formResult=form.getResult();
if(correctResult==formResult){
return true;
}
else return false;
}
}
package fo.service;
public class myException extends Exception {
public myException() {
super();
// TODO Auto-generated constructor stub
}
public myException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
// TODO Auto-generated constructor stub
}
public myException(String message, Throwable cause) {
super(message, cause);
// TODO Auto-generated constructor stub
}
public myException(String message) {
super(message);
// TODO Auto-generated constructor stub
}
public myException(Throwable cause) {
super(cause);
// TODO Auto-generated constructor stub
}
}
package fo.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import fo.domin.data;
import fo.service.foService;
public class displayServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
foService foservice=new foService();
String num=(String)request.getSession().getAttribute("number");
int number=Integer.parseInt(num);
for(int i=1;i<=number;i++){
data form=new data();
form.setResult(Integer.parseInt((String)request.getParameter("result"+i)));
form.setNumber(i);
request.getSession().setAttribute("form"+i, form);
boolean resultMasg=foservice.judge(form);
if(resultMasg){request.getSession().setAttribute("masg"+i, "正确");}
else {request.getSession().setAttribute("masg"+i, "错误");}
}
request.getRequestDispatcher("/resultPage.jsp").forward(request, response);
}
}
package fo.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import fo.domin.data;
import fo.service.foService;
public class enterServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
foService foservice=new foService();
String number=request.getParameter("number");
int num=Integer.parseInt(number);
request.getSession().setAttribute("number", number);
foservice.generate(num);
for(int i=1;i<=num;i++){
data data= foservice.getData(i);
request.getSession().setAttribute("data"+i, data);
}
request.getRequestDispatcher("/display.jsp").forward(request, response);
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.sql.*" %>
<%@ page import="fo.domin.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="<c:url value='displayServlet'/>" method="post">
<%
String number=(String)session.getAttribute("number");
int num=Integer.parseInt(number);
for(int i=1;i<=num;i++){
data data=new data();
data=(data)session.getAttribute("data"+i);
out.print(data.getDigital1()+data.getSymbol()+data.getDigital2()+"=");
%>
<input type="text" οnkeyup="this.value=this.value.replace(/\D/g,'')"
name="result<%=i%>"/><br/>
<%} %>
<input type="submit" value="提交"/>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="<c:url value='enterServlet'/>" method="post">
请输入题目数量:<input onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" name="number"/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.sql.*" %>
<%@ page import="fo.domin.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String number=(String)session.getAttribute("number");
int num=Integer.parseInt(number);
for(int i=1;i<=num;i++){
data data=new data(1,"+",2,3,5);
data=(data)session.getAttribute("data"+i);
data form=new data(1,"+",2,3,5);
form=(data)session.getAttribute("form"+i);
String correctResult=(String)session.getAttribute("masg"+i);
out.println(data.getDigital1()+data.getSymbol()+data.getDigital2()+"="+form.getResult()+" 答案"+correctResult);
%>
<br/>
<%}
%>
</body>
</html>