软件工程结对作业(四则运算web版)01

转自:http://www.cnblogs.com/fylove/p/6676453.html

结对人:胡建峰、高雪彤


 设计思想

在以前的程序基础上两人结合开发web系统。

首先编写了一个登录界面,实现的是不同用户,不同题库的功能。

然后进入主页,主页中在登录成功后显示用户名,并有开始答题,查看历史错题和注销三个按钮。开始答题按钮可以供用户选择出题的条件生成题目,查看历史错题会调出数据库中历史的错题,也可以重新做这些错题,注销会注销当前用户,返回登录界面。

出题界面会显示用户的条件,在下面生成题目,后面有一个输入框,供用户答题,不会的可以空下,最后点击提交可以进入结果验证页面,结果页面中,会对输入和信息与数据库中的作对比,正确的显示一个正确的图片,错误会显示一个错误的图片并显示正确答案,并将错误答案和信息存入数据库。

重做错题,从数据库中导出错题和错误答案,在修改提交后,会进行判断。

在最后对页面使用了Javabean、servlet、ajax、jQuery,并对页面进行了美化。

 

源程序代码

 

复制代码
 1 package bean;
 2 
 3 import java.sql.*;  4 import com.db.DB;  5  6 public class User {  7 private String username;  8 private String userpass;  9 10 public String getUsername() { 11 return username; 12  } 13 14 public void setUsername(String username) { 15 this.username = username; 16  } 17 18 public String getUserpass() { 19 return userpass; 20  } 21 22 public void setUserpass(String userpass) { 23 this.userpass = userpass; 24  } 25 26 @SuppressWarnings("static-access") 27 public boolean validate(String user, String pass) { 28 DB db = new DB(); 29 String sq = "select * from [user] where [id]=? and [pass]=?"; 30 PreparedStatement st = null; 31 try { 32 st = db.getCoon().prepareStatement(sq); 33 st.setString(1, user); 34 st.setString(2, pass); 35 ResultSet rs = st.executeQuery(); 36 if(rs.next()) 37  { 38 return true; 39  } 40 else 41  { 42 return false; 43  } 44 } catch (SQLException e) { 45  e.printStackTrace(); 46  } 47 return false; 48  } 49 50 }
复制代码

 

 

 

