第四篇 《随机点名答题系统》——基础设置详解(类抽奖系统、在线答题系统、线上答题系统、在线点名系统、线上点名系统、在线考试系统、线上考试系统)

        

目录

1.功能需求 

2.数据库设计

3.流程设计 

4.关键代码 

4.1.设置题库 

4.1.1数据请求示意图  

4.1.2选择题库(index.php)数据请求代码 

 4.1.3取消题库(index.php)数据请求代码 

4.1.4业务处理Service(xztk.php) 

4.1.4.1代码

4.1.4.2业务处理逻辑流程图

4.2.设置答题人员

 4.2.1数据请求示意图

4.2.2选择答题人员(index.php)数据请求代码

4.2.3取消答题人员(index.php)数据请求代码

4.2.4业务处理Service(xzfz.php)

4.2.4.1代码

4.2.4.2业务处理逻辑流程图


        随机点名答题系统(类抽奖系统、在线答题系统、线上答题系统、在线点名系统、线上点名系统、在线考试系统、线上考试系统),是基于php(8.2.11),JavaScrip,MySQL开发的轻量化点名答题系统,分为数据管理和前端两部分。主要解决了随机抽点人员和随机抽点题目结合的业务需求,有很强的实用意义。

1.功能需求 

        需求点—— 

1.对人员进行分组,按分组进行数据准备,可多分组抽取;

2.对试题进行分组,按分组进行数据准备,可多分组抽取;

         针对以上需求,系统设计了【设置题库】和【设置答题人员】、【程序初始化】3个功能模块。 

        【设置题库】选取需要作答的题库进入题库数据池,具有题库选择、取消、查询操作。

         【设置答题人员】需求需要进行作答的人员分组进入人员数据池,具有选择、取消、查询功能。

        【程序初始化】是将题库数据和人员数据进行数据加载和格式化,为后续抽点答题做准备。

2.数据库设计

        设计了基础设置1张数据表,用于存储题库数据和人员数据信息。

         表结构 :

基础设置表结构

3.流程设计 

        基础设置包括设置题库、设置答题人员、程序初始化3个模块。基本流程是:首先选择需要抽取的题库或者取消不需要抽取的题库,完成题库数据的选取,然后对答题人员进行选择和移除,设置完题库和人员后即可对程序进行初始化以加载题库数据和人员数据,完成抽点答题的数据准备。 

4.关键代码 

4.1.设置题库 

4.1.1数据请求示意图  

4.1.2选择题库(index.php)数据请求代码 

function  xztk_btn(tkmc){php_reload("xztk.php","#main_php",{tkmc:tkmc,flag:"xz"});}

 4.1.3取消题库(index.php)数据请求代码 

function  qxtk_btn(tkmc){php_reload("xztk.php","#main_php",{tkmc:tkmc,flag:"qx"});}

4.1.4业务处理Service(xztk.php) 

4.1.4.1代码
//打开数据库链接
$dbUtil = new \util\DBUtil();
$conn = $dbUtil->connect();$flag = $_POST['flag'];$rows_jcsz = $dbUtil->select($conn,"t_jcsz"," 1=1 ");
$tkmcs = array();
if (sizeof($rows_jcsz)>0){//判断是否在基础设置表里已经有数据,如果已经存在,那么进行修改操作,否则就新增一条$rows_jcsz2 = $rows_jcsz[0];if ($flag == 'xz'){//选择题库操作,数据存入基础设置表tk字段格式为:题库1|题库2|题库3$tkmc = $_POST['tkmc'];$tkmc = $tkmc.'|'.$rows_jcsz2['tk'];$data = array(\util\Config::$tk=>$tkmc);$dbUtil->update($conn,'t_jcsz',$data," id = '".$rows_jcsz2['id']."'");}if ($flag == 'qx'){//取消题库操作,从基础设置表tk字段中剔除相应题库$yctk = '';$tkmc = $_POST['tkmc'];$yctks = explode('|',$rows_jcsz2['tk']);for ($i=0;$i<sizeof($yctks)-1;$i++){if ($yctks[$i] != $tkmc){$yctk = $yctks[$i].'|'.$yctk;}}$data = array(\util\Config::$tk=>$yctk);$dbUtil->update($conn,'t_jcsz',$data," id = '".$rows_jcsz2['id']."'");}$rows_jcsz = $dbUtil->select($conn,"t_jcsz"," 1=1 ");$rows_jcsz2 = $rows_jcsz[0];if ($rows_jcsz2['tk'] != ""){$tkmcs = explode('|',$rows_jcsz2['tk']);}
}else{if ($flag == 'xz'){$tkmc = $_POST['tkmc'];$dbUtil->add($conn,"t_jcsz",array("id"=>time(),"tk"=>$tkmc,"zb"=>""));$rows_jcsz = $dbUtil->select($conn,"t_jcsz"," 1=1 ");$rows_jcsz2 = $rows_jcsz[0];$tkmcs = explode('|',$rows_jcsz2['tk']);}
}$where = " 1=1 ";if ($flag == 'cx'){//查询操作$tkmc = $_POST['tkmc'];$cjz = $_POST['cjz'];if ($tkmc != ""){$where = $where." and tk like '%".$tkmc."%' ";}if ($cjz != ""){$where = $where." and cjz like '%".$cjz."%'";}$where = $where." order by rq desc";$rows = $dbUtil->select($conn,"t_tiku",$where);
}else{$rows = $dbUtil->select($conn,"t_tiku","1=1 order by rq desc");
}//关闭数据库链接
$dbUtil->close($conn);
4.1.4.2业务处理逻辑流程图

