
import java.sql.*
import javax.servlet.*
import javax.servlet.http.*
import oracle.jdbc.driver.OracleDriver
public class GenPaperServlet extends HttpServlet
{
Connection conn
Statement stmt
ResultSet rs
int total_question_num
int total_question_in_paper
int total_paper_num
String curr_classid
public GenPaperServlet()
{
conn = null
stmt = null
rs = null
total_question_num = 0
total_question_in_paper = 0
total_paper_num = 0
curr_classid = ""
}
public void doGet(HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse)
throws ServletException, IOException
{
httpservletresponse.setContentType("text/htmlcharset=GBK")
PrintWriter printwriter = httpservletresponse.getWriter()
printwriter.println("<html><head></head><body><center>")
printwriter.println("请以POST方式提交")
printwriter.println("</center></body></html>")
printwriter.close()
}
public void doPost(HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse)
throws ServletException, IOException
{
httpservletresponse.setContentType("text/htmlcharset=GBK")
PrintWriter printwriter = httpservletresponse.getWriter()
String s = httpservletrequest.getParameter("classid") //"20"
String s1 = httpservletrequest.getParameter("paper_num") //"1"
if(s == null || s1 == null)
{
printwriter.println("<center>")
printwriter.println("请按照正常方式提交数据<br>")
printwriter.println("<a href=/test/admin/genpaper.jsp>单击这里设置生成试卷的参数</a>")
printwriter.println("</center>")
}
total_paper_num = Integer.parseInt(s1)
curr_classid = s
int i = 0
if(!open_db(curr_classid))
{
printwriter.println("打开数据库错误!")
return
}
if(!setParams(curr_classid))
{
System.out.println("设置系统参数错误!")
return
}
if(!verify_QuertionLib())
{
printwriter.println("试题库中试卷不足,请增加新的试题!")
printwriter.println("班级代号:" + curr_classid)
printwriter.println("该班级一套试卷中的试题数:" + total_question_in_paper)
printwriter.println("目前题库中该班级的试题总数:" + total_question_num)
return
}
i = genPaper(total_paper_num, curr_classid)
if(i == 0)
{
printwriter.println("生成试卷 *** 作失败!")
return
}
if(!updateOtherTable(i, curr_classid))
{
printwriter.println("更新相关表 *** 作失败!")
return
} else
{
printwriter.println("<center>")
printwriter.println("动态组卷成功!<br>")
printwriter.println("共生成了 " + i + " 套试卷<br>")
printwriter.println("<a href=/test/admin/genpaper.jsp>单击这里设置生成试卷的参数</a>")
printwriter.println("</center>")
return
}
}
public boolean open_db(String s)
{
try
{
new OracleDriver()
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ora9", "scott", "tiger")
stmt = conn.createStatement()
}
catch(Exception exception)
{
return false
}
return true
}
public boolean setParams(String s)
{
String s1 = ""
try
{
String s2 = "select count(questionid) as countquestionid from test_question_lib "
s2 = s2 + "where classid='" + s + "'"
rs = stmt.executeQuery(s2)
rs.next()
total_question_num = rs.getInt("countquestionid")
s2 = "select totalques from test_classinfo "
s2 = s2 + "where classid='" + s + "'"
rs = stmt.executeQuery(s2)
rs.next()
total_question_in_paper = rs.getInt("totalques")
}
catch(Exception exception)
{
return false
}
return true
}
public boolean verify_QuertionLib()
{
return total_question_num >= total_question_in_paper
}
public boolean updateOtherTable(int i, String s)
{
int j = 0
String s1 = "update test_classinfo set totalpaper=totalpaper+"
s1 = s1 + i + " where classid='" + s + "'"
try
{
j = stmt.executeUpdate(s1)
}
catch(Exception exception)
{
return false
}
return j == 1
}
public int genPaper(int i, String s)
{
boolean flag = false
boolean flag1 = false
boolean flag2 = false
boolean flag3 = false
String s1 = ""
try
{
int ai[] = new int[total_question_num]
int i1 = 0
boolean flag4 = false
String s2 = "select max(paper_id) as max_paper_id from test_paper_lib"
rs = stmt.executeQuery(s2)
rs.next()
int j = rs.getInt("max_paper_id") + 1
s2 = "select questionid from test_question_lib where classid='" + s + "'"
for(rs = stmt.executeQuery(s2)rs.next())
ai[i1++] = rs.getInt("questionid")
for(int k1 = 0k1 <ik1++)
{
int k = ai.length//8
for(int l1 = 0l1 <total_question_in_paperl1++)
{
// int ai[] ={1 ,3 , 5 ,9 , 56,30 96 ,25}
int j1 = (int)Math.floor(Math.random() * (double)k)// 4
String s3 = "insert into test_paper_lib values("
s3 = s3 + "test_seq_paper.nextval," + j + "," + ai[j1] + ")"
stmt.executeUpdate(s3)
int l = ai[k - 1]
ai[k - 1] = ai[j1]
ai[j1] = l
k--
}
j++
}
}
catch(Exception exception)
{
return 0
}
return i
}
}
Java编写一个考试系统 ,模拟考试过程。基本要求(1) 登陆系统
(2) 设置用户权限:学生、教师、管理员
(3) 教师设置考试时间。
(4) 学生选择考试科目。
(5) 随机出题,出题时应注意试题难度程度和知识点的覆盖程度。
(6) 试卷提交。
(7) 试卷判分。
(8) 存储本次考试学生的成绩。
(9) 学生可以查询每次考试的成绩。
(10) 试题管理:包括试题添加、删除、更新等。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)