目录
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);