随机抽取题库

随机抽取题库

ID:37560857

大小:63.50 KB

页数:9页

时间:2019-05-25

随机抽取题库_第1页
随机抽取题库_第2页
随机抽取题库_第3页
随机抽取题库_第4页
随机抽取题库_第5页
资源描述:

《随机抽取题库》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、网上考试系统编制中的随机抽取试题的四种算法  因为教学的需要,我决定编写一个asp+mssql2000的网上考试系统,其功能主要为:实现判断题、单项多项选择题和填空题的在线自动答题、改卷;并将学生的错误答案记入数据库,供教师分析。在编写从题库中随机抽取试题这一模块的算法上,却颇费了一番周折,现将解决过程记录如下,以供大家参考。为了便于说明问题,文中提供的代码中的变量pd为从题库中要抽取出来考试的试题数量,数据库表名与字段名我都使用了中文,并仅以判断题为例。算法一由于不知道如何实现从题库中随机抽取试题的sql语句,我在

2、网上下载了几个免费的考试系统进行研究,找到了第一种算法,其思路为先将数据库中所有数据读出,获得试题的总数后,生成一个1~(试题的总数-考试的试题数量)之间的随机数,然后从这里开始读出数据:<%setrs=server.CreateObject("ADODB.RecordSet")   sql="select*from判断题orderbyidasc"   rs.opensql,conn,1,1   mycound=rs.Recordcount '取得试题总数randomize '初始化随机数种子值n=fix((myco

3、und-pd+1)*Rnd+1)rs.moven ‘指针移到n这个随机数这个位置fori=1topdsession("pdda")=session("pdda")&rs("正确答案")&"

4、" ‘用session来记录标准答案‘输出试题及答案%>   <%=i%>、<%=rs("题目内容")%>  ">   

5、option>   错    <%rs.movenextnextrs.close%>这种算法基本上可以实现随机抽取试题,并让每个学生的试题和每一次刷新以后的试题都不相同,但是它的最大不足在于试题的先后顺序总是相同,特别是题库中试题不多的时候,学生几乎可以用背答案方法来应付考试了。虽然可以通过改变数据的排序方式来改变试题的先后顺序,但变化总是不大。算法二第二种算法的思路很简单,就是不断生成1~题库中的试题总数之间的随机数,然后

6、到数据库中读取这条记录,直到满足考试的试题量为止。<%setrs=server.CreateObject("ADODB.RecordSet")   sql="select*from判断题orderbyidasc"   rs.opensql,conn,1,1   mycound=rs.Recordcount '取得题库中的试题总数rs.closefori=1topd randomize sid=int((mycound+1)*rnd+1) ‘生成1~题库中的试题总数之间的随机数setrs=conn.execute("s

7、elect*from判断题whereid="&sid) whilers.eof randomize sid=int((mycound+1)*rnd+1) setrs=conn.execute("select*from判断题whereid="&sid) ‘如果数据库中找不到这条试题,就继续生成随机数读取试题。wendsession("pdda")=session("pdda")&rs("正确答案")&"

8、" ‘用session来记录标准答案‘输出试题及答案%>   <%=i%>、

9、<%=rs("题目内容")%>  ">   对   错    <%next%>这种算法应该是真正意义上的随机抽取试题,但是遗憾的是如果在题库中题量不多的情况下,很容易会在数据库中读取重复的试题,如果再使用一个变量来储存已经读取过的试题id来解决

10、试题重复的问题,算法就过于繁琐,是很不可取的。  算法二补充:第二种算法的思路很简单,就是不断生成1~题库中的试题总数之间的随机数,然后到数据库中读取这条记录,直到满足考试的试题量为止。当时我认为这种算法应该是真正意义上的随机抽取试题,但是遗憾的是如果在题库中题量不多的情况下,很容易会在数据库中读取重复的试题,虽然也可以再使用一个变量或数组来储

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。