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

目录

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业务处理逻辑流程图

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis最新2023年面试题高级面试题及附答案解析(1)【Redis最新2023年面试题高级面试题及附答案解析-第三十八刊】

文章目录 Redis最新2023年面试题高级面试题及附答案解析(1)01、为什么 Redis 需要把所有数据放到内存中?02、查看 Redis 使用情况及状态信息用什么命令?03、MySQL里有2000w数据,Redis 中只存20w的数据,如何保证 Redis 中的数据都是…

Spring Boot MyBatis Plus 配置数据源详解

文章目录 1. 引入 MyBatis Plus 依赖2. 数据源配置3. MyBatis Plus 配置4. 动态数据源配置(多数据源)5. 小结 🎉欢迎来到架构设计专栏~Spring Boot MyBatis Plus 配置数据源详解 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页&…

Linux电脑投屏到电视的简洁操作

Linux电脑投屏到安卓电视有多种好处。 首先,通过将Linux电脑与安卓电视连接,用户可以轻松地将电脑屏传输到电视上,从而获得更加舒适和清晰的视觉体验。 其次,投屏功能可以帮助用户在电视上展示电脑中的图片、视频和其他多媒体文件…

GitHub Universe 2023:AI 技术引领软件开发创新浪潮

GitHub 是全球领先的软件开发和协作平台,数百万开发者和企业在此分享、学习和创建卓越的软件。同时 GitHub 处在 AI 技术前沿,通过其先进的 AI 技术增强开发者体验并赋能未来软件开发的使命。在今天的文章中,我们将一起看看在 GitHub 年度大会…

InputStream和OutputStream

文章目录 💡FileInputStream 构造方法💡InputStream 常用方法💡OutputStream 概述💡OutputStream 常用方法💡PrintWriter💡小程序练习 使用字节流进行读/写操作时,是以字节为单位的;…

常用网络命令(实习报告)

南京信息工程大学 实验(实习)报告 实验(实习)名称 常用网络命令 实验(实习)日期 2017/5/25 得分 指导教师 *** 专业 网络工程 年级 2015 班次 1 姓名 *** …

java排序算法之桶排序

图解 桶排序(Bucket sort)是一个排序算法,它的主要思想是将需要排序的数据分到有限数量的桶里。每个桶里的数据再进行单独的排序,最后按照顺序将每个桶里的数据依次取出,即可完成排序。 桶排序的具体实现可以分为以下几…

【2021集创赛】 RISC-V杯三等奖:基于E203 处理器的SM4算法硬件加速

杯赛题目:基于蜂鸟E203 RISC-V处理器内核的SoC设计 参赛要求:研究生组/本科生组 赛题内容: 基于芯来科技的开源蜂鸟E203 Demo SoC进行扩展,在限定的可编程逻辑平台上构建面向专用应用领域(譬如人工智能、信息安全、工业…

动手学深度学习——语言模型和数据集(代码详解)

文章目录 语言模型与数据集1. 学习语言模型2. 马尔可夫模型与n元语法3. 自然语言统计4. 读取长序列数据4.1 随机采样4.2 顺序分区 语言模型与数据集 了解到如何将文本数据映射到词元,以及将这些词元视作一系列的离散观测,例如单词或字符。 给定一个文本…

《洛谷深入浅出进阶篇》P3397 地毯————二维差分

上链接:P3397 地毯 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P3397 上题干: 题目描述 在 nn 的格子上有 m 个地毯。 给出这些地毯的信息,问每个点被多少个地毯覆盖。 输入格式 第一行,两个…

配置sonarQube

1.新版本需要安装JDK11以上版本 2.修改解压(解压在一个路径不包含特殊符号、中文、空格的位置里)出来的sonar文件夹中conf下面的配置文件(sonar.properties) sonar.jdbc.usernameXXX sonar.jdbc.passwordXXXsonar.jdbc.urljdbc:sqlserver://172.168.1.…

小学生写作业用什么台灯好?专业的学生台灯推荐

说到台灯相信大家都不陌生,不管是办公族还是学生基本都会备上一台。而且现在的孩子很多都是存在视力问题的,主要的原因就是学习压力太大了,用眼时间过长导致的。所以很多家长选择给孩子使用更为专业的护眼台灯。 不过目前市面上的灯具也是良莠…

Qt Jom Parallel Builds 并行构造

1.Qt官网下载 Jom - Qt Wiki 下载jom源码 git clone git://code.qt.io/qt-labs/jom.git 2.生成makefile qmake -r 进入jom源码目录 执行qmake -r 3.编译 nmake jom编译成功 4.复制到qmake所在目录并运行

基于JAVA SpringBoot和HTML美食网站博客程序设计

摘要 美食网站是一个提供各种美食信息和食谱的网站,旨在帮助用户发现、学习和分享美食。旨在探讨美食网站在现代社会中的重要性和影响。随着互联网的普及,越来越多的人开始使用美食网站来获取各种美食信息和食谱。这些网站不仅提供了方便快捷的搜索功能&…

SAP删除自建、系统表数据的方法

1、输入前台事务码 SE16N 进入 常规表显示 2、输入自建表名称后,回车展示字段 在事务栏中输入 /H 启用编辑 敲击回车 (消息显示调试被激活) 然后点击执行 3、在右下角栏目中输入 GD-SAPEDIT 和 GD-EDIT 点击 小笔 启用编辑,将两…

哔哩哔哩自动引流软件的运行分享,以及涉及到技术与核心代码分享

先来看实操成果,↑↑需要的同学可看我名字↖↖↖↖↖,或评论888无偿分享 大家好,我是一名专注于自动引流软件研发的技术专家。今天,我将与大家分享自动引流软件涉及到的技术与核心代码,希望能为大家提供一些有价值的参…

【每日一题】2656. k个元素的最大和-2023.11.15

题目: 2656. K 个元素的最大和 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你需要执行以下操作 恰好 k 次,最大化你的得分: 从 nums 中选择一个元素 m 。将选中的元素 m 从数组中删除。将新元素 m 1 添加到数组中。你的得分增…

冰点还原精灵Deep Freeze for mac:Mac用户的最佳系统保护选择

你是否曾在Mac上安装软件后,发现系统性能下降,或者某些应用程序无法正常运行?这些问题可能让你感到困扰,但幸运的是,有一个解决方案可以帮你解决这些问题——Faronics Deep Freeze for mac。 Deep Freeze for mac是一…

3.1 Linux 前置知识

1、硬件 我们知道,组成计算机的硬件主要有“主机”和“输入/输出设备”。 主机包括机箱、电源、主板、CPU(Central Processing Unit,中央处理器)、内存、显卡、声卡、网卡、 硬盘、光驱等。输入/输出设备包括显示器、键盘、鼠标…

dubbo服务超时导致的异常

今天服务器启动项目时,页面刷新报错: 查看日志时报错信息为: 解决: 在对应服务的配置文件中配置dubbo超时时间: 随后问题得到解决,特此记录