关于在线答题系统设计的一些想法

业务场景

  • 100道不定项选择题,不同考生的题目顺序不一样
  • 200位考生在规定时间同时开始和结束答题
  • 考试开始后可以查看题目列表,不一定要按照顺序作答,已作答的题目可以修改,最终分数以交卷时的分数为准
  • 在考场后台的办公室中可以实时刷新分数的排行榜
  • 考试环境为学校的机房,网络环境为局域网
  • 考试题目为文学类知识竞赛,考生准考证号和身份证号分别作为用户名和密码

需求分析

1、为了避免相互抄袭,不同考生的题目顺序需要不一样,这里需要打乱题目的顺序。
2、考试开始作答的时间可能不同,但是都要在统一的时间截止答题,这就要求考生的机器需要统一时间,能够在考试结束后自动提交。
3、在考试过程中要能够查看分数排行版,这里可以在考生每回答或者更新题目的时候都去刷新排行榜,或者在管理段定时刷新的时候再去计算所有考试的分数和排行榜情况。
4、考试环境为本地局域网,考试过程中有监考老师进行巡逻,并且考试群体大多不具备计算机知识,这里可以基本排除考生进行抓包后主动调用接口的场景。

设计思路

打乱题目顺序

1、使用mysql的随机排序方法,ORDER BY RAND(准考证号)
2、在用户首次登录时,可以使用php的shuffle($arr)函数将题目顺序打乱后返回,并将打乱后的数组顺序再次存储到数据库中。
##统一时间交卷
交卷时间是确定的,我们要以服务器时间为准,用户机器上的时间不可靠。用户的每次请求的返回

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值