基于SSM在线考试系统的核心功能之一自动组卷的实现 SpringBoot版本

本文探讨了在线考试系统中的自动组卷功能,包括手动组卷和随机组卷的概念。重点讲述了随机组卷的实现,强调了前后端传递组卷参数的过程,并提到了后台接收参数后调用业务层完成组卷的操作。有兴趣获取源码的读者可以加入指定的Q群进行交流。

基于SSM在线考试系统的核心功能之一–>自动组卷的实现

大家都知道,在考试系统中有个核心的功能 就是组卷的过程

  1. 什么是组卷呢?

组卷分成 : 手动组卷 和 随机组卷

手动组卷就是操作人选择对应的试卷,然后在选择对应的问题。把这个问题挂到卷子上面,这个过程

就叫组卷;

比如下面的图示:

在这里插入图片描述

组好卷之后,点击预览试卷

在这里插入图片描述

  1. 随机组卷(自动组卷):

    操作人 点击左侧的试卷树,然后点击右侧的随机组卷,弹出表单 填写设定的规则,最后设定好之后,点击保存,

    后台就会自动的完成组卷

在这里插入图片描述
组卷完之后,也可以点击预览试卷

这篇博客文章 主要给大家说一下 随机组卷;

3 . 随机组卷的核心

(1)前后传递对应的组卷参数

比如 前台传递:

{“paperId”:1,“xztNum”:1,“tktNum”:2,“pdtNum”:1,“jdtNum”:1}

  			 $.ajax({
                    url: "/paper/randomPapperQuestion",
                    async: false,
                    type: "POST",
                    dataType : "json",
                    data: JSON.stringify(randomPaperQuestionObj),
                    contentType:'application/json;charset=utf-8',
                    success: function (data) {
                        if (data.isSuccess) {
                            $.confirm({
                                title: '温馨提示:',
                                content: '保存成功',
                                type: 'green',
                                buttons: {omg: {text: '谢谢', btnClass: 'btn-green',}
                                }
                            });
                            window.location.href="/paper/appendQuestion"
                        }
                    }
                });

后台接收

   //随机组卷 randomPapperQuestion
    @RequestMapping("/paper/randomPapperQuestion")
    @ResponseBody
    public  AjaxResult randomPapperQuestion(@RequestBody RandomQuestionVO randomQuestionVO){
        try {
            paperService.randomPapperQuestion(randomQuestionVO);
        } catch (Exception e) {
            e.printStackTrace();
            return new AjaxResult("随机组卷失败");
        }
        return  new AjaxResult();
    }

调用业务层 完成组卷

//核心代码
//得到选择题的id集合 比如: {111,222,333,444} 
List xztIds = questionMapper.queryQuestionIdByTypeId(1L);
//随机选出对应的id号
for(int i=0;i<randomQuestionVO.getXztNum();i++) {
    Object target = xztIds.get(new Random().nextInt(xztIds.size()));
    ids.add(target);
    xztIds.remove(target);
}
//把对应的数据保存到数据库完成随机组卷的过程

4 赶快去实现一下吧,小伙伴们!!!
试卷管理系统完整实现 需要源码 进入码仔分享交流圈 Q群 六七零三零四零零三 !!!

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值