这个网站上的"随机出题测试"模块怎么做呢
希望没想过的不要乱发
13 个解决方案
#1
思路其实有很多,关键在个人的把握,我的思路是,首先创建一个试题库,每一道题都有自己的惟一性编号,然后随机生成一串数字,并随机取出这个字串的第某位(假设第一位为3),把指针放到题库第一条记录,每往下移动3指针,取出一条了,最后判断取出的个数
或者你前10条往下移动三个记录,再往后你就取得第二位的值,按照第二位所对应的数值往下移动
或者你前10条往下移动三个记录,再往后你就取得第二位的值,按照第二位所对应的数值往下移动
#2
相当于答题的A、B卷,题是固定的,然后你想法分组不就可以了嘛
#3
随机出题目页面(question.asp):
Randomize
sql="select top 3 * from test order by rnd(-(id+"&rnd()&"))"//随机得到3题,随机排序
通过<input type='hidden' value="<%=nval%>" name="mm" />
//nval=nval&rs("id")&","nval是随机分配的题目id集合
提交到对答案面面
对答案页面(answer.asp):
sql="select top 3 * from test where id in ("&request.form("mm")&")" //默认按升序
现在问题是:
question.asp中的题日随机排序,但是answer.asp中是升序,所以question.asp和answer.asp中的题目没有对上
Randomize
sql="select top 3 * from test order by rnd(-(id+"&rnd()&"))"//随机得到3题,随机排序
通过<input type='hidden' value="<%=nval%>" name="mm" />
//nval=nval&rs("id")&","nval是随机分配的题目id集合
提交到对答案面面
对答案页面(answer.asp):
sql="select top 3 * from test where id in ("&request.form("mm")&")" //默认按升序
现在问题是:
question.asp中的题日随机排序,但是answer.asp中是升序,所以question.asp和answer.asp中的题目没有对上
#4
<input type="radio" name="da1065" id="rd97" value="A">A.高压电<br>
<input type="radio" name="da1065" id="rd97" value="B">B.小电流<br>
很明显是单一判断答案的对错,所以不存在你说的顺序问题。
for each tid in nval
if conn.execute("select 答案 from test where id = "&tid)(0)=request.form("da"&tid&"") then
对
else
错误
end if
next
<input type="radio" name="da1065" id="rd97" value="B">B.小电流<br>
很明显是单一判断答案的对错,所以不存在你说的顺序问题。
for each tid in nval
if conn.execute("select 答案 from test where id = "&tid)(0)=request.form("da"&tid&"") then
对
else
错误
end if
next
#5
抽题的时候把答案或答案编号一起抽出来。
放到哪里你自己再找个地方放!~
到对答案时不就对应上了么》。
放到哪里你自己再找个地方放!~
到对答案时不就对应上了么》。
#6
谁帮发送了,我没说完呢,呵呵。
建议不要直接把答案取出。(在源码上直接看到答案就危险了。)
建议不要直接把答案取出。(在源码上直接看到答案就危险了。)
#7
回:ATHENA112()
在对答案的时候,answer.asp要把question.asp随机抽到的题目原样的列出来
在对答案的时候,answer.asp要把question.asp随机抽到的题目原样的列出来
#8
实际上我的问题是:
两个页面:1.asp,2.asp
在1.asp:
Randomize
sql="select top 3 * from test order by rnd(-(id+"&rnd()&"))"//随机得到3题,排序也是随机
然后显示这三条记录
在2.asp:
我想显示上面那三条随机抽出的记录,而且次序是一样的
两个页面:1.asp,2.asp
在1.asp:
Randomize
sql="select top 3 * from test order by rnd(-(id+"&rnd()&"))"//随机得到3题,排序也是随机
然后显示这三条记录
在2.asp:
我想显示上面那三条随机抽出的记录,而且次序是一样的
#9
不需要记录成绩,只做练习用的,可以用session记录随机题的id串,比如23,13,45
2.asp直接读session就是了
如果需要记录历史成绩,你自然有一个历史成绩表,在里头存就好了
2.asp直接读session就是了
如果需要记录历史成绩,你自然有一个历史成绩表,在里头存就好了
#10
sql="select top 3 * from test order by newid()"
系统带的就可以了
系统带的就可以了
#11
usertest table
id int
sessionid varchar
px int
------------------------------
1.asp
sql="select top 3 * from test order by rnd(-(id+"&rnd()&"))"//
set rs=conn.execute(sql)
i=0
while not rs.eof
i=i+1
conn.execute("insert into usertest values("&rs("id")&",'"&Session.SessionID&"',"&i&")")
rs.movenext
loop
-------------------------------------------
2.asp
sql="select test.* from test,usertable where sessionid='"&session.sessionid&"' and test.id=usertable.id order by px "
id int
sessionid varchar
px int
------------------------------
1.asp
sql="select top 3 * from test order by rnd(-(id+"&rnd()&"))"//
set rs=conn.execute(sql)
i=0
while not rs.eof
i=i+1
conn.execute("insert into usertest values("&rs("id")&",'"&Session.SessionID&"',"&i&")")
rs.movenext
loop
-------------------------------------------
2.asp
sql="select test.* from test,usertable where sessionid='"&session.sessionid&"' and test.id=usertable.id order by px "
#12
回:lxrxyls(行云流水)
都把记录存到数据库表里啊,能不能存到一个临时表(如用数组代替)??
都把记录存到数据库表里啊,能不能存到一个临时表(如用数组代替)??
#13
主要是排序的问题,否则你就需要把所有的题目信息全都放到数组里,存到cooki或者session里。
#1
思路其实有很多,关键在个人的把握,我的思路是,首先创建一个试题库,每一道题都有自己的惟一性编号,然后随机生成一串数字,并随机取出这个字串的第某位(假设第一位为3),把指针放到题库第一条记录,每往下移动3指针,取出一条了,最后判断取出的个数
或者你前10条往下移动三个记录,再往后你就取得第二位的值,按照第二位所对应的数值往下移动
或者你前10条往下移动三个记录,再往后你就取得第二位的值,按照第二位所对应的数值往下移动
#2
相当于答题的A、B卷,题是固定的,然后你想法分组不就可以了嘛
#3
随机出题目页面(question.asp):
Randomize
sql="select top 3 * from test order by rnd(-(id+"&rnd()&"))"//随机得到3题,随机排序
通过<input type='hidden' value="<%=nval%>" name="mm" />
//nval=nval&rs("id")&","nval是随机分配的题目id集合
提交到对答案面面
对答案页面(answer.asp):
sql="select top 3 * from test where id in ("&request.form("mm")&")" //默认按升序
现在问题是:
question.asp中的题日随机排序,但是answer.asp中是升序,所以question.asp和answer.asp中的题目没有对上
Randomize
sql="select top 3 * from test order by rnd(-(id+"&rnd()&"))"//随机得到3题,随机排序
通过<input type='hidden' value="<%=nval%>" name="mm" />
//nval=nval&rs("id")&","nval是随机分配的题目id集合
提交到对答案面面
对答案页面(answer.asp):
sql="select top 3 * from test where id in ("&request.form("mm")&")" //默认按升序
现在问题是:
question.asp中的题日随机排序,但是answer.asp中是升序,所以question.asp和answer.asp中的题目没有对上
#4
<input type="radio" name="da1065" id="rd97" value="A">A.高压电<br>
<input type="radio" name="da1065" id="rd97" value="B">B.小电流<br>
很明显是单一判断答案的对错,所以不存在你说的顺序问题。
for each tid in nval
if conn.execute("select 答案 from test where id = "&tid)(0)=request.form("da"&tid&"") then
对
else
错误
end if
next
<input type="radio" name="da1065" id="rd97" value="B">B.小电流<br>
很明显是单一判断答案的对错,所以不存在你说的顺序问题。
for each tid in nval
if conn.execute("select 答案 from test where id = "&tid)(0)=request.form("da"&tid&"") then
对
else
错误
end if
next
#5
抽题的时候把答案或答案编号一起抽出来。
放到哪里你自己再找个地方放!~
到对答案时不就对应上了么》。
放到哪里你自己再找个地方放!~
到对答案时不就对应上了么》。
#6
谁帮发送了,我没说完呢,呵呵。
建议不要直接把答案取出。(在源码上直接看到答案就危险了。)
建议不要直接把答案取出。(在源码上直接看到答案就危险了。)
#7
回:ATHENA112()
在对答案的时候,answer.asp要把question.asp随机抽到的题目原样的列出来
在对答案的时候,answer.asp要把question.asp随机抽到的题目原样的列出来
#8
实际上我的问题是:
两个页面:1.asp,2.asp
在1.asp:
Randomize
sql="select top 3 * from test order by rnd(-(id+"&rnd()&"))"//随机得到3题,排序也是随机
然后显示这三条记录
在2.asp:
我想显示上面那三条随机抽出的记录,而且次序是一样的
两个页面:1.asp,2.asp
在1.asp:
Randomize
sql="select top 3 * from test order by rnd(-(id+"&rnd()&"))"//随机得到3题,排序也是随机
然后显示这三条记录
在2.asp:
我想显示上面那三条随机抽出的记录,而且次序是一样的
#9
不需要记录成绩,只做练习用的,可以用session记录随机题的id串,比如23,13,45
2.asp直接读session就是了
如果需要记录历史成绩,你自然有一个历史成绩表,在里头存就好了
2.asp直接读session就是了
如果需要记录历史成绩,你自然有一个历史成绩表,在里头存就好了
#10
sql="select top 3 * from test order by newid()"
系统带的就可以了
系统带的就可以了
#11
usertest table
id int
sessionid varchar
px int
------------------------------
1.asp
sql="select top 3 * from test order by rnd(-(id+"&rnd()&"))"//
set rs=conn.execute(sql)
i=0
while not rs.eof
i=i+1
conn.execute("insert into usertest values("&rs("id")&",'"&Session.SessionID&"',"&i&")")
rs.movenext
loop
-------------------------------------------
2.asp
sql="select test.* from test,usertable where sessionid='"&session.sessionid&"' and test.id=usertable.id order by px "
id int
sessionid varchar
px int
------------------------------
1.asp
sql="select top 3 * from test order by rnd(-(id+"&rnd()&"))"//
set rs=conn.execute(sql)
i=0
while not rs.eof
i=i+1
conn.execute("insert into usertest values("&rs("id")&",'"&Session.SessionID&"',"&i&")")
rs.movenext
loop
-------------------------------------------
2.asp
sql="select test.* from test,usertable where sessionid='"&session.sessionid&"' and test.id=usertable.id order by px "
#12
回:lxrxyls(行云流水)
都把记录存到数据库表里啊,能不能存到一个临时表(如用数组代替)??
都把记录存到数据库表里啊,能不能存到一个临时表(如用数组代替)??
#13
主要是排序的问题,否则你就需要把所有的题目信息全都放到数组里,存到cooki或者session里。