系统体系结构
4.2 试题设计流程图如下:
定制试卷—》1.题型 。分数—》自动生成---》章节选择----》难度选择----》试卷生成浏览-----》答案生成查看
4.3 数据模块窗体及BDE的设置
本系统使用了一个数据模块窗体,这个数据模块窗体继于TdataModule。在本系统中所有的数据存取组件和数据源组件都在此数据模块中进行了定义。在编写数据库应用程序时,经常要遇到这样的情况,即多组件、窗体同时访问相同的数据源,如果为每一个组件或者窗体都设置一个数据源将是十分耗时的工作,而且要保证这些数据源的确是相同的也需花一番功夫。数据模块就把这些数据源集中管理做成的一个统一的模块,需要时就将该模块引入而不必直接操作数据源本身。简单说来,数据模块是用来集中管理数据源的一个窗体。该窗体可在需要的地方随时引入,不过一定要的是在使用该数据组件时须在USES中加入该数据模块单元。
/////再写一点如何连接的,属性。。。 4.4 前台用户部分模块设计
4.
登陆模块供用户登陆进入系统使用,用户首先选择用户,只有当密码符合时,用户才被允许进入系统,实现方法是对用户表进行遍历搜索,若存在记录满足用户输入的密码,则
打开主窗体,并记录登陆事件和相应资料。当密码三次输入错误时就退出。主要使用了Ttable 的Locate()方法。当输入的密码正确下,登陆窗体就将主窗体可以显示的标志为真,同时,把登陆人的号码和登陆人的姓名也传到主窗体中,作为其它的功能条件。如图*********
图。。。。。 4.4.2 主界面设计
主窗体(如图4-4)在一定的程度是存放打开各功能菜单的一个窗体,按照设计,不同的用户登陆能使用不同的菜单。
在窗体显示的时候,就对用户进行权限检查,并打进相应的菜单,具体是根据登陆时传来的用户号,再读取数据库的权限来进行相应的操作。
图。。。。
4.4.3 权限管理 图。。。。。。 4.5 数据库后台设计 4.5.1 数据库表的设计思路
由于数据库中有大量复杂的数据,因此对于表的设计应特别注意,表的个数尽量少,表中属性应尽量直观,数量也要适中,因为要考虑选题的多样性和自动生成的随机性,各个表之间有关联的情况要尽量少,这样就可以在对各个表操作时,保证数据的正确性。 4.5.2 数据库部分表的列举 (1)系统用户表:
列 名 ID mi qx 数据类型 char char char 长度 10 6 1 允许为空 yes yes yes 主键 no no no (2)题库结构的组成:
列 名 tno tigan xa xb xc xd answer score difficulty note 数据类型 长度 int 4 varchar 500 varchar 100 varchar 100 varchar 100 varchar 100 char 1 tinyint 1 char 1 varchar 200 允许为空 yes yes yes yes yes yes yes yes yes yes 主键 yes no no no no no no no no no 4.6 试卷生成
试卷生成主要有两种方式:手动生成试卷和自动生成试卷。 手动生成试卷让用户通过浏览题库,自己选择题目,当用户选择的试题重复时(比如:同一知识点在选择题中出现后,又在填空题中出现),系统要能自动检测出冲突,让用户重新选择。并在选择的过程统计各种题型的数目及分值,并总计题量及总分。
自动生成试卷通过设置向导设置条件,调用自动生成试卷程序生成试卷。整个过程如下:先让用户选择各种题型的分值,接着是选择考试的章,然后设置各个章的分值,最后再设置试卷的难度值。接着调用自动生成试卷算法来生成试卷,生成的试卷可以通过试卷预览来查看,还可能根据需要打印试卷。 4.7 自动生成试卷向导模块设计 自动生成试卷程序流程图如下:
4.8 算法概要
自动组卷得的过程是根据某些约束条件,在试题库中选择
满足约束条件试题的过程。这些约束条件一般是指题型、难度、 难度、分值等约束。这些约束条件如果看作是局部约束条件,那 么试卷将达到各项指标的均衡,这样就形成了全局的约束条 件。从这个意义上,计算机的自动组卷实际上就是一个约束 满足的过程。
自动组卷是题库系统的一个重要组成部分 如何在庞大的试题库中选出符合用户要求的试 题,并使组卷具有较高的效率和成功率是试题库 设计的一个难点.现行的试题库系统组卷时一般 有两种方法:一是让用户详细地提出每一道试题 的题型!难度!章节分布等要求,然后利用随机函 数在试题库中进行选题,这种方法选出的试题的 确能满足用户的要求,但对使用者来说过于繁琐 工作量太大,并不实用[1];二是用户只给出有关 试卷命题的整体要求,此时由于组卷问题是一个 典型的约束满足问题,因此可以采用回溯法找到 满足全部约束条件的一个解,但是在强约束下,经 常会出现无法组成满足性能要求的试卷[2,3].本 文提出的组卷算法,首先根据用户的命题要求计
算出本次试卷的量化模型,包括各种题型的试题
题分分配矩阵和各难度类型的试题在各章中的题分分配矩阵,然后采用随机抽取和近似匹配的策
略进行抽题组卷.此种方法不仅能够生成满足用 户命题要求的试卷,而且减轻了用户的工作量,并 在一定程度上提高了组卷的效率.
本文提出的组卷策略中提到的用户的命题要 求主要包括:
(1) 抽出的试卷具有随机性
(2) 同一份试卷中无知识点重复的试题 (3) 试卷所涉及的章 (4) 试卷的难易度控制
用户的命题要求通过人机交互的方式给出
它反映了用户对试卷的整体难度!各章节分布情 况以及各类型试题的比例要求.为了避免题库系
统盲目地选题:首先将用户对试卷整体的命题要求(如试卷的期望值这样的全局指标)进行分解,
得到有关试卷的各项局部指标(如各类试题的分 数及难度);然后在试题库中有目的性地选题,这 样可以大大提高组卷的效率和成功率.
单独满足条件(1)的算法实现较为简单,但是要同时满足条件(2)(3)(4),从庞大的数据库中随机选出试题,组成的试卷既要满足给定的题型要求,又要使试卷中各试题的难度值满足试卷的平均难度,同时又要使试卷中的知识点不重复,试题库结构的合理组建和出卷算法的优化就显得非常重要。
本文以基于知识点的层次结构试题库模型为基础,采用随机算法,使组成的试卷满足教学的实际要求,还需为每一类题型 创建一个表单,即共创建4个表单:选择题表单,用来存放选择题的全部数据;填空题表单,用来存放填空题的全部数据;问答题表单,用来存放问答题的全部数据;判断题表单。用来存放判断题的全部数据特征(每一章试题根据特征分成
若干项类)、试题难易程度、分值、和试题特点确定选择的先后顺序)是查询所需的关键字