前言:
这次真的说抽题了、上次我们了解了、要做什么才能考试、当考试、考场、学生、试卷或模板配好绑定之后、学生就能考试了、学生经过信息的认证、进入考试页面时就会进行抽题、今天我们就说下抽题的详细步骤。
抽题需要数据
抽题逻辑
查询考试详情
查询考试详情、根据学号和当前数据库时间、查询出当前考试是按照模板还是试卷抽题、查询出乱序方式、有体型乱序、题号乱序、选项乱序
如果根据试卷抽题、直接根据试卷的Code去数据库抽出对应的题即可、如果根据模板抽题、就要去查模板详情。
模板抽题
模板详情里面有整个模板的分值(抽出的试卷分值)、
题型(单选、多选……)、
难度等级(这个是因为模板中有个期望分值、比如满分100期望学生考80分、难度等级1的抽60分、难度等级2的抽20、难度等级3的抽20、满分100期望分值60、难度等级就和分的比重就会有所改变、难度等级1的40分、难度等级2的抽40、难度等级3的抽40)
每个难度等级都会对应相应的分值
题型分值
每个题型都会对应分值、如单选题40分、多选题40分、简单题20分、他和难度等级的关系是、单选题40分、难度等级1的20分、难度等级2的10分、难度等级3的10分、三个难度等级相加是40分
按试卷抽题
题库、也就是数据库、属于那张试卷的题都会标有试卷Code、按照考试详情中的试卷Code就能查出试卷的所有题。
随机和固定
模板本来就是随机的、没的说、固定和随机是说试卷、有时候英语老师给9套英语卷子、到时候考试随机抽其中一张、这时候考试详情就会给多个试卷Code、如果是随机、就从多个Code里随机抽一个、进行抽题。
第一次抽题
第一次抽题是根据课程(如语文)、题型(单选、多选、判断)、难度等级(1、2、3)、是否可用(可用)、这时候就抽出的就是科目下所有要考题型的所有题。储存格式为List<List<实体>>、每个二级的list都是一种题型、最里面的实体是各道题。
第二次抽题
这次是从第一次抽出的数据中、按照模板详情再次抽题、如抽出100分的题 、单选题30分、多选题30分、判断题20分、作文题20分、每个题型下、各个单独等级又占多少分、如果细化章节、那这些题只能从相应的章节抽出、然后根据乱序条件进行乱序。
收获
其实抽题也不难、有时候是挺绕的、我想写好代码、又写不出、老卡在那、抽题其实就是根据一些条件、从数据库取出数据、然后再次加工的一个过程。
送两张手绘图、一直没好意思发
————————————手都生锈了——————————————
——————————————chenchen————————————————