Java考试系统题目和选项乱序实现

学习笔记——日常实现思路

 要求:实现每个考生对于一套试卷进行乱序显示。

        前提:由于所有考生的试卷是一套,且只有一份数据,并不是每个考生都生成了一份试卷。要想保证每个考生进入考试都看到不一样的顺序,以及要保留考生每次进去之后要与初次进入的乱序结果要一致。

       思路:要乱序还要保留原始数据,则需缓存数据,缓存有两个方案:
            1、考虑Redis进行缓存每个考生考试的试题和选项乱序顺序数据。
            2、在考生开始考试后存储当前考生所有提交的试题答案数据,一道题一条数据(带有默认空答案)。此时存储当前试题的顺序,和选项顺序Id排列。


       步骤:    
  
         1、考试提交答案数据关联着试卷Id、试题Id,需增加试题当前的顺序,试题对应的选项Id集合。
            2、每次考生点击开始考试后,存储乱序后的试题和选项。
            3、获取试卷试题数据时,根据答案数据反向去获取试题和选项数据进行组装。

考生进入后乱序试题生成实现代码块:

//原始数据试题Id集合
List<Integer> questionIdList = new ArrayList<Integer>();

//将试题Id乱序
Collections.shuffle(questionIdList);

//存放乱序后试题排序,key:试题Id,value:试题排
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值