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
}
}
import java.util.ArrayListimport java.util.List
public class Random {
public static void main(String[] args) {
String[] tiMu = new String[20]
for (int i = 0 i < tiMu.length i++) {
稿芹 tiMu[i] = "第" + (i + 1) + "题"
}
String[] temp = new String[10]
//开始抽取题目
//产生码缺10个随机数
List<Integer> list = new ArrayList<Integer>()
int i
while(list.size() < 10){
i = (int) (Math.random() * 20)
if(!list.contains(i)){
list.add(i)
}
}
for (int j = 0 j < list.size() j++) {
temp[j] = tiMu[list.get(j)]
迟敬辩 }
for (int iloop = 0 iloop < temp.length iloop++) {
System.out.print(temp[iloop] + " ")
}
}
}
代码已经写完了,亲测可用,望采纳哦!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)