正在做一个局域网内进行考试的系统做为毕业设计,希望能得到大家一点帮助,谢谢。(200分)

  • 主题发起人 主题发起人 ifellfly
  • 开始时间 开始时间
I

ifellfly

Unregistered / Unconfirmed
GUEST, unregistred user!
想把这个系统做成有学生端和教师端分开的形式,第一个困难就是随机抽题该怎么做?算法
会的不多,希望能得到大家的帮助。数据库用的是SQL Server7.0,建立了一个表做为题库。
怎么能生成一个随机的题集?如果有那位高手有源代码更好,谢谢。
 
这是一个题库,我感觉你考虑的太简单,比如题目的难度,范围,类型等等。。。。
 
我也觉得随机抽题是最难实现的,但是相关数据库的设计肯定很大程度影响整个系统的
效率,我也不懂,帮你up一下!学习学习!
 
数据库已经建立,初步考虑有四种题型,选择、填空、判断、问答,
难度分三级,
只是。。。随机抽题,实在想不出很实用的具体办法。
 
只要给出个比较实用的随机抽题的思想就行。
 
其实上机考试的难度就在随机抽题这里。主要在于知识点的选取,不能重复选取相同的
知识点和漏选知识点。你应该在数据库加字段作为此知识点是否被选取的标识。而且程序中
应该可以设置选取此知识点的难度和题型。
我记得有一本书中的例子就是有关题库方面的,不过介绍的太简单,你可以找找看一下。
 
笨,取得系统时间,然后对秒来几次加减乘除不就得了,动不动就算法~~``又不是造航空母舰
 
想得太简单了。我正在设计制作有关这方面的项目。考试只是题库系统的一小部分,
还不到其中的十分之一。要做好这个设计最好静下心来思考一个星期。
急和向别人要源代码都是不可取的。既然做毕业设计就好好设计一下,将来对找工作有好处
我提醒几点:
1。要考虑考试项目适用的专业
2。考试的范围,在提取试题时需要录入的条件,如范围、难度、一张试卷上题型的分布、
各题型所占的分数比例等
3。考试分ABCD卷问题,既然是局域网内考试,只要考虑考生所坐的位置来定义某考生所
考的卷类就行了。
4。抽题随机很简单,对于一张试卷,只要的抽过的题目上做上临时记号,再取该范围内
的随机数就行了。当然要结合抽题条件。做到这一条的关键是在于数据库数据结构的设计。
5。一个软件其写代码过程只是皮外功夫,真功夫在于其系统设计,包括数据结构和数据关系
希望对你有所帮助。
 
假设要在题目类型T中随机抽N道题目
select top N * from 题目表
where type = T
and ....(其他条件,比如抽过的标记位为1的不抽)
order by newid()
 
既然是随机,为什麽不用随机函数(一般语言都有),
把一类的题(同等难度)查出随机取出。
 
我也来听听课!
 
用时间随机数怎么写啊
 
用随机函数不就的了
function Random [ ( Range: Integer) ];
rang是随机函数的范围。比如10到题,range=10
 
我写过一个ASP的考试系统,我才用的方法是,把题目都放在同一个库表中,然后,在里面设
等级等字断,如果有100题,要考二十题,那么,就新建一个表,每一个从1-100的随机数放入
新建表中,这样就完成了随机抽题目,然后,打开新建的表,跟题库表的序号一一对应,就可以了
在新建表中可以建立答题是否正确字段,判断这题是否对了,然后最后统的时候,就统计
这个字段就行了,比如说分为几个难易,那就看你把握数据库设计,以及整体设计了,思路
这个我觉得没问题,至少ASP我实现了!
 
这样设计地话,知识点不好控制
 
题库表主要字段设计:
1、题型分类: 如单选、多选、判断等
2、知识点分类: 如果有100个知识点,则从1--100编号
3、选项:
4、答案:

例如有10个知识点,则每个知识点有很多题,抽题时,循环将每个知识点的各个题型
读入DataSet:
with DataSet do
begin
cmdtext := 'select * from TABLE where 题型分类=0 and 知识点分类=1';
open;
...
读取DataSet记录总数,利用随机函数生成记录总数范围内的值,然后定位于该
条记录,作为本知识点本题型的一道题
....
循环抽取每个知识点的各个类型题。

 
赞同萧月禾的说法
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部