关于考试系统出题实现随机出题的问题。

时间:2022-08-30 18:13:15
数据库里面有很多题目,想随机的显示出来几条数据让用户答题。这个怎么实现?小弟现在没有思路,希望大侠给点思路。

15 个解决方案

#1


用随机数吧。。。
获得一个随机数,然后到数据库表里拿相应的题目
题目用个自增长,取到相同的再取(程序控制)

#2


该回复于2010-04-29 19:00:43被版主删除

#3


给每个题目取个编号,然后1和总数的范围内获取一个随机数,该随机数对应的题目就是要选出来的题目。
要几个题目,选几次。

#4


rand一下范围.活的一个数字.查询一下这个数字为ID的题目内容不就OK了?

#5


select top 5 * from tablename order by newid()

#6


引用 5 楼 sprc_lcl 的回复:
select top 5 * from tablename order by newid()

UP

#7


引用 5 楼 sprc_lcl 的回复:
select top 5 * from tablename order by newid()
可以

#8


引用 5 楼 sprc_lcl 的回复:
select top 5 * from tablename order by newid()

这个方法想过,可是页面一刷新,数据就变了。
重要的还是这样随机产生出来的试题,他们的ID没有办法记录。

#9


用一个数组记录下数据库中所有题目的ID。
然后写个方法,随机选取题目,去数组里面取相应的就行。

#10


做这个肯定要防刷新的啊,刷新当然数据会变,还有就是你在生成题目后,在另一个表里,把当前生成的题目写进去,并且每过几秒就更新一下数据 ,这个数据就是考生的答案,
我以前做过一个很简单,有几点要注意一下
1、刷新
2、断电或者死机、重启、页面假死等情况

#11


引用 8 楼 wpf363093940 的回复:
引用 5 楼 sprc_lcl 的回复:
select top 5 * from tablename order by newid()

这个方法想过,可是页面一刷新,数据就变了。
重要的还是这样随机产生出来的试题,他们的ID没有办法记录。

在10楼回复你的。

#12


引用 8 楼 wpf363093940 的回复:
引用 5 楼 sprc_lcl 的回复:
select top 5 * from tablename order by newid()

这个方法想过,可是页面一刷新,数据就变了。
重要的还是这样随机产生出来的试题,他们的ID没有办法记录。

在数据库记录试试

create table ExamDetail
(
id int 
学生ID
考试ID
试题ID
答案ID
时间
)
select top 5 * from tablename order by newid()
用个存储过程把查出来的写进 ExamDetail 表里 

#13


一次性生成5个不相同的ID  存放数组中  在根据ID 去取题

#14


如果是采用随机数的话,请注意试题编号的自增ID的连贯性

#15



select * from table group by newid()
这个方法第一次看到的时候是
如梦贴出来的。

#1


用随机数吧。。。
获得一个随机数,然后到数据库表里拿相应的题目
题目用个自增长,取到相同的再取(程序控制)

#2


该回复于2010-04-29 19:00:43被版主删除

#3


给每个题目取个编号,然后1和总数的范围内获取一个随机数,该随机数对应的题目就是要选出来的题目。
要几个题目,选几次。

#4


rand一下范围.活的一个数字.查询一下这个数字为ID的题目内容不就OK了?

#5


select top 5 * from tablename order by newid()

#6


引用 5 楼 sprc_lcl 的回复:
select top 5 * from tablename order by newid()

UP

#7


引用 5 楼 sprc_lcl 的回复:
select top 5 * from tablename order by newid()
可以

#8


引用 5 楼 sprc_lcl 的回复:
select top 5 * from tablename order by newid()

这个方法想过,可是页面一刷新,数据就变了。
重要的还是这样随机产生出来的试题,他们的ID没有办法记录。

#9


用一个数组记录下数据库中所有题目的ID。
然后写个方法,随机选取题目,去数组里面取相应的就行。

#10


做这个肯定要防刷新的啊,刷新当然数据会变,还有就是你在生成题目后,在另一个表里,把当前生成的题目写进去,并且每过几秒就更新一下数据 ,这个数据就是考生的答案,
我以前做过一个很简单,有几点要注意一下
1、刷新
2、断电或者死机、重启、页面假死等情况

#11


引用 8 楼 wpf363093940 的回复:
引用 5 楼 sprc_lcl 的回复:
select top 5 * from tablename order by newid()

这个方法想过,可是页面一刷新,数据就变了。
重要的还是这样随机产生出来的试题,他们的ID没有办法记录。

在10楼回复你的。

#12


引用 8 楼 wpf363093940 的回复:
引用 5 楼 sprc_lcl 的回复:
select top 5 * from tablename order by newid()

这个方法想过,可是页面一刷新,数据就变了。
重要的还是这样随机产生出来的试题,他们的ID没有办法记录。

在数据库记录试试

create table ExamDetail
(
id int 
学生ID
考试ID
试题ID
答案ID
时间
)
select top 5 * from tablename order by newid()
用个存储过程把查出来的写进 ExamDetail 表里 

#13


一次性生成5个不相同的ID  存放数组中  在根据ID 去取题

#14


如果是采用随机数的话,请注意试题编号的自增ID的连贯性

#15



select * from table group by newid()
这个方法第一次看到的时候是
如梦贴出来的。