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

news2024/12/26 23:09:54

目录

1.功能需求

2.数据库设计

 3.流程设计

4.关键代码

4.1.人员分组

4.1.1数据请求示意图 

4.1.2添加组别(login.php)数据请求代码

4.1.3编辑组别(login.php)数据请求代码

4.1.4加入分组(login.php)数据请求代码

4.1.5移除分组(login.php)数据请求代码

 4.1.6删除分组(login.php)数据请求代码

 4.1.7 业务处理Service(zuBieService.php)

4.1.7.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(renYuanSevice.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_add_zb",function (){
            if ($("#zb1").val().trim() != ""  && $("#xh1").val().trim() != ""){

                if (isIntNum($("#xh1").val().trim())){
                    $.ajax({
                        method: "post",
                        url: "zuBieService.php",
                        data: {id:"",zb:$("#zb1").val(),fzry:"",xh:$("#xh1").val(),flag:"add"},
                        success: function (result) {
                            if (result == "chongfu"){
                                alert("组别重复");
                            }else if (result == "success"){
                                alert("提交成功");
                                php_reload("ryfz.php","#main_php",{flag:"add"});
                            }else {
                                alert("提交失败");
                            }

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

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


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

4.1.3编辑组别(login.php)数据请求代码

//更新分组  ######################################
        $(document).on("click","#button_update_fz",function (){
            if ($("#zb").val().trim() != ""  && $("#xh").val().trim() != ""){

                if (isIntNum($("#xh").val().trim())){
                    $.ajax({
                        method: "post",
                        url: "zuBieService.php",
                        data: {id:$("#id").val(),zb:$("#zb").val(),fzry:$("#fzry").val(),xh:$("#xh").val(),flag:"update"},
                        success: function (result) {
                            if (result == "chongfu"){
                                alert("组别重复");
                            }else if (result == "success"){
                                alert("提交成功");
                                php_reload("ryfz.php","#main_php",{flag:"add"});
                            }else {
                                alert("提交失败");
                            }

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

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


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

4.1.4加入分组(login.php)数据请求代码

function button_jrfz(sfzh,fzid){
        $.ajax({
            method:"post",
            url:"jrfz.php",
            data:{id:fzid,sfzh:sfzh,flag:"jrfz"},
            success:function (res){
                php_reload("jrfz.php","#main_php",{id:fzid,flag:""})
            }
        });
    }

4.1.5移除分组(login.php)数据请求代码

function button_ycfz(sfzh,fzid){
        $.ajax({
            method:"post",
            url:"ycfz.php",
            data:{id:fzid,sfzh:sfzh,flag:"ycfz"},
            success:function (res){
                php_reload("ycfz.php","#main_php",{id:fzid,flag:""})
            }
        });
    }

 4.1.6删除分组(login.php)数据请求代码

function zb_del(id){
        $.ajax({
            method:"post",
            url:"zuBieService.php",
            data:{id:id,zb:"",fzry:"",xh:1,flag:"del"},
            success:function (result){
                if (result == "success"){
                    alert("删除成功");
                    php_reload("ryfz.php","#main_php",{flag:"add"});
                }else {
                    alert("删除失败");
                }
            }
        });
    }

 4.1.7 业务处理Service(zuBieService.php)

4.1.7.1代码 
$id = $_POST['id'];
$zb = $_POST['zb'];
$fzry = $_POST['fzry'];
$xh = $_POST['xh'];
$flag = $_POST['flag'];

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


$fenZuBean = new \bean\FenZuBean();
$fenZuBean->setId($id);
$fenZuBean->setZb($zb);
$fenZuBean->setFzry($fzry);
$fenZuBean->setXh($xh);

$table = "t_zubie";

$data = array(\util\Config::$id=>$fenZuBean->getId(),\util\Config::$zb=>$fenZuBean->getZb(),\util\Config::$fzry=>$fenZuBean->getFzry(),\util\Config::$xh=>$fenZuBean->getXh());
//打开数据库链接
$dbUtil = new \util\DBUtil();
$conn = $dbUtil->connect();

if ($flag == 'add'){//增加人员分组
    $rows = $dbUtil->select($conn,$table," zb = '".$zb."'");
    if (sizeof($rows) > 0){//判断是否重复
        $result = "chongfu";
    }else{
        $dbUtil->add($conn,$table,$data);
        $result = "success";
    }
}elseif ($flag == 'update'){//编辑人员分组
    $rows1 = $dbUtil->select($conn,$table," id = '".$id."'");
    $rows1_zb=$rows1[0];
    $rows1_zb2=$rows1_zb["zb"];
    $rows = $dbUtil->select($conn,$table," zb = '".$zb."'");
    if (sizeof($rows) > 0 and $rows1_zb2 != $zb){//判断是否重复
        $result = "chongfu";
    }else{
        $dbUtil->update($conn,$table,$data," id = '".$id."'");
        $result = "success";
    }

}elseif ($flag == 'del'){//删除人员分组
    $dbUtil->delete($conn,$table," id = '".$id."'");
    $rows = $dbUtil->select($conn,"t_jcsz"," zb like '%".$id."%'");
    if (sizeof($rows) > 0){//判断是否在基础设置中被选择,如果被选择删除基础设置数据
        $dbUtil->delete($conn,"t_jcsz"," zb like '%".$id."%'");
    }
    $result = "success";
}elseif ($flag == 'select'){//查询
    $rows = $dbUtil->select($conn,$table," id = '".$id."'");
    $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_addry",function (){
            if ($("#sfzh1").val().trim() != "" && $("#xm1").val().trim() != ""
                &&  $("#dw1").val().trim() != "" &&  $("#zw1").val().trim() != "" && $("#xh1").val().trim() != ""){

                if (!isValidIDCard($("#sfzh1").val().trim() )){
                    alert("请输入18位身份证号码")
                    return;
                }

                if (isIntNum($("#xh1").val().trim())){
                    $.ajax({
                        method: "post",
                        url: "renYuanService.php",
                        data: {sfzh:$("#sfzh1").val(),xm:$("#xm1").val(),dw:$("#dw1").val(),zw:$("#zw1").val(),xh:$("#xh1").val(),flag:"add"},
                        success: function (result) {
                            if (result == "chongfu"){
                                alert("身份证号码重复");
                            }else if (result == "success"){
                                alert("提交成功");
                                php_reload("rywh.php","#main_php",{flag:"add"});
                            }else {
                                alert("提交失败");
                            }

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

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


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

4.2.3编辑人员信息(login.php)数据请求代码

//更新人员  ######################################
        $(document).on("click","#button_updatery",function (){
            if ($("#sfzh").val().trim() != "" && $("#xm").val().trim() != ""
                &&  $("#dw").val().trim() != "" &&  $("#zw").val().trim() != "" && $("#xh").val().trim() != ""){

                if (!isValidIDCard($("#sfzh").val().trim() )){
                    alert("请输入18位身份证号码")
                    return;
                }

                if (isIntNum($("#xh").val().trim())){
                    $.ajax({
                        method: "post",
                        url: "renYuanService.php",
                        data: {sfzh:$("#sfzh").val(),xm:$("#xm").val(),dw:$("#dw").val(),zw:$("#zw").val(),xh:$("#xh").val(),flag:"update"},
                        success: function (result) {
                            if (result == "success"){
                                alert("提交成功");
                                php_reload("rywh.php","#main_php",{flag:"add"});
                            }else {
                                alert("提交失败");
                            }

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

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


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

4.2.4删除人员(login.php)数据请求代码

function ry_del(sfzh){
        $.ajax({
            method:"post",
            url:"renYuanService.php",
            data:{sfzh:sfzh,xm:"",dw:"",zw:"",xh:1,flag:"del"},
            success:function (result){
                if (result == "success"){
                    alert("删除成功");
                    php_reload("rywh.php","#main_php",{flag:"add"});
                }else {
                    alert("删除失败");
                }
            }
        });
    }

4.2.5业务处理Service(renYuanSevice.php)

4.2.5.1代码
$sfzh = $_POST['sfzh'];
$xm = $_POST['xm'];
$dw = $_POST['dw'];
$zw = $_POST['zw'];
$xh = $_POST['xh'];

$flag = $_POST['flag'];


$renYuanBean = new \bean\RenYuanBean();
$renYuanBean->setSfzh($sfzh);
$renYuanBean->setXm($xm);
$renYuanBean->setDw($dw);
$renYuanBean->setZw($zw);
$renYuanBean->setXh($xh);

$table = "t_renyuan";

$data = array(\util\Config::$sfzh=>$renYuanBean->getSfzh(),\util\Config::$xm=>$renYuanBean->getXm(),\util\Config::$dw=>$renYuanBean->getDw(),\util\Config::$zw=>$renYuanBean->getZw(),\util\Config::$xh=>$renYuanBean->getXh());
//打开数据库链接
$dbUtil = new \util\DBUtil();
$conn = $dbUtil->connect();

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

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

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

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

相关文章

安装包管理工具-Yarn

一、介绍与安装 1.1 介绍 Yarn是一款功能包管理工具,与npm(npm:Node.js 的包管理器 npm,是目前最流行的Node.js 的包管理器。)类似。有着FAST(快速的), RELIABLE( RELIABLE 可信赖的), AND SECURE DEPENDENCY MANAGEMENT(安全依赖关系管理)的特点。 Yarn官网 1.2…

Git常用规范

分支命名规范 Git分支命名规范可以根据具体的项目和团队的需要而有所不同,但是以下是一些常见的规范: 主分支(master/main):这个分支通常是主要的稳定分支,它包含了当前生产环境的代码。在一些项目中&…

【2016年数据结构真题】

已知由n&#xff08;M>2&#xff09;个正整数构成的集合A{a<k<n},将其划分为两个不相交的子集A1 和A2&#xff0c;元素个数分别是n1和n2&#xff0c;A1和A2中的元素之和分别为S1和S2。设计一个尽可能高效的划分算法&#xff0c;满足|n1-n2|最小且|s1-s2|最大。要求…

requests 2.13.0 版本的 https 连接慢漏提示

# 解决方案 requests 2.13.0 版本的 https 连接慢漏问题 问题背景&#xff1a;在使用requests 2.13.0版本时&#xff0c;发现存在一个缓慢的泄漏问题。这个问题只在使用https连接时出现。经过调查&#xff0c;发现这个问题与pyOpenSSL的使用有关。在使用pyOpenSSL与requests 2.…

001 opencv addWeighted

目录 一、环境 二、addWeighted函数 三、代码演示 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、addWeighted函数 OpenCV中的cv.addWeighted函数是一个用于图像叠加的函数&#xff0c;它可以将两个具有相同尺寸和类型的图像按…

飞天使-django之数据库简介

文章目录 增删改查解决数据库不能存储中文问题创建表数据类型表的基本操作主键唯一键 unique外键实战 增删改查 四个常用的语句查询 : insert delete update select insert into student(Sno,name) values(95001,"张三") delete from student where name张三 upda…

分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测

分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测 目录 分类预测 | Matlab实现PSO-GRU-Attention粒子群算法优化门控循环单元融合注意力机制多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现PSO…

Java获取Jar、War包路径,并生成可编辑修改的本地配置文件

前言 本地的可修改配置文件的编写理应是一个很常用的功能&#xff0c;但由于数据库的存在&#xff0c;它鲜少被提及&#xff0c;大多数我们直接存储到数据库中了。 以至于现今&#xff0c;除了没接触数据库的新手时常使用它以外&#xff0c;它没有太多的出场机会。 也因此&am…

vue手动搭建脚手架(保姆式教案)

目录 1.创建项目 1.node.js环境搭建 2.安装vue-cli 3.搭建项目 目录结构 1.创建项目 1.node.js环境搭建 下载安装node.js&#xff08;Download | Node.js&#xff09;&#xff0c;安装时不要安装在C盘Windowsr打开cmd管理工具开始输入命令检查node.js是否安装和版本号&a…

051-第三代软件开发-日志容量时间限制

第三代软件开发-日志容量时间限制 文章目录 第三代软件开发-日志容量时间限制项目介绍日志容量时间限制 关键字&#xff1a; Qt、 Qml、 Time、 容量、 大小 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object Language…

CentOS停更在即,国内厂商该如何应对?KeyarchOS X2Keyarch 迁移体验

一、CentOS 停更危机二、关于浪潮信息KeyarchOS三、浪潮信息 KeyarchOS License 应用迁移实践第一步&#xff1a;迁移前验证第二步&#xff1a;迁移第三步&#xff1a;迁移后验证 四、写在最后 一、CentOS 停更危机 自 1993 年开始&#xff0c;红帽 Linux 已经陪伴开发者们走过…

VUE基础的一些实战总结

目录 创建一个 Vue 应用 步骤 1&#xff1a;安装 Node.js 和 npm 步骤 2&#xff1a;安装 Vue CLI 步骤 3&#xff1a;创建 Vue 项目 步骤 4&#xff1a;启动开发服务器 步骤 5&#xff1a;访问应用程序 步骤 6&#xff1a;编辑 Vue 应用 步骤 7&#xff1a;构建和部署…

论文绘图-机器学习100张模型图

在现代学术研究和技术展示中&#xff0c;高质量的图表和模型结构图是至关重要的。这尤其在机器学习领域更为显著&#xff0c;一个领域以其复杂的算法和复杂的数据结构而闻名。机器学习是一种使用统计技术使计算机系统能够从数据中学习和改进其任务执行的方法&#xff0c;而有效…

算法分析与设计考前冲刺 阅读

拜读我胡哥的精品复习资料 acmack 胡哥发表重要讲话&#xff0c;强调算法的重要性&#xff0c;我等深受触动。 Map&#xff1a;底层是红黑树&#xff0c;按照key自动进行排序 list&#xff1a; 线性链表 我一直单纯的觉得list是列表&#xff0c;这不仅说明了胡哥与我的技术…

C++标准模板(STL)- 类型支持 (属性查询,获取类型的对齐要求)

类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…

CentOS to KeyarchOS 系统迁移体验

1. KOS(KeyarchOS)——云峦操作系统简介 KeyarchOS 即云峦操作系统(简称 KOS)是浪潮信息基于 Linux 内核、龙蜥等开源技术自主研发的一款服务器操作系统&#xff0c;支持x86、ARM 等主流架构处理器&#xff0c;广泛兼容传统 CentOS 生态产品和创新技术产品&#xff0c;可为用户…

一个前端非侵入式骨架屏自动生成方案

目录 背景 现有方案调研 侵入业务式手写代码 非侵入业务式手写代码 非侵入式骨架屏代码自动生成 技术方案 设计原则 架构图 骨架屏生成 骨架屏注入 优化点 部分技术细节解析 puppeteer 文本块处理 图片块处理 a 标签处理 自定义属性处理 首屏HTML处理 首屏样…

用照片预测人的年龄【图像回归】

在图像分类任务中&#xff0c;卷积神经网络 (CNN) 是非常强大的神经网络架构。 然而&#xff0c;鲜为人知的是&#xff0c;它们同样能够执行图像回归任务。 图像分类和图像回归任务之间的基本区别在于分类任务中的目标变量&#xff08;我们试图预测的东西&#xff09;不是连续…

WireGuard 组网教程:快速构建安全高效的私密网络并实现内网穿透

文章目录 1 引言1.1 什么是WireGuard1.2 WireGuard可以用来做什么1.3 WireGuard原理1.4 WireGuard安装 2 WireGuard组网实现内网穿透2.1 前提条件2.2 网络拓扑结构2.3 具体步骤2.3.1 中继服务器配置2.3.2 其他peer2.3.3 测试 2.4 WireGuard配置文件说明 3 WireGuard工具3.1 wg-…

智慧环保:科技驱动下的环境保护新篇章

智慧环保&#xff1a;科技驱动下的环境保护新篇章 环境保护已经成为当今社会的重要议题&#xff0c;而科技的飞速发展为我们开启了智慧环保的新篇章。在这篇文章中&#xff0c;我们将介绍智慧环保所带来的机会和创新&#xff0c;以及科技在环境保护中的重要作用。 智慧环保的理…