• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    java+sql2005 随机抽取试题的代码
    复制代码 代码如下:

    import java.awt.BorderLayout;
    import java.util.*;
    import java.awt.event.*;
    import java.awt.Container;
    import java.awt.EventQueue;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    public class Test extends JFrame {
    public static final String DBDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    public static final String DBURL="jdbc:sqlserver://localhost:1433;DatabaseName=SystemTest;SelectMethod=Cursor";
    public static final String DBUSER="sa";
    public static final String DBPASSWORD="123";
    public static Connection conn=null;
    public static Statement stmt=null;
    public static Statement stmt1=null;
    public static Statement stmt2=null;
    public static ResultSet rs=null;
    public static ResultSet rs1=null;
    public static void main(String args[]) {
    try{
    //数据库的连接。
    Class.forName(DBDRIVER);
    conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
    stmt= conn.createStatement(ResultSet. TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    stmt1= conn.createStatement(ResultSet. TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    stmt2= conn.createStatement(ResultSet. TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    }catch(Exception e)
    {
    e.printStackTrace();
    }
    Test t1=new Test();
    t1.sel_save();
    EventQueue.invokeLater(new Runnable() {
    public void run() {
    try {
    Test frame = new Test();
    frame.setVisible(true);
    frame.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    /*try{
    sql_1="delete from stu_selAns";
    stmt=conn.createStatement();
    rs=stmt.executeQuery(sql_1);
    }
    catch(Exception event)
    {
    }*/
    }
    });
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    });
    }
    /**
    * Create the frame
    */
    public Test() {
    super();
    setBounds(100, 100, 500, 386);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setTitle("测试");
    final Container container = new Container();
    container.setLayout(null);
    getContentPane().add(container, BorderLayout.CENTER);
    label = new JLabel();
    label.setBounds(22, 68, 462, 57);
    container.add(label);
    final JButton nextButton = new JButton();
    nextButton.setText("next");
    nextButton.setBounds(60, 270, 106, 28);
    container.add(nextButton);
    nextButton.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event)
    {
    int current=Integer.parseInt(label_3.getText());
    current+=1;
    if(current>0 ¤t=10)
    {
    label_3.setText(""+current);
    label_3.setVisible(true);
    sel_show(current);
    }
    label_2.setVisible(false);
    label_1.setVisible(false);
    }
    });
    button = new JButton();
    button.setText("显示答案");
    button.setBounds(224, 270, 106, 28);
    container.add(button);
    button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event)
    {
    label_1.setVisible(true);
    label_2.setVisible(true);
    int current=Integer.parseInt(label_3.getText());
    current+=1;
    try{
    sql="select sel_Ans from stu_selAns where sel_Id="+current;
    stmt=conn.createStatement();
    rs=stmt.executeQuery(sql);
    while(rs.next())
    {
    label_2.setText(rs.getString(1));
    }
    }catch(Exception e)
    {
    }
    }
    });
    label_1 = new JLabel();
    label_1.setText("正确答案是:");
    label_1.setBounds(22, 199, 78, 28);
    container.add(label_1);
    label_1.setVisible(false);
    label_2 = new JLabel();
    label_2.setBounds(106, 199, 323, 28);
    container.add(label_2);
    label_2.setVisible(false);
    button_1 = new JButton();
    button_1.setText("退出");
    button_1.setBounds(349, 270, 106, 28);
    container.add(button_1);
    button_1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event)
    {
    dispose();
    /*try{
    sql_1="delete from stu_selAns";
    stmt=conn.createStatement();
    rs=stmt.executeQuery(sql_1);
    }catch(Exception e)
    {
    e.printStackTrace();
    }*/
    }
    });
    label_3 = new JLabel();
    label_3.setBounds(363, 175, 66, 18);
    container.add(label_3);
    label_3.setVisible(false);
    label_3.setText("0");
    }
    //此方法用于获取选择题的数目。
    public int sel_count()
    {
    int n = 0;
    try{
    Connection conn=null;
    Statement stmt=null;
    ResultSet rs=null;
    Class.forName(DBDRIVER);
    conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
    sql_1="select COUNT(selId) from sel_test where selId=1";
    stmt=conn.createStatement();
    rs=stmt.executeQuery(sql_1);
    if(rs.next())
    {
    n=rs.getInt(1);
    }
    }
    catch(Exception e )
    {
    e.printStackTrace();
    }
    return n;
    }
    //此方法用于产生十道选择题的随机数。
    public int[] Random()
    {
    Test st=new Test();
    int n=st.sel_count();
    int[] numbers=new int[n];
    for(int i=0;inumbers.length;i++)
    numbers[i]=i+1;
    int[] result=new int[10];
    for(int i=0;iresult.length;i++)
    {
    int r=(int)(Math.random()*n);
    result[i]=numbers[r];
    numbers[r]=numbers[n-1];
    n--;
    }
    return result;
    }
    //此方法实现存取随机抽取的选择题
    public void sel_save()
    {
    Test s=new Test();
    int k[]=s.Random();
    Arrays.sort(k);
    for(int i=0;ik.length;i++)
    {
    System.out.println(k[i]);
    try{
    sql_2="select selNo,selInf,selA,selB,selC,selD,selAns from sel_test where selNo="+k[i];
    sql=" insert into stu_selAns(sel_No,sel_Inf,sel_A,sel_B,sel_C,sel_D,sel_Ans)"+sql_2;
    stmt=conn.createStatement();
    stmt1=conn.createStatement();
    rs=stmt1.executeQuery(sql);
    while(rs.next())
    {
    stmt1.execute(sql);
    }
    }catch(Exception e)
    {
    e.printStackTrace();
    }
    }
    //此处的FOR循环实现将试题的题号从一到十进行排列。
    for(int j=0;jk.length;j++)
    {
    //System.out.println(k[j]+"a");//用于测试产生的随机数是否相同。
    try{
    sql="update stu_selAns set sel_Id="+(j+1)+"where sel_No="+k[j];
    stmt=conn.createStatement();
    rs=stmt.executeQuery(sql);
    }catch(Exception e)
    {
    e.printStackTrace();
    }
    }
    }
    //此方法实现选择题的调用
    public void sel_show(int i)
    {
    try{
    sql="select sel_Inf ,sel_Ans from stu_selAns where sel_No="+i;
    stmt=conn.createStatement();
    rs=stmt.executeQuery(sql);
    while(rs.next())
    {
    label.setText(rs.getString(1));
    label_2.setText(rs.getString("sel_Ans"));
    }
    }catch(Exception e)
    {
    e.printStackTrace();
    }
    }
    private String sql;
    public static String sql_1;
    private String sql_2;
    private JLabel label;
    private JLabel label_1;
    private JLabel label_2;
    private JLabel label_3;
    private JButton button; //显示答案的按钮。
    private JButton button_1;
    }
    说明:执行此程序前需先建立两张表。其中一张表是(sel_test(selNo,selA,selB,selC,selD,selAns)),另一张表是(stu_selAns(sel_No,sel_A,sel_B,sel_C,sel_D,sel_Ans) 此张表用于保存从表sel_test

    中随机抽取的题目。
    此程序是大概思路是:先从题库中随机抽取十道题,然后将其保存在另一张表中并将其相应的题号变为一到十。便于接下来的其他操作。
    您可能感兴趣的文章:
    • java利用数组随机抽取幸运观众
    • java随机抽取指定范围不重复的数字
    • java随机抽取指定范围内不重复的n个数
    • Java利用数组随机抽取幸运观众如何实现
    • java实现随机抽取奖品工具类
    上一篇:java获得指定日期的前一天,后一天的代码
    下一篇:java解析出url请求的路径和参数键值对类(解析出url请求的路径,包括页面)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    java+sql2005 随机抽取试题的代码 java+sql2005,随机,抽取,试,