正文
java随机组卷代码 java 随机
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
如何用Java实现随机出题?
import java.io.*;
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/html;charset=GBK");
PrintWriter printwriter = httpservletresponse.getWriter();
printwriter.println("htmlhead/headbodycenter");
printwriter.println("请以POST方式提交");
printwriter.println("/center/body/html");
printwriter.close();
}
public void doPost(HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse)
throws ServletException, IOException
{
httpservletresponse.setContentType("text/html;charset=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单击这里设置生成试卷java随机组卷代码的参数/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("试题库中试卷不足java随机组卷代码,请增加新的试题!");
printwriter.println("班级代号java随机组卷代码:" + 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("共生成java随机组卷代码了 " + 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 = 0; k1 i; k1++)
{
int k = ai.length; //8
for(int l1 = 0; l1 total_question_in_paper; l1++)
{
// 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编程实现随机数组的快速排序
java编程实现随机数组的快速排序步骤如下:
1、打开Eclipse,新建一个Java工程,在此工程里新建一个Java类;
2、在新建的类中声明一个产生随机数的Random变量,再声明一个10个长度的int型数组;
3、将产生的随机数逐个放入到数组中;
4、利用排序算法对随机数组进行排序。
具体代码如下:
import java.util.Random;
public class Demo {
public static void main(String[] args) {
int count = 0;
Random random = new Random();
int a[] = new int[10];
while(count 10){
a[count] = random.nextInt(1000);//产生0-999的随机数
count++;
}
for (int i = 0; i a.length - 1; i++) {
int min = i;
for (int j = i + 1; j a.length; j++) {
if (a[j] a[min]) {
min = j;
}
}
if (min != i) {
int b = a[min];
a[min] = a[i];
a[i] = b;
}
}
for (int c = 0; c a.length; c++) {
System.out.print(a[c] + " ");
}
}
}
java实现组卷功能
组卷一般分两种模式
一种是固定试卷 你直接在你题库选择题目 拼成了试卷 生成你直接拼接字符串生成一个html文件就可以了
一种是随机试卷,你设计好 选择题几个 问答题几个 。。。类似 然后一键生成 根据你设定的参数去随机取题目 然后 按一定的规律拼接就可以了 比如3个选择 2个填空 1个问答 剩下那些拼接都是布局的问题了
哪位高手有随机组卷的思路 最好有源码 我用的是java+jsp+servlet。
Mjava随机组卷代码我 晚上我给java随机组卷代码你一套源码
(java)题库中有20道题,随机抽10道不同的题出来 怎么写代码 在线等啊
import java.util.ArrayList;
import 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个随机数
ListInteger list = new ArrayListInteger();
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] + " ");
}
}
}
代码已经写完了,亲测可用,望采纳哦!
java随机组卷代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 随机、java随机组卷代码的信息别忘了在本站进行查找喔。