第二篇 《随机点名答题系统》——题库管理详解(类抽奖系统、在线答题系统、线上答题系统、在线点名系统、线上点名系统、在线考试系统、线上考试系统)

news2024/9/21 7:59:29

目录

1.功能需求

2.数据库设计

3.流程设计

4.关键代码

4.1.题库维护

4.1.1数据请求示意图 

4.1.2添加题库(login.php)数据请求代码

4.1.3删除题库(login.php)数据请求代码

4.1.4 业务处理Service(tiKuService.php)

4.1.4.1代码

4.1.4.2业务处理逻辑流程图

4.2试题维护

4.2.1数据请求示意图

4.2.2添加试题(login.php)数据请求代码

4.2.3编辑试题(login.php)数据请求代码

4.2.4删除试题(login.php)数据请求代码

4.2.5业务处理Service(shiTiService.php)

4.2.5.1代码

4.2.5.2业务处理逻辑流程图


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

1.功能需求

         需求点——

对试题进行分组,按分组进行数据准备;

         针对以上需求,采取了试题和题库的模式,以题库为基本数据容器,在构建题库之后向题库内加入试题。因此,系统设计了【题库维护】和【试题维护】2个功能模块。

        【题库维护】作为试题的数据容器出现,是对试题的分组和归类,具有增加题库、删除题库和查询题库功能。

        【试题维护】以题库为基本容器,在创建题库的基础上,向题库内添加试题、编辑试题、删除试题,并具题库内试题查询功能。

2.数据库设计

        设计了题库维护和题目维护2张数据表,题库维护数据表用于存储题库信息,题目维护数据表用于存储试题信息。

        表结构:

题库表结构

题目表结构

3.流程设计

        题库管理模块,包括题库维护和试题维护2个模块。基本流程是:首先完成【题库维护】,包括题库的增加和删除操作,然后在【试题维护】中选择已经存在的题库,向题库中添加试题,添加后的试题可以进行编辑和删除操作。

4.关键代码

4.1.题库维护

4.1.1数据请求示意图 

4.1.2添加题库(login.php)数据请求代码

//添加题库
        $(document).on("click","#button_addtk",function (){
            if ($("#tkmc").val().trim() != ""){
                $.ajax({
                    method: "post",
                    url: "tiKuService.php",
                    data: { tkmc: $("#tkmc").val(),cjz:$("#cjz").val(),bz:$("#bz").val(),flag:"add"},
                    success: function (result) {
                        if (result == "success"){
                            alert("提交成功");
                            php_reload("tkwh.php","#main_php",{flag:""});
                        }else {
                            alert("题库名称已经存在");
                        }

                    },
                    error: function(err) {
                        alert("提交失败");
                    }
                });
            }else{
                alert("题库名称不得为空");
            }
        });
        //##题库管理,添加题库##结束

4.1.3删除题库(login.php)数据请求代码

//## 题库管理,删除题库 ##  开  始
    //###################################################
    function addtk_del(tkmc){
        $.ajax({
            method: "post",
            url: "tiKuService.php",
            data: { tkmc: tkmc,cjz:"",bz:"",flag:"del"},
            success: function (result) {
                if (result == "success"){
                    alert("删除成功");
                    php_reload("tkwh.php","#main_php",{flag:""});
                }else {
                    alert("删除失败");
                }

            },
            error: function(err) {
                alert("删除失败");
            }
        });
    }
    //## 题库管理,删除题库 ##  结束

4.1.4 业务处理Service(tiKuService.php)

4.1.4.1代码
$tkmc = $_POST['tkmc'];
$cjz = $_POST['cjz'];
$bz = $_POST['bz'];

$flag = $_POST['flag'];

$tiKuBean = new \bean\TiKuBean();  //题库数据结构
$tiKuBean->setTk($tkmc);
$tiKuBean->setCjz($cjz);
$tiKuBean->setBz($bz);
$tiKuBean->setRq(date('Y-m-d'));

$data = array(\util\Config::$tk=>$tiKuBean->getTk(),\util\Config::$rq=>$tiKuBean->getRq(),\util\Config::$cjz=>$tiKuBean->getCjz(),\util\Config::$bz=>$tiKuBean->getBz());
//打开数据库链接
$dbUtil = new \util\DBUtil();
$conn = $dbUtil->connect();

