转自: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 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 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 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 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" onsubmit="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> </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> = </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-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 onload="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> </td>
51 <td>是否有乘除法:</td>
52 <td>${param.cc}</td>
53 </tr>
54 <tr>
55 <td>是否有括号:</td>
56 <td>${param.kh}</td>
57 <td> </td>
58 <td>数值范围:</td>
59 <td>${param.wei}</td>
60 </tr>
61 <tr>
62 <td>加减有无负数:</td>
63 <td>${param.fushu}</td>
64 <td> </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> </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> = </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> </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> = </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>
运行结果截图
编程总结及体会
在合作过程中出现过各种问题,也为一个问题讨论过,也为了一些目标奋斗过,挺愉快的一次合作,虽然对合作还不是很熟悉,但我还是会努力学习和他人合作的。
学习了各种新的知识,并运用,熟悉着每一个知识点,很是开心。
编程中总会想着为程序添加各种功能,每个功能都需要大量的思考和测试,但收获很多。继续努力吧!