4.2.设置答题人员

 4.2.1数据请求示意图

4.2.2选择答题人员(index.php)数据请求代码

function  xzzb_btn(id){php_reload("xzfz.php","#main_php",{zb:id,flag:"xz"});}

4.2.3取消答题人员(index.php)数据请求代码

function  qxzb_btn(id){php_reload("xzfz.php","#main_php",{zb:id,flag:"qx"});}

4.2.4业务处理Service(xzfz.php)

4.2.4.1代码
$flag = $_POST['flag'];//打开数据库链接
$dbUtil = new \util\DBUtil();
$conn = $dbUtil->connect();$rows_jcsz = $dbUtil->select($conn,"t_jcsz"," 1=1 ");
$zbs = array();
if (sizeof($rows_jcsz)>0){//判断基础设置表中是否有数据,如果有进行更新操作,否则进行插入操作$rows_jcsz2 = $rows_jcsz[0];//取得基础设置表中的数据if ($flag == 'xz'){//选择答题人员操作$zbid = $_POST['zb'];//取得form提交数据$zbid = $zbid.'|'.$rows_jcsz2['zb'];//将form提交数据拼接到基础设置表的zb字段$data = array(\util\Config::$zb=>$zbid);$dbUtil->update($conn,'t_jcsz',$data," id = '".$rows_jcsz2['id']."'");}if ($flag == 'qx'){//取消选择答题人员操作$yczb = '';$zbid = $_POST['zb'];//取得form提交数据$yczbs = explode('|',$rows_jcsz2['zb']);for ($i=0;$i<sizeof($yczbs)-1;$i++){if ($yczbs[$i] != $zbid){//将form提交数据从基础设置表zb字段剔除$yczb = $yczbs[$i].'|'.$yczb;}}$data = array(\util\Config::$zb=>$yczb);$dbUtil->update($conn,'t_jcsz',$data," id = '".$rows_jcsz2['id']."'");}$rows_jcsz = $dbUtil->select($conn,"t_jcsz"," 1=1 ");$rows_jcsz2 = $rows_jcsz[0];if ($rows_jcsz2['zb'] != ""){$zbs = explode('|',$rows_jcsz2['zb']);}
}else{if ($flag == 'xz'){$zbid = $_POST['zb'];$dbUtil->add($conn,"t_jcsz",array("id"=>time(),"tk"=>"","zb"=>$zbid));$rows_jcsz = $dbUtil->select($conn,"t_jcsz"," 1=1 ");$rows_jcsz2 = $rows_jcsz[0];$zbs = explode('|',$rows_jcsz2['zb']);}
}if ($flag == 'cx'){$zb = $_POST['zb'];$where = " 1=1 ";if ($zb != ""){$where = $where." and zb like '%".$zb."%' ";}$where = $where." order by xh asc";$rows = $dbUtil->select($conn,"t_zubie",$where);
}else{$rows = $dbUtil->select($conn,"t_zubie"," 1=1 order by xh asc");
}
//关闭数据库链接
$dbUtil->close($conn);
4.2.4.2业务处理逻辑流程图