if ($flag == 'add'){  //添加题库
    $rows = $dbUtil->select($conn,"t_tiku"," tk = '".$tkmc."'"); 
    //判断是否已经存在题库(查重处理)
    if (sizeof($rows) > 0){ 
        $result = sizeof($rows); //存在重复,返回
    }else{
        $dbUtil->add($conn,"t_tiku",$data);  //不存在重复,向数据库添加题库信息
        $result = "success";  
    }
}elseif ($flag == 'update'){
    $dbUtil->update($conn,"t_tiku",$data," tk = '".$tkmc."'");
    $result = "success";
}elseif ($flag == 'del'){  //题库删除
    $dbUtil->delete($conn,"t_tiku"," tk = '".$tkmc."'");  //删除题库信息
    $dbUtil->delete($conn,"t_timu"," tk = '".$tkmc."'");  //删除题库中包含的题目信息
    $rows = $dbUtil->select($conn,"t_jcsz"," tk like '%".$tkmc."%'"); 
    //判断是否在基础设置表中选择了该题库
    if (sizeof($rows) > 0){
        //删除已选择的数据
        $dbUtil->delete($conn,"t_jcsz"," tk like '%".$tkmc."%'");
    }
    $result = "success";
}elseif ($flag == 'select'){//题库查询
    $rows = $dbUtil->select($conn,"t_tiku"," tk = '".$tkmc."'");
    $result = json_encode($rows[0]);
}

//关闭数据库链接
$dbUtil->close($conn);
4.1.4.2业务处理逻辑流程图

4.2试题维护

4.2.1数据请求示意图

4.2.2添加试题(login.php)数据请求代码

//添加试题  ######################################
        $(document).on("click","#button_tjst",function (){
            if ($("#th").val().trim() != "" && $("#tg").val().trim() != ""
                &&  $("#da").val().trim() != ""){

                if (isIntNum($("#th").val().trim())){
                    $.ajax({
                        method: "post",
                        url: "shiTiService.php",
                        data: {id:"",tk:$("#tk").val(),th:$("#th").val(),tg:$("#tg").val(),da:$("#da").val(),bz:$("#bz").val(),flag:"add"},
                        success: function (result) {
                            if (result == "success"){
                                alert("提交成功");
                                php_reload("stwh.php","#main_php",{flag:"1"});
                            }else {
                                alert("提交失败");
                            }

                        },
                        error: function(err) {
                            alert("提交失败");
                        }
                    });

                }else {
                    alert("题号必须为正整数");
                }

            }else{
                alert("所有内容不得为空");
            }
        });

4.2.3编辑试题(login.php)数据请求代码

//更新试题
        $(document).on("click","#button_updatest",function (){
            if ($("#th").val().trim() != "" && $("#tg").val().trim() != ""
                &&  $("#da").val().trim() != ""){

                if (isIntNum($("#th").val().trim())){
                    $.ajax({
                        method: "post",
                        url: "shiTiService.php",
                        data: {id:$("#id").val(),tk:$("#tk").val(),th:$("#th").val(),tg:$("#tg").val(),da:$("#da").val(),bz:$("#bz").val(),flag:"update"},
                        success: function (result) {
                            if (result == "success"){
                                alert("提交成功");
                                php_reload("stbj.php","#main_php",{tkmc: $("#tk").val(), flag: "edit"});
                            }else {
                                alert("提交失败");
                            }

                        },
                        error: function(err) {
                            alert("提交失败");
                        }
                    });

                }else {
                    alert("题号必须为正整数");
                }

            }else{
                alert("所有内容不得为空");
            }
        });

4.2.4删除试题(login.php)数据请求代码

function stwh_del(id,tkmc){
        $.ajax({
            method:"post",
            url:"shiTiService.php",
            data:{id:id,tk:tkmc,th:1,tg:"",da:"",bz:"",flag:"del"},
            success:function (result){
                if (result == "success"){
                    alert("删除成功");
                    php_reload("stbj.php","#main_php",{tkmc:tkmc,flag:"edit"});
                }else {
                    alert("删除失败");
                }
            }
        });
    }

4.2.5业务处理Service(shiTiService.php)

