如何用程序实现从题库调出试题随机生成试卷
你可以给每份试卷一个编号如:1-20
然后让系统产生一个在范围在1-20之内
判断生成值去决定用哪一份试卷假设是100份
#include “stdafx.h”
#include
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
srand(time(0));
int cont = 0 ;
int guess = 0;
int randomNumber = rand();//生成一个系统随机数
int number = (randomNumber%100)+1;//我们所需要的编号
//这里写你要做的其他事
return 0;
}
希望能帮到你
有没有那种导入题库,自动生成选择题的软件
猪八戒考试软件就是这种软件,可以自己批量导入试题,按知识点,难易度等随机出题考试或练习,非常不错.
能自动录入,自动组卷的题库软件有哪些
试题通不错的,可以录入自己的题库.
Excel 怎样通过EXCLE题库自动生成试卷
最好用宏代码完成,可设条件避免重复选题. 再看看别人怎么说的.
如何从题库里调出试题随机生成试卷?
您可以用VB脚本调用,可以随即的,可以自定义的,如果您懂得编程很容易实现, 建议您用SQL数据库
哪位知道有哪些好的自动生成试卷的软件?
嗯,是的,凯瑞的系列产品都不错的,是很多省电教馆推荐目录上的产品,比较有权威性
delphi 如何让将选择题库数据生成一道选择题,ABCD选项是随机的?
我也作过考题系统,我的办法是:自动生成的考题是放到别外一个数据库中的,自动出题成功后所有的数据都在考卷库中,与题库是没关系的。
从题库到考卷库中选项随机的问题我是用Random(3)+1来解决的,这个函数的作用是随机产生1-4随机值,将已经移出的选项作个标记,并将答案放到 答案字段中(注:考卷数据库中的答案是根据随机值来写入数据的,考卷数据库中的答案与题库中的答案是不一样的)
总结一下:新建一个考卷数据库,出题后将出的题目放到考卷数据库中,如果新出题就先清空考卷数据库
代码:出100个题目
循环(100)
将题目放到考卷数据库中
随机值
将选项1放到考卷数据库中
记录答案
随机值
将选项2放到考卷数据库中
记录答案
随机值
将选项3放到考卷数据库中
记录答案
随机值
将选项4放到考卷数据库中
记录答案
将答案放到考卷数据库中
循环结束
类似猪八戒考试网的APP有吗?希望可以自己设置里面的题目 可以生成试
试题通可以导入自己的试题,在软件内建立自己的题库.望采纳!
在线考试自动生成试题
随机抽题用SQL语句就可以实现,你可以在抽题后形成题目的数组,然后同步生成答案的数组,这样方便对答案进行对比。我以前用ASP写过一个随机抽题的,你看看能不能改写成.NET的,关键是解决的思路要确定。
‘开始随机抽题
‘单选
RanSql=”SELECT TOP 20 * FROM ncaic where [TRY_TYPE]=’2′ order by newid()”
set rsT=Conn.execute(RanSql)
do while not rsT.eof
if danxuan=”” then
danxuan = rsT(“ID”)
else
danxuan = danxuan & “,” & rsT(“ID”)
end if
rsT.movenext()
loop
‘多选
RanSql=”SELECT TOP 20 * FROM ncaic where [TRY_TYPE]=’3′ order by newid()”
set rsT=Conn.execute(RanSql)
do while not rsT.eof
if duoxuan=”” then
duoxuan = rsT(“ID”)
else
duoxuan = duoxuan & “,” & rsT(“ID”)
end if
rsT.movenext()
loop
‘判断
RanSql=”SELECT TOP 20 * FROM ncaic where [TRY_TYPE]=’1′ order by newid()”
set rsT=Conn.execute(RanSql)
do while not rsT.eof
if panduan=”” then
panduan = rsT(“ID”)
else
panduan = panduan & “,” & trim(rsT(“ID”))
end if
rsT.movenext()
loop
MyTopic = danxuan & “|” & duoxuan & “|” & panduan
if stu_numT<>“360111086” then
uptopicSql=”update verification set STU_TOPIC='”&MyTopic&”‘ where STU_NUM='”&stu_numT&”‘” ‘保存生成的试卷
set rsT=Conn.execute(uptopicSql)
end if
‘组合答案
daselectsql=”select * from verification where STU_NUM='”&stu_numT&”‘”
set rsT=Conn.execute(daselectsql)
timu = rsT(“STU_TOPIC”)
timu1=split(timu,”|”)
response.Write(“单选题号:”&timu1(0)&”
“)
response.Write(“多选题号:”&timu1(1)&”
“)
response.Write(“判断题号:”&timu1(2)&”
“)
‘单选
daSql = “select * from ncaic where id in (” & timu1(0) &”)”
set rsT=Conn.execute(daSql)
do while not rsT.eof
if danxuan_da=”” then
danxuan_da = trim(rsT(“TRY_KEY”))
else
danxuan_da = danxuan_da & “,” & trim(rsT(“TRY_KEY”))
end if
rsT.movenext()
loop
‘多选
daSql = “select * from ncaic where id in (” & timu1(1) &”)”
set rsT=Conn.execute(daSql)
do while not rsT.eof
if duoxuan_da=”” then
duoxuan_da = trim(rsT(“TRY_KEY”))
else
duoxuan_da = duoxuan_da & “,” & trim(rsT(“TRY_KEY”))
end if
rsT.movenext()
loop
‘判断
daSql = “select * from ncaic where id in (” & timu1(2) &”)”
set rsT=Conn.execute(daSql)
do while not rsT.eof
if panduan_da=”” then
panduan_da = trim(rsT(“TRY_KEY”))
else
panduan_da = panduan_da & “,” & trim(rsT(“TRY_KEY”))
end if
rsT.movenext()
loop
MyTopic_da = danxuan_da & “|” & duoxuan_da & “|” & panduan_da
uptopicSql=”update verification set STU_TOPICDA='” & MyTopic_da & “‘ where STU_NUM='”&stu_numT&”‘” ‘保存生成的试卷
set rsT=Conn.execute(uptopicSql)
用php+mysql做一个题库系统,上万题内随机抽取五百题左右生成考试卷,求最有效率的做法!
php里面有array_rand函数,你要是一道题一道题的读出来,或许也可以尝试一下。但是要是一下子都读出来,即便这个函数效率可以的话,随机取出id数组,查询 “where id in 数组” 就不如直接在数据库里随机抽取记录。
如何从数据表里随机抽取记录呢,想想办法还是有一些,就是不知道效率如何。有的是说用max_id*rand(),那一条一条抽取还是可以的。怎么批量随机抽取呢,可以试着排序,然后选取前500题,排序可以想办法用一些函数(选取一些执行效率高的),如何md5,sha1,这种。如果为了使结果更具有随机性,可以把字段值再与一个随机数运算一下。仅供参考。
========================
我想你还是用array_rand随机抽500个id存到数组,然后遍历数组吧。这样也避免了题目重复。在数据库里如果一次一条记录随机抽取,要考虑碰巧重复的问题。批量选取你就按上面我说的试试。