复制代码
  1 package calculat;
  2 import java.util.Random;  3  4 public class Cal_zfs{  5 private char fh;  6 private String shu1;  7 private String shu2;  8 private String result;  9  10 public char getFh() {  11 return fh;  12  }  13  14 public String getResult() {  15 return result;  16  }  17  18 public String getShu1() {  19 return shu1;  20  }  21  22 public String getShu2() {  23 return shu2;  24  }  25 public Cal_zfs()  26  {  27  28  }  29  30 public Cal_zfs(boolean cc, int w)  31  {  32 int fzi1;  33 int fmu1;  34 int fzi2;  35 int fmu2;  36 char [] fu = new char [4];//生成符号,控制有无乘除  37 fu[0] = '-';  38 fu[1] = '+';  39 fu[2] = '/';  40 fu[3] = '*';  41 if(cc)  42 fh = fu[new Random().nextInt(4)];  43 else  44 fh = fu[new Random().nextInt(2)];  45  46  47 if(w == 1)  48  {  49 fmu1 = new Random().nextInt(9) + 1;  50 fmu2 = new Random().nextInt(9) + 1;  51  }  52 else if(w == 2)  53  {  54 fmu1 = new Random().nextInt(99) + 1;  55 fmu2 = new Random().nextInt(99) + 1;  56  }  57 else  58  {  59 fmu1 = new Random().nextInt(999) + 1;  60 fmu2 = new Random().nextInt(999) + 1;  61  }  62  63 fzi1 = new Random().nextInt(fmu1) + 1;  64 fzi2 = new Random().nextInt(fmu2) + 1;  65 int gy = gys(fzi1, fmu1);  66 int gy2 = gys(fzi2, fmu2);  67 if(fzi1 == fmu1)  68 shu1 = "1";  69 else  70 shu1 = fzi1 / gy + "/" + fmu1 / gy;  71 if(fzi2 == fmu2)  72 shu2 = "1";  73 else  74 shu2 = fzi2 / gy2 + "/" + fmu2 / gy2;  75  76 int fm = 0, fz = 0;  77 if(fh == '+')  78  {  79 fm = fmu1 * fmu2; 80 fz = fmu1 * fzi2 + fmu2 * fzi1; 81 } 82 else if(fh == '-') 83 { 84 fm = fmu1 * fmu2; 85 fz = fmu2 * fzi1 - fmu1 * fzi2; 86 } 87 else if(fh == '*') 88 { 89 fm = fmu1 * fmu2; 90 fz = fzi1 * fzi2; 91 } 92 else 93 { 94 fm = fmu1 * fzi2; 95 fz = fzi1 * fmu2; 96 } 97 98 int g = gys(fz, fm); 99 if(fz == fm) 100 result = "1"; 101 else 102 result = fz / g + "/" + fm / g; 103 } 104 105 public int gys(int s1, int s2) 106 { 107 int gy = 1; 108 for(int i = 1; i <= (s1 < s2 ? s1 : s2); i++) 109 { 110 if(s1 % i == 0 && s2 % i == 0) 111 gy = i; 112 } 113 return gy; 114 } 115 116 public String show() 117 { 118 return shu1 + " " + fh + " " + shu2; 119 } 120 }
复制代码

 

 

 

复制代码
  1 package calculat;
  2 import java.util.Random;  3  4 public class Cal_zs{  5 private char fh;  6 private int shu1;  7 private int shu2;  8 private String result;  9  10 public String getResult() {  11 return result;  12  }  13 public Cal_zs()  14  {}  15 public char getFh() {  16 return fh;  17  }  18  19 public int getShu1() {  20 return shu1;  21  }  22  23 public int getShu2() {  24 return shu2;  25  }  26 public Cal_zs(boolean cc,int wei)  27  {  28 char [] fu = new char [4];//生成符号,控制有无乘除  29 fu[0] = '-';  30 fu[1] = '+';  31 fu[2] = '/';  32 fu[3] = '*';  33  34 if(cc)  35 fh = fu[new Random().nextInt(4)];  36 else  37 fh = fu[new Random().nextInt(2)];  38 if(wei == 1)  39  {  40 shu1 = new Random().nextInt(9) + 1;  41 shu2 = new Random().nextInt(9) + 1;  42  }  43 else if(wei == 2)  44  {  45 shu1 = new Random().nextInt(99) + 1;  46 shu2 = new Random().nextInt(99) + 1;  47  }  48 else  49  {  50 shu1 = new Random().nextInt(999) + 1;  51 shu2 = new Random().nextInt(999) + 1;  52  }  53  54 if(fh == '+')  55 result = shu1 + shu2 + "";  56 else if(fh == '-')  57 result = shu1 - shu2 + "";  58 else if(fh == '*')  59 result = shu1 * shu2 + "";  60 else  61  {  62 if(shu1 >= shu2)  63  {  64 if(shu1 % shu2 == 0)  65 result = shu1/shu2 + "";  66 else  67  {  68 int z = shu1 / shu2;  69 result = z + "'" + (shu1 - z * shu2) +"/" + shu2;  70  }  71  }  72 else  73 result = shu1 + "/" + shu2;  74  }  75  }  76  77 public String show() 78 { 79 return shu1 + " " + fh + " " + shu2; 80 } 81 82 public boolean isInteger(){ 83 double r, s1 = shu1, s2 = shu2; 84 if(fh == '/') 85 { 86 r = s1 / s2; 87 String str = r + ""; 88 for(int i = 0;i < str.length();i++) 89 { 90 if(str.charAt(i) == '.' && i == str.length() - 2 && str.charAt(i + 1) == '0') 91 return true; 92 } 93 return false; 94 } 95 else 96 return true; 97 98 99 } 100 }
复制代码

 

 

 

复制代码
 1 package calculat;
 2 
 3 public class shu {  4  5 private Cal_zs [] c1 = new Cal_zs [100];  6 private Cal_zfs [] c2 = new Cal_zfs [100];  7 boolean cc;  8 int N;  9 int wei; 10 11 public void setN(int n) { 12 N = n; 13  } 14 15 public void setwei(int w) 16  { 17 wei = w; 18  } 19 public void setCc(boolean cc) { 20 this.cc = cc; 21  } 22 23 public shu() 24  { 25 26  } 27 28 public shu(boolean cc, int w, boolean fs, boolean ys) 29  { 30 for(int i = 0;i < 100;i++) 31  { 32 c1[i] = new Cal_zs(cc, w); 33 while((ys == false && yu(c1[i].getResult())) || (fs == false && c1[i].getResult().charAt(0) == '-')) 34  { 35 c1[i] = new Cal_zs(cc, w); 36  } 37 for(int j = 0;j < i;j++) 38  { 39 if(c1[i].getShu1() == c1[j].getShu1() && c1[j].getShu2() == c1[i].getShu2()&& 40 c1[i].getFh() == c1[j].getFh()) 41  { 42 c1[i] = new Cal_zs(cc, w); 43 j = 0; 44  } 45  } 46 47 c2[i] = new Cal_zfs(cc, w); 48 while(fs == false && c2[i].getResult().charAt(0) == '-') 49  { 50 c2[i] = new Cal_zfs(cc, w); 51  } 52 for(int k = 0;k < i;k++) 53  { 54 if(c2[i].getShu1().equals(c2[k].getShu1()) && c2[k].getShu2().equals(c2[i].getShu2()) && 55 c2[i].getFh() == c2[k].getFh()) 56  { 57 c2[i] = new Cal_zfs(cc, w); 58 k = 0; 59  } 60  } 61  } 62  } 63 64 public boolean yu(String str) 65  { 66 for(int i = 0;i < str.length(); i++) 67  { 68 if(str.charAt(i) == '/') 69 return true; 70  } 71 return false; 72  } 73 74 public String show1(int i) 75  { 76 return c1[i].show(); 77 } 78 public String show2(int i) 79 { 80 return c2[i].show(); 81 } 82 83 public String result1(int i) 84 { 85 return c1[i].getResult() + ""; 86 } 87 public String result2(int i) 88 { 89 return c2[i].getResult() + ""; 90 } 91 }
复制代码

 

 

 

复制代码
 1 package com.db;
 2 
 3 import java.sql.*;  4  5 public class DB {  6 private static final String driverStr = "com.microsoft.sqlserver.jdbc.SQLServerDriver";  7 private static final String connStr = "jdbc:sqlserver://localhost:1433; DatabaseName=calculate";  8 private static final String dbusername = "sa";  9 private static final String dbpassword = "4980"; 10 private static Connection coon = null; 11 12 public static Connection getCoon() { 13 return coon; 14  } 15 16 static{ 17 try{ 18  Class.forName(driverStr); 19 coon = DriverManager.getConnection(connStr, dbusername, dbpassword); 20 } catch (ClassNotFoundException e){ 21  e.printStackTrace(); 22 } catch (SQLException e){ 23  e.printStackTrace(); 24  } 25  } 26 27 public void closeCon(Connection con) { 28 if(coon!=null){ 29 try { 30  coon.close(); 31 } catch (SQLException e) { 32  e.printStackTrace(); 33  } 34  } 35  } 36 37 public static void main(String[] args) { 38 try { 39  DB.getCoon(); 40 System.out.println("数据库连接成功"); 41 } catch (Exception e) { 42  e.printStackTrace(); 43  } 44  } 45 }
复制代码

 

 

 

复制代码
 1 package servelet;
 2 
 3 import java.io.IOException;  4 import javax.servlet.RequestDispatcher;  5 import javax.servlet.ServletException;  6 import javax.servlet.annotation.WebServlet;  7 import javax.servlet.http.HttpServlet;  8 import javax.servlet.http.HttpServletRequest;  9 import javax.servlet.http.HttpServletResponse; 10 import javax.swing.JOptionPane; 11 12 import bean.User; 13 14 @WebServlet("/loginservlet") 15 public class loginservlet extends HttpServlet { 16 private static final long serialVersionUID = 1L; 17 18 public loginservlet() { 19 super(); 20  } 21 22 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 23 String user = request.getParameter("user"); 24 String pass = request.getParameter("pass"); 25 26 User use = new User(); 27 boolean b =use.validate(user, pass); 28  String forward; 29 30 if(b) 31  { 32 request.getSession().setAttribute("user", user); 33 forward = "first.jsp"; 34  } 35 else 36  { 37 JOptionPane.showMessageDialog(null, "用户名或密码输入有误!"); 38 forward = "login.jsp"; 39  } 40 41 42 RequestDispatcher dispatcher = request.getRequestDispatcher(forward); 43  dispatcher.forward(request, response); 44  } 45 46 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 47  doGet(request, response); 48  } 49 50 }
复制代码

 

 

 

复制代码
 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  7 <title>登录</title>  8 <script type="text/javascript">  9  function judge(form) 10  { 11 user = form.user.value; 12 pass = form.pass.value; 13 14 if(user == "") 15  { 16 alert("用户名为空!"); 17  form.user.focus(); 18 return false; 19  } 20 if(pass == "") 21  { 22 alert("密码为空!"); 23  form.pass.focus(); 24 return false; 25  } 26  } 27 </script> 28 <style> 29  body,p,div,ul,li,h1,h3,h4,h5,h6{ 30 margin:0; 31 padding: 0; 32  } 33  h2{ 34  color:red; 35 text-align: center; 36  margin:150px auto; 37  } 38  body{ 39  background: #E9E9E9; 40  } 41 42  #login{ 43  width: 400px; 44  height: 250px; 45  background: #FFF; 46  margin:50px auto; 47  position: relative; 48  } 49  #login form p{ 50 text-align: center; 51  } 52 53  #user{ 54 background:url(images/user.png) rgba(0,0,0,0.1) no-repeat; 55  width: 200px; 56  height: 30px; 57  border:solid #ccc 1px; 58 border-radius: 3px; 59 padding-left: 32px; 60 margin-top: 50px; 61 margin-bottom: 30px; 62  } 63  #pwd{ 64 background: url(images/pwd.png) rgba(0,0,0,0.1) no-repeat; 65  width: 200px; 66  height: 30px; 67  border:solid #ccc 1px; 68 border-radius: 3px; 69 padding-left: 32px; 70 margin-bottom: 30px; 71  } 72  #submit{ 73  width: 232px; 74  height: 30px; 75 background: rgba(0,0,0,0.1); 76  border:solid #ccc 1px; 77 border-radius: 3px; 78  } 79 80  #submit:hover{ 81  cursor: pointer; 82  background:#D8D8D8; 83  } 84 </style> 85 </head> 86 <body> 87 <h2>答题系统登录界面</h2> 88 <div id="login"> 89 <form name="form" action="loginservlet" method="post" οnsubmit="return judge(form)"> 90 <p><input type="text" name="user" id="user" placeholder="用户名"></p> 91 <p><input type="password" name="pass" id="pwd" placeholder="密码"></p> 92 <p><input type="submit" id="submit" value="登录"></p> 93 </form> 94 </div> 95 </body> 96 </html>
复制代码

 

 

 

复制代码
  1 <%@ page language="java" import="java.sql.*" contentType="text/html; charset=gb2312"
  2     pageEncoding="UTF-8"%>
  3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4 <html>
 5 <head>  6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  7 <script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>  8 <script type="text/javascript">  9  $(function(){  10 $("#chu").hide();  11 $("#cuo").hide();  12  13 $("#zhuxiao").click(function(){  14 $(location).attr('href', 'login.jsp');  15  });  16  17 $("#chuti").click(function(){  18 $("#chu").show();  19 $("#cuo").hide();  20  });  21  22 $("#cuoti").click(function(){  23 $("#cuo").show();  24 $("#chu").hide();  25  });  26  });  27 </script>  28 <title>出题</title>  29 <style type="text/css">  30  h2{  31  color:red;  32  }  33  #b{  34 text-align: center;  35  height: 60px;  36  }  37  body{  38 background:url("images/bg.jpg")  39 no-repeat;  40 background-size:cover;  41  }  42 </style>  43 </head>  44 <body>  45 <h2 align="center">出题器</h2>  46 <h3 align="center">${sessionScope.user}您好,欢迎登录!</h3>  47  48 <div id="b">  49 <input type="button" id="chuti" value="开始出题"/>  50 <input type="button" id="cuoti" value="查看历史错题"/>  51 <input type="button" id="zhuxiao" value="注销登录"/>  52 </div>  53  54 <div id="chu">  55 <form name="form1" action="chuti.jsp" method="post">  56 <table align="center">  57 <tr>  58 <td>题目类型:</td>  59 <td>  60 <select name="lei">  61 <option value="整数" selected>整数</option>  62 <option value="真分数">真分数</option>  63 <option value="混合">混合</option>  64 </select>  65 </td>  66 </tr>  67 <tr>  68 <td>是否有乘除法:</td>  69 <td>  70 <input type="radio" name="cc" value="无" checked> 71 <input type="radio" name="cc" value="有"> 72 </td>  73 </tr>  74 <tr>  75 <td>是否有括号:</td>  76 <td>  77 <input type="radio" name="kh" value="无" checked> 78 <input type="radio" name="kh" value="有">有 (暂未实现)  79 </td>  80 </tr>  81 <tr>  82 <td>数值范围:</td>  83 <td>  84 <select name="wei">  85 <option value="一位数" selected>一位数</option>  86 <option value="两位数">两位数</option>  87 <option value="三位数">三位数</option>  88 </select>  89 </td>  90 </tr>  91 <tr>  92 <td>加减有无负数:</td>  93 <td>  94 <input type="radio" name="fushu" value="无" checked> 95 <input type="radio" name="fushu" value="有"> 96 </td>  97 </tr>  98 <tr>  99 <td>除法有无余数:</td> 100 <td> 101 <input type="radio" name="yushu" value="无" checked>102 <input type="radio" name="yushu" value="有">103 </td> 104 </tr> 105 <tr> 106 <td>题量</td> 107 <td> 108 <input type="text" name="num" value="1">不大于100题 109 </td> 110 </tr> 111 <tr> 112 <td> 113 <input type="hidden" name="user" value="${sessionScope.user}"/> 114 </td> 115 <td><input type="submit" value="开始出题!"></td> 116 </tr> 117 </table> 118 </form> 119 </div> 120 121 <div id="cuo" align="center"> 122 <form action="cuo.jsp" method="post"> 123 <table> 124 <th>错题题目</th> 125 <th>&nbsp;</th> 126 <th>错题答案</th> 127 <jsp:useBean id="db" class="com.db.DB" scope="request"/> 128 <% 129 String user = request.getSession().getAttribute("user").toString(); 130 String sq = "select * from subject where cuo=1 and [user]=?"; 131 PreparedStatement st = null; 132 st = db.getCoon().prepareStatement(sq); 133 st.setString(1, user); 134 ResultSet rs = st.executeQuery(); 135 while(rs.next()) 136  { 137 out.print("<tr><td>" + rs.getString(2) + "</td><td>&nbsp;=&nbsp;</td>"); 138 out.print("<td>" + rs.getString(5) + "</td>"); 139 %> 140 </tr> 141 <%} %> 142 <tr> 143 <td><input type="hidden" name="user" value=<%=user %>></td> 144 <td><input type="submit" value="重新做题"></td> 145 <tr> 146 </table> 147 </form> 148 </div> 149 </body> 150 </html>
复制代码

 

 

 

复制代码
  1 <%@ page language="java" import="java.util.*, java.sql.*, calculat.shu" contentType="text/html; charset=gb2312"
  2     pageEncoding="UTF-8"%>
  3 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  4 <fmt:requestEncoding value="gb2312"/>
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  6 <html>  7 <head>  8 <style type="text/css">  9  h2{color:red}  10  11  .tb1{  12 border-left-style:solid;  13 border-bottom-style:solid;  14 border-top-style:solid;  15 border-right-style:solid;  16 border-width:2px;  17  }  18  19  #submit{  20  height: 30px;  21 background: rgba(0,0,0,0.1);  22  border:solid #ccc 1px;  23 border-radius: 3px;  24  }  25  26  #submit:hover{  27  cursor: pointer;  28  background:#D8D8D8;  29  }  30 </style>  31 <script type="text/javascript">  32 var i = 0;  33 var Color = new Array("#0000FF", "#99FF00", "#660033", "#CC66CC", "#FFFF33");  34  function change(){  35 if(i > Color.length - 1)  36 i = 0;  37 table1.style.borderColor = Color[i];  38 i++;  39 setTimeout("change()", 500);  40  }  41 </script>  42 <title>出题</title>  43 </head>  44 <body οnlοad="change()">  45 <h1 align="center">题目</h1>  46 <table id="table1" align="center" class="tb1">  47 <tr>  48 <td>题目类型:</td>  49 <td>${param.lei}</td>  50 <td>&nbsp;&nbsp;</td>  51 <td>是否有乘除法:</td>  52 <td>${param.cc}</td>  53 </tr>  54 <tr>  55 <td>是否有括号:</td>  56 <td>${param.kh}</td>  57 <td>&nbsp;&nbsp;</td>  58 <td>数值范围:</td>  59 <td>${param.wei}</td>  60 </tr>  61 <tr>  62 <td>加减有无负数:</td>  63 <td>${param.fushu}</td>  64 <td>&nbsp;&nbsp;</td>  65 <td>除法有无余数:</td>  66 <td>${param.yushu}</td>  67 </tr>  68 </table>  69  70 <h2 align="center">请填写答案:</h2>  71 <form name="form2" action="result.jsp" method="post">  72 <table align="center">  73 <tr>  74 <th>题目</th>  75 <th>&nbsp;</th>  76 <th>答案</th>  77 </tr>  78  79 <jsp:useBean id="c" class="calculat.shu" scope="request"/>  80 <jsp:useBean id="db" class="com.db.DB" scope="request"/>  81 <%  82 boolean cc = true;//有无乘除,并赋值  83 if((request.getParameter("cc")).equals("无"))  84  {  85 cc = false;  86  }  87 boolean kh = true;//有无乘除,并赋值  88 if((request.getParameter("kh")).equals("无"))  89  {  90 kh = false;  91  }  92 int w;  93 if(request.getParameter("wei").equals("一位数"))  94  {  95 w = 1;  96  }  97 else if(request.getParameter("wei").equals("两位数"))  98  {  99 w = 2; 100  } 101 else 102  { 103 w = 3; 104  } 105 106 boolean fs = true; 107 if(request.getParameter("fushu").equals("无"))//负数 108  { 109 fs = false; 110  } 111 boolean ys = true; 112 if(request.getParameter("yushu").equals("无"))//余数 113 { 114 ys = false; 115 } 116 117 //生成算式 118 c = new shu(cc, w, fs, ys); 119 int N = Integer.parseInt(request.getParameter("num"));//出题数 120 c.setN(N); 121 122 String str = request.getParameter("lei");//出题类型 123 c.setCc(cc); 124 125 //清空数据库中前N个元素 126 for(int i = 0;i < N;i++) 127 { 128 String sql="delete from subject where num=" + (i+1) + "and [user]='" + request.getParameter("user") +"'";//生成一条sql语句 129 Statement stmt = db.getCoon().createStatement(); 130 stmt.execute(sql); 131 } 132 133 //生成算式,并存储在数据库中 134 String s = "", q = ""; 135 for(int i = 0;i < N;i++) 136 { 137 out.print("<tr><td>"); 138 if(str.equals("整数")) 139 { 140 q = c.show1(i); 141 out.print(q + "</td>"); 142 s = c.result1(i); 143 } 144 else if(str.equals("真分数")) 145 { 146 q = c.show2(i); 147 out.print(q + "</td>"); 148 s = c.result2(i); 149 } 150 else 151 { 152 if((new Random().nextInt(10)) % 2 == 0) 153 { 154 q = c.show1(i); 155 out.print(q + "</td>"); 156 s = c.result1(i); 157 } 158 else 159 { 160 q = c.show2(i); 161 out.print(q + "</td>"); 162 s = c.result2(i); 163 } 164 } 165 String sql = "insert into subject (num, question,answer,[user]) values (?,?,?,?)"; 166 PreparedStatement pstmt = null; 167 pstmt = db.getCoon().prepareStatement(sql); 168 pstmt.setString(1, i+1+""); 169 pstmt.setString(2, q); 170 pstmt.setString(3, s); 171 pstmt.setString(4, request.getParameter("user")); 172 pstmt.executeUpdate(); 173 %> 174 <td>=</td> 175 <td><input name="result<%=i %>" id="result" type="text"> 176 </td></tr> 177 <%} %> 178 <tr> 179 <td> 180 <input type="hidden" name="num" value="${param.num}"> 181 </td> 182 <td> 183 <input type="hidden" name="user" value="<%=request.getParameter("user")%>"/> 184 </td> 185 </tr> 186 <tr> 187 <td></td> 188 <td></td> 189 <td><input type="submit" id="submit" value="点击提交答案"></td> 190 </tr> 191 </table> 192 </form> 193 </body> 194 </html>
复制代码

 

 

 

复制代码
 1 <%@ page language="java" import="java.sql.*" contentType="text/html; charset=gb2312"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>  6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  7 <title>结果</title>  8 <style type="text/css">  9  a{ 10 text-align:center; 11  color:blue; 12  } 13 </style> 14 </head> 15 <body> 16 <h1 align="center">成绩</h1> 17 <table align="center"> 18 <jsp:useBean id="db" class="com.db.DB" scope="request"/> 19 <% 20 int N = Integer.parseInt(request.getParameter("num"));//出题数 21 String user = request.getParameter("user"); 22 String x = ""; 23 for(int i = 0;i < N;i++) 24  { 25 x = (String)request.getParameter("result"+i); 26 String sq = "select * from subject where num=? and [user]=?"; 27 PreparedStatement st = null; 28 st = db.getCoon().prepareStatement(sq); 29 st.setString(1, i+1+""); 30 st.setString(2, user); 31 ResultSet rs = st.executeQuery(); 32 while(rs.next()) 33  { 34 out.print("<tr><td>" + rs.getString(2) + "</td><td>&nbsp;=&nbsp;</td>"); 35 if(rs.getString(3).equals(x)) 36  { 37 out.print("<td>" + x + "</td>"); 38 %> 39 <td><img alt="正确" src="images/accept.png"></td> 40 </tr> 41 <% 42  } 43 else 44  { 45 out.print("<td>" + x + "</td>"); 46 %> 47 <td><img alt="错误" src="images/gif-0130.gif">正确答案为<%=rs.getString(3) %></td> 48 </tr> 49 <% 50 String geng = "update subject set cuo = '1',my=?,num=? where [user]=? and num=?"; 51 st = db.getCoon().prepareStatement(geng); 52 st.setString(1, x); 53 st.setInt(2, 100+i+1); 54 st.setString(3, user); 55 st.setInt(4, i+1); 56  st.executeUpdate(); 57  } 58  } 59  } 60 %> 61 </table> 62 <div align="center"> 63 <a href="first.jsp">返回出题界面</a> 64 </div> 65 </body> 66 </html>
复制代码

 

 

 

复制代码
 1 <%@ page language="java" import="java.sql.*" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>  6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  7 <title>错题重做</title>  8 </head>  9 <body> 10 <h2 align="center">请填写答案:</h2> 11 <form name="form2" action="c_result.jsp" method="post"> 12 <table align="center"> 13 <tr> 14 <th>题目</th> 15 <th>&nbsp;</th> 16 <th>答案</th> 17 </tr> 18 19 <jsp:useBean id="db" class="com.db.DB" scope="request"/> 20 <% 21 String user = request.getParameter("user"); 22 int i = 0; 23 String sq = "select * from subject where cuo=1 and [user]='" + user +"'"; 24 PreparedStatement st = null; 25 st = db.getCoon().prepareStatement(sq); 26 ResultSet rs = st.executeQuery(); 27 while(rs.next()) 28  { 29 %> 30 <tr> 31 <td><%=rs.getString("question")%></td> 32 <td>=</td> 33 <td><input name="result<%=i++ %>" value=<%=rs.getString("my")%> type="text"></td> 34 </tr> 35 <%} %> 36 <tr> 37 <td> 38 <input type="hidden" name="num" value="<%=i%>"/> 39 </td> 40 <td> 41 <input type="hidden" name="user" value="<%=request.getParameter("user")%>"/> 42 </td> 43 </tr> 44 <tr> 45 <td></td> 46 <td></td> 47 <td><input type="submit" id="submit" value="点击提交答案"></td> 48 </tr> 49 </table> 50 </form> 51 </body> 52 </html>
复制代码

 

 

 

复制代码
 1 <%@ page language="java" import="java.sql.*" contentType="text/html; charset=gb2312"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>  6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  7 <title>结果</title>  8 <style type="text/css">  9  a{ 10 text-align:center; 11  color:blue; 12  } 13 </style> 14 </head> 15 <body> 16 <h1 align="center">成绩</h1> 17 <table align="center"> 18 <jsp:useBean id="db" class="com.db.DB" scope="request"/> 19 <% 20 int N = Integer.parseInt(request.getParameter("num"));//出题数 21 String user = request.getParameter("user"); 22 String x = ""; 23 int i = 0; 24 25 String sq = "select * from subject where cuo=1 and [user]=?"; 26 PreparedStatement st = null; 27 st = db.getCoon().prepareStatement(sq); 28 st.setString(1, user); 29 ResultSet rs = st.executeQuery(); 30 while(rs.next()) 31  { 32 x = (String)request.getParameter("result" + i++); 33 out.print("<tr><td>" + rs.getString(2) + "</td><td>&nbsp;=&nbsp;</td>"); 34 if(rs.getString(3).equals(x)) 35  { 36 out.print("<td>" + x + "</td>"); 37 %> 38 <td><img alt="正确" src="images/accept.png"></td> 39 </tr> 40 <% 41 String sql="delete from subject where question='" + rs.getString(2) + "'and [user]='" + user +"'";//生成一条sql语句 42 Statement stmt = db.getCoon().createStatement(); 43  stmt.execute(sql); 44  } 45 else 46  { 47 out.print("<td>" + x + "</td>"); 48 %> 49 <td><img alt="错误" src="images/gif-0130.gif">正确答案为<%=rs.getString(3) %></td> 50 </tr> 51 <% 52 String geng = "update subject set my=? where [user]=? and question='" + rs.getString(2) +"'"; 53 st = db.getCoon().prepareStatement(geng); 54 st.setString(1, x); 55 st.setString(2, user); 56  st.executeUpdate(); 57  } 58  } 59 %> 60 </table> 61 <div align="center"> 62 <a href="first.jsp">返回出题界面</a> 63 </div> 64 </body> 65 </html>
复制代码

运行结果截图

 

 

编程总结及体会

在合作过程中出现过各种问题,也为一个问题讨论过,也为了一些目标奋斗过,挺愉快的一次合作,虽然对合作还不是很熟悉,但我还是会努力学习和他人合作的。

学习了各种新的知识,并运用,熟悉着每一个知识点,很是开心。

编程中总会想着为程序添加各种功能,每个功能都需要大量的思考和测试,但收获很多。继续努力吧!

转载于:https://www.cnblogs.com/gxt-/p/6679572.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值