4.2.5.1代码
$id = $_POST['id'];
$tkmc = $_POST['tk'];
$th = $_POST['th'];
$tg = $_POST['tg'];
$da = $_POST['da'];
$bz = $_POST['bz'];
$flag = $_POST['flag'];

if ($flag == 'add'){
    $id = time();
}

$tiMuBean = new \bean\TiMuBean();
$tiMuBean->setId($id);
$tiMuBean->setRq(date('Y-m-d'));
$tiMuBean->setTk($tkmc);
$tiMuBean->setTh($th);
$tiMuBean->setTg($tg);
$tiMuBean->setDa($da);
$tiMuBean->setBz($bz);

$table = "t_timu";

$data = array(\util\Config::$id=>$tiMuBean->getId(),\util\Config::$rq=>$tiMuBean->getRq(),\util\Config::$tk=>$tiMuBean->getTk(),\util\Config::$th=>$tiMuBean->getTh(),\util\Config::$tg=>$tiMuBean->getTg(),\util\Config::$da=>$tiMuBean->getDa(),\util\Config::$bz=>$tiMuBean->getBz());
//打开数据库链接
$dbUtil = new \util\DBUtil();
$conn = $dbUtil->connect();

if ($flag == 'add'){
    $dbUtil->add($conn,$table,$data);
    $result = "success";
}elseif ($flag == 'update'){
    $dbUtil->update($conn,$table,$data," id = '".$id."'");
    $result = "success";
}elseif ($flag == 'del'){
    $dbUtil->delete($conn,$table," id = '".$id."'");
    $result = "success";
}elseif ($flag == 'select'){
    $rows = $dbUtil->select($conn,$table," id = '".$id."'");
    $result = json_encode($rows[0]);
}

//关闭数据库链接
$dbUtil->close($conn);
4.2.5.2业务处理逻辑流程图

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python数据容器(字典)

字典 1.字典的定义2.字典数据的获取3.字典的嵌套4.嵌套字典的内容获取5.字典的常用操作6.常用操作总结7.遍历字典8.练习 1.字典的定义 同样使用{},不过存储的元素是一个一个的:键值对,语法如下 # 定义字典字面量 {key:value,key:value,...,…

小学生加减乘除闯关运算练习流量主微信小程序开发

小学生加减乘除闯关运算练习流量主微信小程序开发 经过本次更新,我们增加了新的功能和特性,以提升用户体验和运算练习的趣味性: 能量石与激励视频:用户可以通过观看激励视频来获取能量石,这些能量石可以用于解锁收费…

去掉 webstorm 白线

webstorm 编辑界面出现一条白线 ctrlshifta 打开设置窗口, 输入 “显示右边距” 英文版输入 “show right margin” 点击关闭即可

网络超时检测-11.9

应用场景 在网络通信中,很多操作会使得进程阻塞: TCP套接字中的recv/acceptUDP套接字中的recvfrom超时检测的必要性 避免进程在没有数据时无限制地阻塞实现某些特定协议要求,比如某些设备规定,发送请求数据后,如果多长…

nginx启动命令

普通启动 切换到nginx安装目录的sbin目录下,执行:./nginx 通过配置文件启动 ./nginx -c /usr/local/nginx/conf/nginx.conf /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 其中-c是指定配置文件,而且配置文件路径必须指定绝对路…

yolo如何画框、如何变换目标检测框的颜色和粗细、如何运行detect脚本

这段代码是一个使用YOLO模型进行目标检测的Python脚本。下面我将逐步解释脚本的主要部分,并提供一些关于超参数的使用方法。 1. 脚本结构 导入相关库设置配置参数加载YOLO模型运行目标检测处理检测结果显示或保存结果 2. 超参数说明 --weights: 指定YOLO模型的…

屏蔽机房与普通机房有什么不同?

屏蔽机房与普通机房在设计和功能上存在一些明显的区别。下面是一些区别的主要方面: 电磁屏蔽:屏蔽机房采用了电磁屏蔽材料来减少电磁波的干扰。屏蔽机房能够有效地将外部的电磁干扰隔离开来,确保机房内设备的安全运行。 物理安全:…

halcon里面显示红色三角或者黄色三角+感叹号的算子代表什么含义