4.3程序初始化 

4.3.1数据请求示意图

4.3.2数据请求代码

//初始化菜单$(document).on("click","#cshcx",function (){dataInit();$("#main_php").html( cjcxTips('抽点答题程序正在初始化,请耐心等待'));$.ajax({method: "post",url:"cjcx.php",data:{},success:function (res){res = JSON.parse(res);if(res["flag"]=="success_init") {setTimeout(function () {$("#main_php").html( cjcxTips('程序初始化完毕,请进行【抽点答题】'));}, 0);data_ry = res["renyuan"];//人员数据池data_tm = res["timu"];//题目数据池//初始化完毕后,为开始、停止、显示答案按钮绑定事件$("#ks").on("click",function (){startDraw();});$("#tz").on("click",function (){stopDraw();});$("#tm").on("click",function (){tmDraw();});$("#xsda").on("click",function (){displayDa();});}if (res["flag"] == "err_null"){$("#main_php").html( cjcxTips(res["data"]));}if (res["flag"] == "err_null_all"){$("#main_php").html( cjcxTips(res["data"]));}}});//php_reload("cjcx.php","#main_php",{});});

4.3.3业务处理Service(cjcx.php)

4.3.3.1代码
//打开数据库链接
$dbUtil = new \util\DBUtil();
$conn = $dbUtil->connect();$jcszs = $dbUtil->select($conn,"t_jcsz"," 1= 1");
$timus = array();
$renyuans = array();
$html = '';
//判断基础设置表中是否有数据
if (sizeof($jcszs) > 0){$jcsz = $jcszs[0];//判断基础设置表中的题库字段和组别字段是否有数据if ($jcsz['tk'] != '' and $jcsz['zb'] != ''){//将基础设置表中的题库字段和组别字段中的数据分隔成数组$tks = explode('|',$jcsz['tk']);$zbs = explode('|',$jcsz['zb']);//组装题目查询条件$where_tk =  " tk in ( ";for ($i=0;$i<sizeof($tks);$i++){$where_tk = $where_tk."'".$tks[$i]."'";if ($i<sizeof($tks)-1){$where_tk = $where_tk.",";}}$where_tk = $where_tk.")  order by th";//##################################################################################################//根据题库名称,从题目表中查询题目信息$timus = $dbUtil->select($conn,"t_timu",$where_tk);//获得所有参与抽选的题目信息$timuArr = array();for ($r=0;$r<sizeof($timus);$r++){$timu = $timus[$r];array_push($timuArr,json_encode(array("tg"=>$timu["tg"],"da"=>$timu["da"]))); //获得所有参加答题人员信息}//##################################################################################################//组装组别查询条件$where_zb =  " id in ( ";for ($j=0;$j<sizeof($zbs);$j++){$where_zb = $where_zb."'".$zbs[$j]."'";if ($j<sizeof($zbs)-1){$where_zb = $where_zb.",";}}$where_zb = $where_zb.")";//根据组别名称,从组别表中查询组别信息$fzrys = $dbUtil->select($conn,"t_zubie",$where_zb);//逐条处理组别表中的人员分组字段信息for ($k=0;$k<sizeof($fzrys);$k++){$fzry_zb = $fzrys[$k];//将人员分组字段分隔成数组$fzry = explode('|',$fzry_zb['fzry']);//组装人员查询条件$where_fzry = "  sfzh in (";for ($l=0;$l<sizeof($fzry);$l++){$where_fzry = $where_fzry."'".$fzry[$l]."'";if ($l<sizeof($fzry)-1){$where_fzry = $where_fzry.",";}}$where_fzry = $where_fzry.")  order by xh";//根据身份证号信息,从人员表中查询人员信息$rys = $dbUtil->select($conn,"t_renyuan",$where_fzry);//将所有组别查询到的人员信息,添加到数组$renyuans = array_merge($renyuans,$rys); //获得所有参加答题人员信息}$renyuan2 = array();//人员去重//获取所有人员身份证号信息,存入数组$renyuan_sfzhfor ($n=0;$n<sizeof($renyuans);$n++){$renyuans3 = $renyuans[$n];$strRen=array("sfzh"=>$renyuans3['sfzh'],"xm"=>$renyuans3['xm'],"dw"=>$renyuans3['dw'],"zw"=>$renyuans3['zw']);array_push($renyuan2,json_encode($strRen));}//################################################$jsonData=array("flag"=>"success_init","renyuan"=>$renyuan2,"timu"=>$timuArr);$html = json_encode($jsonData);}else{$tips = '';if($jcsz['tk'] == ''){$tips = $tips.'请首先完成【设置题库】,再进行程序初始化</br>';}if($jcsz['zb'] == ''){$tips = $tips.'请首先完成【设置答题人员】,再进行程序初始化';}$html = json_encode(array("flag"=>"err_null","data"=>$tips));}}else{$html = json_encode(array("flag"=>"err_null_all","data"=>'请首先进行【设置题库】和【设置答题人员】,再进行程序初始化'));
}//关闭数据库链接
$dbUtil->close($conn);
4.3.3.2业务处理逻辑流程图

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/197283.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机的发展

