当前位置:编程学习 > C#/ASP.NET >>

求一个实现过程

关于考试系统的自动抽题的理论实现问题,请各位专家给点意见!
理论如下:
整个算法分为两个步骤,第一生成题目数量矩阵,第二步根据题目数量矩阵随机从题库抽取试题生成试卷,在教师手动调整后保存入试卷库中。采取分两步生成试卷是为了实现在题目生成的每一个阶段教师都能够监测生成的试卷是否满足要求,进行控制。
生成题目数量矩阵首先要建立两个向量D[5](用来存放五个难度的题目应占总题目中的比例,其具体比例可以参见参数设置中的论述,也可以自行定义),C[n](n为课程中章的数目,用来存放课程各章中题目应占比例,本系统提供平均分配和依据各章题目数分配两种)。
  D[i]=xi /x1+...+x5(其中xi为i难度题目占试卷题目数目的比例)
  C[n]=yi/y1+...+yi (其中yi为试卷中属于第i章的题目数)

这时根据教师提供的试卷总题量T和这两个向量就可以求出题量矩阵Q[i][j](i为难度级数,j为课程中章数)中的各个节点的数值Q[i][j]=T C[j]  D[i](i为难度级数,j为课程中章数),这时矩阵生成结束之后往往因为舍入的关系会产生题量上的误差,就要对累计误差进行修正。
具体方法为:
1.计算在舍入得到Q[i][j]时记录每个数组值时包含正误差还是负误差;
2.在Q[i][j]数组值全部计算出来后,统计累计误差R;
3.若累计误差是正误差,则在包含正误差的Q[i][j]里随机选取|R|个值自减1;
若累计误差是负误差,则在包含正误差的Q[i][j]里随机选取|R|个值自加1。
题目数量矩阵生成完毕之后,就要根据矩阵各个元素的值从题库中随机抽取试题组成试卷并进行保存。具体方法为:首先取出Q[i][j]中的元素,即第j章中难度i的试题数量,假设其值为n,然后从数据库中取出满足条件的所有试题然后将试题ID保存在新建立的向量中,同时将向量的选择标识设置为0,随机抽取n道试题,将其选择标识设置为1。然后将所有选择标识为1的题目保存到P[k]中(0<k<T)。在全部Q[i][j]的i j个元素全部取完后,整个试卷(初卷)就完全生成完毕。教师再对初卷进行复查时,要允许对个别题目进行增删以满足达标原则,全面性原则以及主要性原则的要求。这时更新试题D[i]向量的值,根据难度系数公式
  
简化为   D[i] * i

计算出其难度系数是否满足试卷的量化原则,反馈回教师以便进一步完善试卷
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,