有时候,在Halcon里面使用某些算子的时候,左侧有红色或者黄色三角感叹号的提示。 如下图: 可以把鼠标放到红色感叹号上面,发现提示: 有这些标志的算子代表是Halcon中不推荐使用,可以淘汰的算子,…

Bobo Python 学习笔记

安装 Bobo 可以通过通常的方式安装,包括使用setup.py install 命令。当然,您可以使用Easy Install、Buildout或pip。 安装bobo Collecting boboDownloading bobo-2.4.0.tar.gz (17 kB) Collecting WebObDownloading WebOb-1.8.7-py2.py3-none-any.whl…

Stable Diffusion (version x.x) 文生图模型实践指南

前言:本篇博客记录使用Stable Diffusion模型进行推断时借鉴的相关资料和操作流程。 相关博客: 超详细!DALL E 文生图模型实践指南 DALLE 2 文生图模型实践指南 目录 1. 环境搭建和预训练模型准备环境搭建预训练模型下载 2. 代码 1. 环境搭建…

python基础练习题库实验八

文章目录 前言题目1代码 题目2代码 题目3代码 总结 前言 🎈关于python小题库的这模块我已经两年半左右没有更新了,主要是在实习跟考研,目前已经上岸武汉某211计算机,目前重新学习这门课程,也做了一些新的题目 &#x…

部署LCM(Latent Consistency Models)实现快速出图

LCM(Latent Consistency Models)可以通过很少的迭代次数就可以生成高清晰度的图片,目前只可以使用一个模型Dreamshaper_v7,基于SD版本Dreamshaper微调而来的。 LCM模型下载: https://huggingface.co/SimianLuo/LCM_D…

使用flutter的Scaffold脚手架开发一个最简单的带tabbar的app模板

flutter自带的scaffold脚手架可以说还是挺好用的,集成了appBar,还有左侧抽屉,还有底部tabbar,可以说拿来就可以用了啊,所以我今天也体验了一下,做了一个最简单的demo,就当是学习记录了。 效果展…

后端接口错误总结

今天后端错误总结: 1.ConditionalOnExpression(“${spring.kafka.exclusive-group.enable:false}”) 这个标签负责加载Bean,因此这个位置必须打开,如果这个标签不打开就会报错 问题解决:这里的配置在application.yml文件中 kaf…

Spring Framework 简介与起源

Spring是用于企业Java应用程序开发的最流行的应用程序开发框架。全球数百万开发人员使用Spring Framework创建高性能、易于测试和可重用的代码。 Spring Framework是一个开源的Java平台。它最初由Rod Johnson编写,并于2003年6月在Apache 2.0许可下首次发布。 Spri…

laravel日期字段carbon 输出格式转换

/*** The attributes that should be cast.** var array*/ protected $casts [created_at > datetime:Y-m-d, ]; 滑动验证页面https://segmentfault.com/q/1010000043327049

PyQt中QFrame窗口中的组件不显示的原因

文章目录 问题代码(例)原因和解决方法 问题代码(例) from PyQt5.QtWidgets import * from PyQt5.QtGui import QFont, QIcon, QCursor, QPixmap import sysclass FrameToplevel(QFrame):def __init__(self, parentNone):super().…

Newman

近期在复习Postman的基础知识,在小破站上跟着百里老师系统复习了一遍,也做了一些笔记,希望可以给大家一点点启发。 一)如何安装Newman 1、下载并安装NodeJs 在官网下载NodeJs: Download | Node.js(官网的…

首周聚焦百度智能云千帆大模型平台使用,《大模型应用实践》实训营11月16日开讲!

百度智能云千帆大模型平台官方出品的《大模型应用实践》实训营本周正式上线!这是百度智能云推出的首个系列课程,课程内容满满干货! 11月16日本周四即将开课,首周由百度智能云千帆大模型平台产品经理以及百度智能云千帆资深用户知…

DM8数据守护集群安装部署_手动切换

一.安装前准备 1.1 硬件环境建议 数据守护集群安装部署前需要额外注意网络环境和磁盘 IO 配置情况,其他环境配置项建议请参考安装前准备工作。 1.1.1 网络环境 心跳网络对 mal 通讯系统的影响非常大,如果网络丢包或者延迟较大,则会严重影…