考试系统随机出题处理逻辑

 /*
     * 随机处理逻辑
     * */
    private function _Rand($type, $num){
        if (intval($num) <= 0){ return false;}
        $problemArr = ProblemModel::getBaseArr([‘state‘ => 1, ‘type‘ => $type], [‘id‘], [], [‘order‘ => SORT_DESC]);
        $problemArr = array_column($problemArr, ‘id‘);

        $PaperArr = PaperProblemModel::getBaseArr([‘type‘ => $type], [‘problem_id‘]);
        $PaperArr = array_column($PaperArr, ‘problem_id‘);

        $d_count = count($problemArr);
        if ($d_count < $num) { $this->_error(‘数据表选题数量不够‘, []);}

        $Arr = array_diff($problemArr, $PaperArr);
        $count = count($Arr);
        if ($count < $num){
            $return = array_rand($problemArr, $num);
        } else {
            $problemArr = array_unique($Arr);
            $return = array_rand($problemArr, $num);
        }
        $res = [];
        foreach ($return  as $k => $v){
            $res[$k] = $problemArr[$return[$k]];
        }
        return $res;
    }

原文地址:https://www.cnblogs.com/ghjbk/p/10003293.html

时间: 2024-10-20 02:09:06

考试系统随机出题处理逻辑的相关文章

Java实验项目二——小学生考试系统(简单四则运算)

Program:设计实现一个小学生数学考试系统,完成随机出题(简单的四则运算),学生答题,自动判分的功能. Description:代码如下: 1 /* 2 * Description:面向考试系统建立类TestSystem 3 * 4 * */ 5 6 package entity; 7 8 public class TestSystem { 9 10 private int num1; //声明两个操作数 11 private int num2; 12 private String oper

java web项目优化记录:优化考试系统

考试系统在进行压力测试时发现,并发量高之后出现了按钮无反应,试题答案不能写到数据库的问题,于是针对这些核心问题,进行了优化. 数据库方面: Select语句:Select * from TEB_VB_XZTRecord改为select 必须的列 form TEB_VB_XZTRecord,之前看的教学视频里就讲过最好别用*,由于查询了不必要的列,所以导致了低效率. insert优化:考试业务的原因,需要把查询出来的试题,一条条的插入到数据库中.优化前:循环+每次插入一条的insert语句.优化后

在线考试系统(Online Exam System)--ASP.NET

用户设计 -|学生 -|老师 -|管理员 学生结构设计 -|个人信息管理 -|修改个人信息 -|修改登录密码 -|选课中心 -|显示所有老师所开课的信息可进行选课 -|显示自己已选课程 -|在线考试 -|对已选老师开设的课程选择进行考试 -|成绩查询 -|查看自己考试成绩   老师结构设计 -|个人信息管理 -|修改个人信息 -|修改登录密码 -|课程管理 -|显示学校开设的课程(老师可选择添加课程) -|显示老师开设的课程 -|考试管理 -|显示老师自己开设的课程 -|对课程添加试题(选择.填

小学数学计算题随机出题软件

做这个软件的时候 ,我应该从用户的角度考虑问题,而不是简单实现了老师交代的功能. 于是我把功能的选择变成了年级的选择 , 选择哪一个年级的,然后填写出题的数量,按下出题按钮,然后在下面的文本框中就会出现对应年级的难度的题目,这样简化的用户的选择. 开始的时候我将数字生成单独写在一个类里边的,但是后来做界面的时候,本想调用实例化对象,但是出现了线程的问题,尝试了解决方法但是没有奏效 于是我又将生成数字的方法直接写在一个类里边直接就是利用这一个形成了出题的界面和处理. 当然本软件是为小学生准备的 于

数据结构技能考试系统

通过一个月的努力,终于把数据结构技能考试系统用C++的语言实现(其中有C语言的穿插),系统的最大优点是可以检测学生答题时是否插入了U盘,打开了word及记事本等辅助工具.此系统分为两部分,一部分是学生端,一部分是教师端. 学生端主要是学生输入学号及姓名(对此进行检测),根据学号的后四位对应的ASCII码模8求值,达到抽题的效果(也可适当改进改为IP读题),在题库中抽取两道题,随机答一道题即可,在完成作答后选择所作的试题,避免了选题后不会做的情况.抽题时显示倒计时,时间为60分钟,如若超时,允许的

[JAVA考试系统]项目总结

 ITOO项目共分为两个方向:JAVA..NET. 而考试系统又是JAVA方向中,业务逻辑最为复杂的一个. 在被'考试系统'坑了'100天'以后,我仍然期盼能得到一个相对完美的结局. 项目开发周期: 11.10-01.27:参与ITOO1.0考试系统开发 01.28-02.16:担任ITOO2.0考试系统组长 第一次迭代 主要以:需求确定.原型设计.实体设计,为主.项目的开发只是涉及到单表的CRUD. (一)需求和原型的设计   立足于去年.NET的考试系统.这样的做法有利有弊: 1.利  

小项目 在线考试系统

mysql+ myeclipse 开发的在线考试系统 无登陆注册,去模拟实现计算机网络考试系统 http://jkx.cxtc.edu.cn/ks/ 浏览即可开始答题 提交后即可以看到答案. 现在的项目没有记分过程,没有将用户的答题记录回显. 框架  仅运用了Hibernate框架对数据库操作的简便. 随机取n条信息语句方面 List<Parper> list= session.createQuery("from Parper order by rand()").setFi

PHPEMS在线模拟考试系统源码

本系统主要用于构建在线考试系统,如驾照.英语等练习系统. 一.系统功能:1.强化训练测验,对知识点进行单独联系2.随机组卷练习,系统自动抽取题目进行练习3.手工组卷联系,通过教师平台手工组卷形成考卷进行模拟练习4.支持主客观题型并存,主观题评分可以设置为学生自评和教师后台评分5.支持题冒题(如英语阅读理解,一个题干下属多道小题的类型)随机抽取6.支持考场功能,可以对单个用户开通单独考场7.支持题目收藏.错题重做.考试记录等功能 二.系统运行环境php(5.2,5.3)+mysql5.0 三.安装

在线考试系统视频教程和源码

购买视频教程QQ:1416759661  淘宝网担保交易 安全便捷 视频教程是高清完整版 放心购买 安心学习 旺旺: QQ: 点击购买 夜鹰教程的忠实粉丝们,经过几周的努力,夜鹰教程网在线考试系统视频教程终于录制完毕了,本套教程重点讲解了在线考试系统的数据库设计和程序开发,主要实现的功能包括的试题的新增和维护,题库的管理,考试主体信息的管理和维护,用户的管理和维护,体型全面覆盖了单选题.多选题.判断题.填空题.主观题(例如:作文),,考试的同时还有倒计时功能.此考试系统实现了主观题人工阅卷,非主