「java随机出题」java随机出题四则运算

博主:adminadmin 2022-12-27 00:30:06 58

本篇文章给大家谈谈java随机出题,以及java随机出题四则运算对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

在java中如何指定题型个数随机出题?

随机生成,不就是取随机数吗?

// 获取min - max之间 n个随机数,然后排序

public static int[] orderedRandom(int min, int max, int n) {

if (n (max - min + 1) || max min) {

return null;

}

int[] result = new int[n];

int count = 0;

while (count n) {

int num = (int) (Math.random() * (max - min)) + min;

boolean flag = true;

for (int j = 0; j n; j++) {

if (num == result[j]) {

flag = false;

break;

}

}

if (flag) {

result[count] = num;

count++;

}

}

return Arrays.stream(result).sorted().toArray();

}

如何用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单击这里设置生成试卷的参数/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 = 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实现随机出题

public class test {

public static void main(String[] args) {

// java实现随机出题

// 50以内的加减乘除法,用户解答后系统判断对错,用户输入-1时中止训练

Scanner scan = new Scanner(System.in);

char[] arr = {'+','-','*','÷'};

while (true) {

// 生成一个随机小数,范围从 2.25 到 2.75的两位小数

// double sum = Math.random()*(2.75-2.25)+2.25;

int a = (int) (Math.random()*(50-0)+0);

int b = (int) (Math.random()*(50-0)+0);

int f = (int) (Math.random()*(4-0)+0);

if (f== 1 a b) {

continue;

}

if (f== 3 a == 0) {

continue;

}

System.out.println("题目:"+a+arr[f]+b+"=\n请输入:");

double sum = 0;

if (f == 0) {

sum = a+b;

}

if (f == 1) {

sum = a-b;

}

if (f == 2) {

sum = a*b;

}

if (f == 3) {

sum = 1.0*a/b;

}

double s = scan.nextDouble();

if (s == -1) {

System.err.println("结束");

break;

}

if (s == sum) {

System.err.println("正确");

}else {

System.err.println("错误");

}

}

}

}

用java随机出100道题

1、首先对这几百道题逐一编号(假如有500道)。

2、用一个数组存放这些编号(从1-500)

3、用以下代码

ListInteger noList = new ArrayListInteger();

//把500个编号放入noList中

for(int i=1; i=500; i++)

{

noList.add(i);

}

int inx = 100;

//存放被随机选中的题目编号

ListInteger selectList = new ArrayListInteger();

while(inx0)

{

Random r = new Random();

int s = r.nextInt(noList.size());

selectList.add(noList.remove(s));

inx--;

}

关于java随机出题和java随机出题四则运算的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。