jsp开发全程实录第八章网络在线考试系统的问题
发表在JavaWeb图书答疑 2010-05-13
是否精华
版块置顶:
工作人员您好:
       我有几个问题不明白请您帮我解答,程序的主要功能都能成功运行,但是删除课程和学生总是失败出现提示框:删除课程(学生)信息失败
       还有一个问题是随机出题这块,如果是系统随机出题那么套题这个表好像不必要,每次添加考题信息时也不用输入属于哪套题只需要指明属于哪门课程
       这是StartExamDao中的随机出题的源代码:
       public int randomGetQuestion(int lessonID){
     int questionsID=0;
     String sql="SELECT taoTiID FROM (SELECT distinct lessonID,taoTiID from " +
     "(SELECT lessonId,taoTiID FROM tb_questions GROUP BY taoTiID,lessonID,type)" +
     " as lessonTaoTi GROUP BY lessonId,taoTiID having count(taoTiID) >1)as temp" +
     " WHERE lessonID="+lessonID+"";
     ResultSet rs = conn.executeQuery(sql);
     int i=0;
        try {
         rs.last();
         int recordNum=rs.getRow();
         rs.first();
         int[] id=new int[recordNum];
            do {
                id[i]=rs.getInt(1);
                i++;
            }while (rs.next());
            int rand=Math.abs(new Random().nextInt(id.length));
            questionsID=id[rand];
        } catch (Exception ex) {
         ex.printStackTrace();
        }    
     return questionsID;
    }
程序的sql语句有的复杂请帮我解释一下,{int rand=Math.abs(new Random().nextInt(id.length));
questionsID=id[rand];}用这两条语句怎样实现随机出题


问题有点多,麻烦您了。
分享到:
精彩评论 1
东北虎
学分:0 LV1
2010-05-13
沙发
这里的SQL语句使用的是子查询,有关子查询的内容请参考SQL的相关书籍。
通过int rand=Math.abs(new Random().nextInt(id.length));可以获得0到数组id长度减1的随机整数,目的是随机获得数组中某个元素的索引值,并赋值给变量rand。
questionsID=id[rand];是获得数组id中索引值是rand的元素。这样方法就可以返回该questionsID的值了,该值就是随机抽题的题号。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照