在SQL SERVER中有两个表一题库表。表一:表名:question,字段为ques_no(题号)question(问题内容)
answer(答案),grade(问题难度等级)另一个表名:answer_record(用来记录用户答题记录)字段为:user_name(用户名)ques_no(用户以答题的题号)
如何实现对表question的随机访问有不能重复在用户已经答过的题??
answer(答案),grade(问题难度等级)另一个表名:answer_record(用来记录用户答题记录)字段为:user_name(用户名)ques_no(用户以答题的题号)
如何实现对表question的随机访问有不能重复在用户已经答过的题??
解决方案 »
- 关于DELPHI与短信接口
- 我想判断哪个radiobutton被选中了 急急!
- Delphi 7 连接不上Sybase system 11 , 但Delphi 5 可以,请求解决方法
- 求复制表的SQL写法
- 初学DELPHI,请教一个问题!谢谢!
- 请问 Tricheidt中的中文双引号“”怎么不能正常显示?
- 关于Picklist的问题。
- keycode问题
- 没人敢作答的问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 怎样获取鼠标所在编辑框的行数
- 有谁有监视windows窗体的控件
- 有什么办法可以查出,其它窗口的 Height和Width
Randomize;
random(num:integer);将抽取的题号添加到一个集合中。当抽取到下一道题目的时候首先确认新的题号是否在集合中(使用in操作符),如果在则继续抽取。你最好应该单独建立一个用来保存试卷的表。而且为每一张试卷设置难度等级,和总分数。这样在随机抽取题目的时候增加几个条件用于确认是否将随机抽取到的题目添加到试卷中。这些条件是:1、不在已经抽取到的集合中 2、总分数小于试卷分数 3、难度符合要求。
首先获取题目的总数 select count(*) as tcount from 题库
这样从tcount就能获得总的题目的数量了然后使用random(tcount)就能够随即抽取一个序号。例如为B,然后我们来判断B in A
如果False ,则将B---- + >A 中。将数据集中的第B条记录(题目)保存到试卷中。
然后循环调用random(tcount),直到抽取到要求的题目数量。可扩充话题:
刚才是以所有题目为例,当你需要按题型抽取(或特定范围内)时,你只需要筛选数据集即可。
RecNo=random(Query.RecordCount)速度会快些)
我想说“如何实现对表question的随机访问有不能重复在用户已经答过的题??“
在多添一个字段usabled,默认值为0,表示该记录没有被抽取。
当你随机抽取了某个记录后,将字段usabled赋为1,表示该记录已被抽取。下一次随机抽
取时只要先把usabled=1的记录过滤出去在进行抽取,这样就不会重复抽取了
有问题法邮件[email protected]
如果说的有理别忘了给哥们加分
我打算用tquery。我的打算是在数据库中建一个拥护答题记录表。有两个字段:一:user_name
二:ques_no,我的意思就是当用户答了此题以后。往该表中添加一条记录。可是,由于由于要随机
出题。又要不重复,所以在出每道题前都必须与记录用户答题表的记录进行比较。可是如何取得随机
数又是一个问题!!1