硬件的发展 第一台电子数字计算机&#xff1a;ENIAC&#xff08;1946&#xff09;&#xff0c;作者&#xff1a;冯诺依曼&#xff0c;逻辑元件&#xff1a;电子管 bug&#xff1a;小虫子&#xff0c;会影响打点 Intel&#xff1a; 机器字长&#xff1a;计算机一次整数运算所能…

企业计算机服务器中了mallox勒索病毒怎么解决,勒索病毒解密文件恢复

随着科技技术的不断发展&#xff0c;网络技术得到了快速提升&#xff0c;但网络安全威胁也不断增加&#xff0c;近期&#xff0c;云天数据恢复中心陆续接到很多企业的求助信息&#xff0c;企业的计算机服务器遭到了mallox勒索病毒攻击&#xff0c;导致企业的所有业务中断&#…

[nlp] 损失缩放(Loss Scaling)loss sacle

在深度学习中,由于浮点数的精度限制,当模型参数非常大时,会出现数值溢出的问题,这可能会导致模型训练不稳定。为了解决这个问题,损失缩放(Loss Scaling)技术被引入,它通过缩放损失值来解决这个问题。 在深度学习中,损失缩放技术通常是通过将梯度进行缩放来实现的。具…

鸿蒙APP外包开发上线流程

鸿蒙系统的上线流程可能会根据具体的版本和平台要求而略有不同。在进行上线之前&#xff0c;开发人员应该详细了解并遵循鸿蒙生态系统的相关规定和要求。鸿蒙&#xff08;HarmonyOS&#xff09;应用的上线流程通常包括以下步骤&#xff0c;希望对大家有所帮助。北京木奇移动技术…

【深度学习】pytorch快速得到mobilenet_v2 pth 和onnx

在linux执行这个程序&#xff1a; import torch import torch.onnx from torchvision import transforms, models from PIL import Image import os# Load MobileNetV2 model model models.mobilenet_v2(pretrainedTrue) model.eval()# Download an example image from the P…

安卓中轻量级数据存储方案分析探讨

轻量级数据存储功能通常用于保存应用的一些常用配置信息&#xff0c;并不适合需要存储大量数据和频繁改变数据的场景。应用的数据保存在文件中&#xff0c;这些文件可以持久化地存储在设备上。需要注意的是&#xff0c;应用访问的实例包含文件所有数据&#xff0c;这些数据会一…

Qt6版使用Qt5中的类遇到的问题解决方案

如果有需要请关注下面微信公众号&#xff0c;会有更多收获&#xff01; 1.QLinkedList 是 Qt 中的一个双向链表类。它提供了高效的插入和删除操作&#xff0c;尤其是在中间插入和删除元素时&#xff0c;比 QVector 更加优秀。下面是使用 QLinkedList 的一些基本方法&#xff1a…

微服务学习 | Eureka注册中心

微服务远程调用 在order-service的OrderApplication中注册RestTemplate 在查询订单信息时&#xff0c;需要同时返回订单用户的信息&#xff0c;但是由于微服务的关系&#xff0c;用户信息需要在用户的微服务中去查询&#xff0c;故需要用到上面的RestTemplate来让订单的这个微…

JVM虚拟机:通过日志学习PS+PO垃圾回收器

我们刚才设置参数的时候看到了-XXPrintGCDetails表示输出详细的GC处理日志&#xff0c;那么我们如何理解这个日志呢&#xff1f;日志是有规则的&#xff0c;我们需要按照这个规则来理解日志中的内容&#xff0c;它有两个格式&#xff0c;一个格式是GC的格式&#xff08;新生代&…

YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进【NO.79】改进损失函数为VariFocal Loss

前言 作为当前先进的深度学习目标检测算法YOLOv8&#xff0c;已经集合了大量的trick&#xff0c;但是还是有提高和改进的空间&#xff0c;针对具体应用场景下的检测难点&#xff0c;可以不同的改进方法。此后的系列文章&#xff0c;将重点对YOLOv8的如何改进进行详细的介绍&…

Egress-TLS-Origination

目录 文章目录 目录本节实战1、出口网关TLS发起2、通过 egress 网关发起双向 TLS 连接关于我最后 本节实战 实战名称&#x1f6a9; 实战&#xff1a;Egress TLS Origination-2023.11.19(failed)&#x1f6a9; 实战&#xff1a;通过 egress 网关发起双向 TLS 连接-2023.11.19(测…

CDN是什么,能起到什么作用

随着互联网的快速发展&#xff0c;用户对于快速、稳定、高效的互联网体验的需求日益增长。为了满足这一需求&#xff0c;内容分发网络&#xff08;CDN&#xff09;应运而生&#xff0c;并在近年来得到了广泛应用。CDN通过在全球范围内部署大量的服务器和网络节点&#xff0c;实…

excel怎么能锁住行 和/或 列的自增长,保证粘贴公式的时候不自增长或者只有部分自增长

例如在C4单元格中输入了公式&#xff1a; 现在如果把C4拷贝到C5&#xff0c;D3会自增长为D4&#xff1a; 现在如果想拷贝的时候不自增长&#xff0c;可以先把光标放到C4单元格&#xff0c;然后按F4键&#xff0c;行和列的前面加上了$符号&#xff0c;锁定了&#xff1a; …

QEMU显示虚拟化的几种选项

QEMU可以通过通过命令行"-vga type"选择为客户机模拟的VGA卡的类别,可选择的类型有多个: -vga typeSelect type of VGA card to emulate. Valid values for type arecirrusCirrus Logic GD5446 Video card. All Windows versions starting from Windows 95 should …

深度学习YOLO图像视频足球和人体检测 - python opencv 计算机竞赛

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络4 Yolov5算法5 数据集6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习YOLO图像视频足球和人体检测 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非…

Vatee万腾未来科技之航:Vatee创新引领的新纪元

在当今数字化时代&#xff0c;Vatee万腾科技正在开创一段引领未来的全新征程。以其卓越的创新能力和领导地位&#xff0c;Vatee万腾成为数字化领域的引领者。其未来科技之航展现了一种独特的数字化愿景&#xff0c;引领着科技创新进入新的纪元。 Vatee万腾在数字科技领域展现出…

html-网站菜单-点击显示导航栏

一、效果图 1.点击显示菜单栏&#xff0c;点击x号关闭&#xff1b; 2.点击一级菜单&#xff0c;展开显示二级&#xff0c;并且加号变为减号&#xff1b; 3.点击其他一级导航&#xff0c;自动收起展开的导航。 二、代码实现 <!DOCTYPE html> <html><head>&…

【LeetCode刷题日志】225.用队列实现栈

&#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;C/C领域新星创作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;LeetCode 刷题日志&#x1f91d;希望作者的文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正&#xff0c;…

浅谈基于云计算的环境智能监控系统

随着经济的飞速发展&#xff0c;环境污染也越来越严重&#xff0c;环境监控成为了政府与社会关注的焦点。本文提出了一种基于云计算的环境智能监控系统——EasyCVR&#xff0c;该系统综合应用了传感器、云计算、大数据、人工智能等技术&#xff0c;具有实时、准确、高效的监控能…

DIY私人图床:使用CFimagehost源码自建无需数据库支持的PHP图片托管服务

文章目录 1.前言2. CFImagehost网站搭建2.1 CFImagehost下载和安装2.2 CFImagehost网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…