一、系统特点

1.该宿舍管理系统共有三大参与者:学生、宿管人员、管理员

2.系统亮点

(1)可以使用PHPExecl批量读取execl表格进行添加学生信息等。

(2)引入Echarts图形来展示住宿学生等信息。

二、总体设计

1.学生部分

2.宿管人员部分

3.管理员部分

三、数据库分析

1.实体与属性

(1)学生,属性有学生学号和学生密码。

(2)学生信息,属性有学生学号、学生姓名、性别、专业班级、手机号码、辅导员、宿舍区域(宿舍楼)、宿舍号、入住时间、家庭住址、奖罚分、晚归时间和签到日期。

(3)寝室,属性有寝室id、宿舍号、宿舍楼、宿舍费用、实住人数和应住人数。

(4)违纪,属性有违纪id、违纪宿舍楼、违纪宿舍号、违纪内容、违纪时间和惩罚。

(5)维修,属性有报修id、维修费、损坏照片、维修内容、联系电话、宿舍长、宿舍号和宿舍楼。

(6).宿管,属性有宿管id、宿管姓名、联系电话、管理楼和登录密码。

(7)来访人员,属性有来访id、来访人员姓名、来访人员身份证号、来访目的、来访时间和离开时间。

(8)管理员,属性有管理员号、姓名和登录密码。

2.实体间的关系

(1)一个学生只能拥有一条自己的相关信息,而一条信息也只能对应一个学生。

(2)一个学生只能居住在一个寝室中,而一个寝室可以住多个学生。

(3)一个寝室可以违纪多次,而一种违纪也可以多个寝室都违反。

(4)一个寝室可以有多个来访人员,而一个来访人员也可以到多个寝室探访。

(5)一个寝室只能同时申请一次维修,而维修信息可以接受多寝室的。

(6)一个宿管可以处理多个维修信息,而一个维修信息也可以由多个宿管处理。

(7)一个来访人员信息可以由多个宿管处理,而一个宿管人员也可以处理多个来访人员信息。

(8)一个管理员可以管理多个学生与宿管,同时一个学生或宿管也可以被多个学生和宿管管理。

3.E-R图

四、实现效果

 1.登录界面

使用简单的vue实现切换不同的登录窗口,实现代码如下:

<div class="login_header"><span @click="cur=0" :class="{active:cur==0}" style="margin-left: 20px;">学生登录</span><span @click="cur=1" :class="{active:cur==1}">宿管登录</span><span @click="cur=2" :class="{active:cur==2}">管理员登录</span>
</div>

2.学生界面

(1)简介

(2)规章制度(略)

(3)个人信息

a.填写学生信息,若学生是新注册用户,则可填写个人信息。也可是填写完后再次更改提交,实现效果图如下。

部分实现代码:

<div class="aoligei"><div class="pc-kk-form"><form action="../process/stu_info_pro.php" method="post"><div class="pc-kk-form-list"><input type="text" value="<?php echo $username; ?>" name="stu_no" readonly></div><div class="pc-kk-form-list"><input type="text" placeholder="姓名" name="stu_name" value="<?php echo $row['stu_name']; ?>"></div><div class="pc-kk-form-list pc-kk-form-list-clear"><div class="nice-select" name="nice-select"><input type="text" placeholder="宿舍区域" name="stu_homearea" value="<?php echo $row['stu_homearea']; ?>"  readonly><ul><li data-value="北区一号">北区一号</li><li data-value="北区二号">北区二号</li><li data-value="北区三号">北区三号</li><li data-value="北区四号">北区四号</li><li data-value="北区五号">北区五号</li><li data-value="北区六号">北区六号</li><li data-value="西区一号">西区一号</li><li data-value="西区二号">西区二号</li><li data-value="西区三号">西区三号</li><li data-value="西区四号">西区四号</li><li data-value="东区一号">东区一号</li><li data-value="动漫大厦">动漫大厦</li></ul></div><div class="pc-kk-form-list" name="nice-select" style="float:left;width: 50%;margin-left: 33px"><input type="text" name="stu_homeid" placeholder="宿舍号(北区分AB)" value="<?php echo $row['stu_homeid']; ?>"  required></div></div><div class="pc-kk-form-list"><input type="text" placeholder="专业班级(计算机工程学院-软件工程-19-3)" name="stu_class" value="<?php echo $row['stu_class']; ?>" ></div><div class="pc-kk-form-list"><input type="tel" placeholder="电话号码(11位)" name="stu_phone" value="<?php echo $row['stu_phone']; ?>" ></div><div class="pc-kk-form-list"><input type="text" placeholder="辅导员" name="stu_teacher" value="<?php echo $row['stu_teacher']; ?>" ></div><div class="pc-kk-form-list pc-kk-form-list-clear"><div class="nice-select" name="nice-select"><input type="text" id="date" placeholder="入住时间" name="stu_rtime" class="show_placeholder" value="<?php$dates = explode(" ",$row['stu_rtime'])[0];echo $dates;?>" ></div><div class="nice-select" name="nice-select" style="float:right"><input type="text" placeholder="性别" name="stu_sex" value="<?php echo $row['stu_sex']; ?>"  readonly><ul><li data-value="男">男</li><li data-value="女">女</li></ul></div></div><div class="pc-kk-form-list pc-kk-form-list-clear"><div class="pc-kk-form-list" name="nice-select" style="width:100%"><input type="text" placeholder="家庭住址" name="stu_home" value="<?php echo $row['stu_home']; ?>"></div></div><div class="pc-kk-form-list pc-kk-form-list-clear"><div class="pc-kk-form-list" name="nice-select" style="width:100%"><input type="text" placeholder="奖罚分" value="<?php echo $row['stu_score']; ?>"  readonly></div></div><div class="pc-kk-form-btn" style="margin-left: -80px"><input type="submit" value="保存信息"></div></form></div></div>

        b.下载提交表格,学生需按时下载表格并定期提交需上交的表格,通过正则表达式控制学生提交表格的名称格式等是否正确。实现效果如下。

上传,下载表格文件实现代码如下:

<?phpif(!isset($_FILES['fileload'])){echo "<script>";echo "alert('非法访问!');";echo "window.history.go(-1);";echo "</script>";exit();
}
$error = $_FILES['fileload']['error'];
if($error == 4){echo "<script>";echo "alert('请传入文件!');";echo "window.history.go(-1);";echo "</script>";exit();
}
$named = array('xls','xlsx');
$name = $_FILES['fileload']['name'];
$names = explode(".",$_FILES['fileload']['name'])[1];
if(!in_array($names,$named)){echo "<script>";echo "alert('请提交正确的文件后缀格式!');";echo "window.history.go(-1);";echo "</script>";exit();
}
$nameArray = explode("-",$name);
if(!preg_match("/[0-9]{2}[A|B]/",$nameArray[1]) || explode(".",$nameArray[2])[0] != "通风消毒表"){echo "<script>";echo "alert('请提交正确的文件格式!');";echo "window.history.go(-1);";echo "</script>";exit();
}$path = "../upkillvirus/";
$tmp_name = $_FILES['fileload']['tmp_name'];
if(move_uploaded_file($tmp_name,$path.$name)){echo "<script>";echo "alert('上传成功!');";echo "window.location.href='../pageStudent/studentinfo.php';";echo "</script>";exit();
}else{echo "<script>";echo "alert('上传失败!');";echo "window.location.href='../pageStudent/studentinfo.php';";echo "</script>";exit();
}

        c.学生打卡签到,学生可在每天9:00至22点30进行打卡签到,使用到php时间戳以及存储学生打卡日期从而达到显示每个学生打卡天数。实现效果如下。

php代码以及js代码如下。

<script>var divs = document.querySelectorAll(".days");console.log(divs);var arrs = [];<?php for ($i = 1;$i < count($arrays); $i++){ ?>var len = arrs.push(<?php echo $arrays[$i]; ?>)<?php } ?>for(var i = 0;i < arrs.length; i++){divs[arrs[i]-1].style.backgroundColor = '#00bfff';}
</script>
$stu_no = $_SESSION['username'];
$selectQianDay = "select * from stuinfo where stu_no='{$stu_no}'";
$row = selectOne($link,$selectQianDay);
$timeday = $row['timeday'];
$arrays = explode("*",$timeday);

(4)申报维修

a.申报维修,学生通过提交宿舍损坏信息从而提交进行申请。实现效果图如下

点击马上申请后,可填写提交损坏信息,判断填写的信息的正确与否都由正则表达式判断。效果图如下。

填写成功后,可在下面的表格中看到相关的提交信息。效果图如下。

php实现代码如下

$stu_homearea = $_POST["stu_homearea"];
$stu_homeid = $_POST["stu_homeid"];
$repair_host = $_POST["repair_host"];
$repair_phone = $_POST["repair_phone"];
$repair_content = $_POST["repair_content"];
if ($repair_host == "" || $repair_phone == "" || $repair_content == ""){echo "<script>";echo "alert('值不能为空!');";echo "window.history.go(-1);";echo "</script>";exit();
}
$pattern = "/[0-9]{11}/";
if (!preg_match($pattern, $repair_phone)) {echo "<script>";echo "alert('电话号码格式不匹配!');";echo "window.history.go(-1);";echo "</script>";exit();
}
$named = array('jpg','png');
$name = $_FILES['file']['name'];
$names = explode(".",$_FILES['file']['name'])[1];
if(!in_array($names,$named)){echo "<script>";echo "alert('请提交正确的文件后缀格式!');";echo "window.history.go(-1);";echo "</script>";exit();
}
$picHomeArea = explode("-",$name)[0];
$picHomeId = explode(".",explode("-",$name)[1])[0];
if($picHomeArea != $stu_homearea || !preg_match("/[0-9]{3}[A|B]/",$picHomeId)){echo "<script>";echo "alert('请提交正确的文件命名格式!');";echo "window.history.go(-1);";echo "</script>";exit();
}
$size = $_FILES['file']['size'];
$mb = $size / 1024 / 1024;
if($mb > 5){echo "<script>";echo "alert('请提交正确的文件命名格式!');";echo "window.history.go(-1);";echo "</script>";exit();
}
$tmp_name = $_FILES['file']['tmp_name'];
$path = "../repairimg/" . $name;
$selectRepairSql = "select * from repairinfo where stu_homeid = '{$stu_homeid}'";
$results = mysqli_query($link,$selectRepairSql);
$num = mysqli_num_rows($results);
if($num >= 1){echo "<script>";echo "alert('等待提交申请解决后再进行提交!');";echo "window.history.go(-1);";echo "</script>";exit();
}
if(move_uploaded_file($tmp_name,$path)){$insertRepairSql = "insert into repairinfo values ('','{$stu_homearea}','{$stu_homeid}','{$repair_host}','{$repair_phone}','{$repair_content}','{$path}','')";$result = mysqli_query($link,$insertRepairSql);if(!$result){echo mysqli_error($link);echo mysqli_errno($link);exit();}echo "<script>";echo "alert('提交成功!');";echo "window.history.go(-1);";echo "</script>";exit();
}

b.提交费用,待报修处理完毕后,学生可在线进行支付维修费用。实现效果图如下。

点击立即支付后,可输入支付密码,效果图如下。

jquery实现代码如下

<script>$(function () {var step = $("#myStep").step({animate: true,initStep: 1,speed: 1000});$("#preBtn").click(function (event) {var yes = step.preStep();});$("#applyBtn").click(function (event) {var yes = step.nextStep();});$("#submitBtn").click(function (event) {var yes = step.nextStep();});$("#goBtn").click(function (event) {var yes = step.goStep(3);});});//支付$(function(){//出现浮动层$(".ljzf_but").click(function(){$(".ftc_wzsf").show();});//关闭浮动$(".close").click(function(){$(".ftc_wzsf").hide();$(".mm_box li").removeClass("mmdd");$(".mm_box li").attr("data","");i = 0;});//数字显示隐藏$(".xiaq_tb").click(function(){$(".numb_box").slideUp(500);});$(".mm_box").click(function(){$(".numb_box").slideDown(500);});//----var i = 0;$(".nub_ggg li .zf_num").click(function(){if(i<6){$(".mm_box li").eq(i).addClass("mmdd");$(".mm_box li").eq(i).attr("data",$(this).text());i++if (i==6) {setTimeout(function(){var data = "";$(".mm_box li").each(function(){data += $(this).attr("data");});if($("#ineed").attr('value') != 0 && $(".zhifu_price").text() != "¥0¥0"){$(".ftc_wzsf").hide();$("#ineed").attr('value',0);$(".zhifu_price").text("¥0");alert("支付成功!");window.location.href = '../process/stu_repair_price_recall.php';}else{alert("支付失败!");}},100);};}});$(".nub_ggg li .zf_del").click(function(){if(i>0){i--$(".mm_box li").eq(i).removeClass("mmdd");$(".mm_box li").eq(i).attr("data","");}});$(".nub_ggg li .zf_empty").click(function(){$(".mm_box li").removeClass("mmdd");$(".mm_box li").attr("data","");i = 0;});});
</script>

3.宿管界面

宿管界面可进行学生管理、房间管理、来访登记和维修处理。由于四大板块实现代码基本相似,下面仅进行效果展示。
(1)学生管理

a.学生管理

 b.学生违规信息

c.学生晚归信息

 (2)来访登记

a.来访登记信息

 b.来访人员表

(3)房间管理(略)

(4)维修处理

 a.维修信息表

 b.处理维修费

4、管理员界面

对宿管信息、学生信息的增删改查.

(1)宿管管理

 (2)学生管理

        a.学生信息管理

除对学生单个的正删改查外,使用了PHPExecl对学生信息进行批量添加导出等,实现效果图如下。

注意:

PHPExcel在1.8.0版本后就放弃更新,且需要的php环境在7.0及以下。其中配置文件中获取数组元素使用的数组下标在大括号内,在php7.0后就弃用了该获取方式,统一使用中括号。即若使用PHPExecl读取Execl表格时,首先需从官网下载低版本php环境,其次修改PHPExcel配置文件,将所有大括号改为中括号。

引用PHPExecl后使用php读取Execl实现代码如下。

$path = "../bossInsert/";
$tmp_name = $_FILES['file']['tmp_name'];
if(move_uploaded_file($tmp_name,$path.$name)){$fileName = "../bossInsert/学生住宿信息表.xlsx";if (!file_exists($fileName)){exit("文件".$fileName."不存在");}require_once "../PHPExecl/Classes/PHPExcel/IOFactory.php";$objPHPExcel = PHPExcel_IOFactory::load($fileName);$sheetCount = $objPHPExcel->getSheetCount();$sheetSelected = 0;$objPHPExcel->setActiveSheetIndex($sheetSelected);$rowCount = $objPHPExcel->getActiveSheet()->getHighestRow();$columnCount = $objPHPExcel->getActiveSheet()->getHighestColumn();$dataArr = array();echo "<br />";$is = [];for ($row = 2; $row <= $rowCount; $row++){for ($column = 'A'; $column <= $columnCount; $column++) {$dataArr[] = $objPHPExcel->getActiveSheet()->getCell($column.$row)->getValue();}$is[$row-2] = $dataArr;$dataArr = NULL;}echo "<pre>";print_r($is);echo "</pre>";require_once "connect.php";require_once "functions.php";for($i = 0;$i<count($is);$i++){$everyStu = $is[$i][0];$homearea = $is[$i][5];$homeid = $is[$i][6];$selectIsHave = "select *from stuinfo where stu_no='{$everyStu}'";$row = selectOne($link,$selectIsHave);$selectSql = "select * from roominfo where stu_homearea='{$homearea}' and stu_homeid='{$homeid}'";$result = mysqli_query($link,$selectSql);$numCol = mysqli_num_rows($result);echo $numCol;if(isset($row['stu_no']) || $numCol==0){continue;}else{echo "p";$insertStuLoginInfoSql ="insert into stulogininfo(stu_no,stu_psw) values ('{$everyStu}','123456')";$result1 = mysqli_query($link,$insertStuLoginInfoSql);if(!$result1){if(mysqli_errno($link) == 1062){continue;}else{echo "<script>";echo "alert('有误!');";echo "window.history.go(-1);";echo "</script>";exit();}}$time = date("Y-m-d H:i:s",PHPExcel_Shared_Date::ExcelToPHP($is[$i][7]));$insertInfoSql = "insert into stuinfo(stu_no,stu_name,stu_sex,stu_class,stu_phone,stu_homearea,stu_homeid,stu_rtime,stu_home,stu_teacher) values ('{$is[$i][0]}','{$is[$i][1]}','{$is[$i][2]}','{$is[$i][3]}','{$is[$i][4]}','{$is[$i][5]}','{$is[$i][6]}','{$time}','{$is[$i][8]}','{$is[$i][9]}')";$result2 = mysqli_query($link,$insertInfoSql);if(!$result2){echo mysqli_error($link);}}}echo "<script>";echo "alert('上传成功!');";echo "window.location.href='../pageBoss/students.php';";echo "</script>";exit();
}else{echo "<script>";echo "alert('上传失败!');";echo "window.history.go(-1);";echo "</script>";exit();
}

b.学生住宿信息展示

使用Echarts中的图形API对学生信息进行实时统计,实现效果图如下。

js实现代码如下

<script>var chartDom = document.getElementById('main');var myChart = echarts.init(chartDom);var option;const colors = ['#5470C6', '#91CC75', '#EE6666'];option = {color: colors,tooltip: {trigger: 'axis',axisPointer: {type: 'cross'}},grid: {right: '20%'},toolbox: {feature: {dataView: { show: true, readOnly: false },restore: { show: true },saveAsImage: { show: true }}},legend: {data: ['男生人数', '女生人数', '总人数']},xAxis: [{type: 'category',axisTick: {alignWithLabel: true},// prettier-ignoredata: ['北区宿舍', '西区宿舍', '东区宿舍', '动漫大厦']}],yAxis: [{type: 'value',name: '男生人数',min: 0,max: 50,position: 'right',axisLine: {show: true,lineStyle: {color: colors[0]}},axisLabel: {formatter: '{value}人'}},{type: 'value',name: '女生人数',min: 0,max: 50,position: 'right',offset: 80,axisLine: {show: true,lineStyle: {color: colors[1]}},axisLabel: {formatter: '{value}人'}},{type: 'value',name: '总人数',min: 0,max: 50,position: 'left',axisLine: {show: true,lineStyle: {color: colors[2]}},axisLabel: {formatter: '{value}人'}}],series: [{name: '男生人数',type: 'bar',data: [<?php echo $AllNan; ?>]},{name: '女生人数',type: 'bar',yAxisIndex: 1,data: [<?php echo $AllNu; ?>]},{name: '总人数',type: 'line',yAxisIndex: 2,data: [<?php echo $AllAreaStu; ?>]}]};option && myChart.setOption(option);</script>

至此,该宿舍管理系统的设计与实现大致流程与效果已讲解完毕,如对您有所帮助,请收藏保留并留下宝贵一赞!谢谢!

代码:

print('1'+'3'+'5'+'1'+'0'+'9'+'7'+'4'+'3'+'1')

基于PHP、MySql的宿舍管理系统相关推荐

  1. 基于java+SpringBoot+HTML+Mysql学生宿舍管理系统

    源码+原文获取方式: 私信获取源码+原文 目  录 摘    要 Abstract 1  绪论 1.1  课题背景 1.2  目的与意义 1.3  论文研究主要内容 2  关键技术介绍 2.1  Ja ...

  2. 基于PHP的学生宿舍管理系统

    一 项目介绍 基于PHP的学生宿舍管理系统 可搭建在phpstudy下,三分钟快速部署 需要加Q 1115487855 (不免费) 二 主要功能 分为学生端.辅导员端.宿管员端 功能:宿舍管理.物业报 ...

  3. 原创首发 | 基于SSM的学生宿舍管理系统【源码+论文】

    视频演示 原创首发 | 基于SSM的学生宿舍管理系统[源码+论文] 1.介绍 本论文研究内容充分围绕校园内宿舍及学生的管理等方面,设计了基于SSM的宿舍管理系统.该系统实现了住宿的管理,包括学生入住. ...

  4. 基于JavaWeb技术实现宿舍管理系统

    基于JavaWeb技术实现宿舍管理系统 技术介绍 系统采用三层架构设计开发,页面是JSP技术.jQuery和EasyUI框架,数据库是mysql,数据层访问使用MyBatis框架. 运行环境 JDK1 ...

  5. 基于SSM的学生宿舍管理系统(含论文和PPT)+视频讲解+安装部署+效果视频+部署视频

    下载地址:https://download.csdn.net/download/ouyangxiaobai123/22174377 项目介绍: 基于SSM的学生宿舍管理系统(含论文和PPT)+视频讲解 ...

  6. 【计算机毕业文章】基于SSM的高校宿舍管理系统的设计与实现

    摘 要 近年来, 伴随着互联网产业的快速发展和大力推广,"数字化"."信息化"为关键字的校园建设已经成为了各大院校发展的共同课题.宿舍是在大学校园里面学习和生活 ...

  7. android宿舍管理系统源码,基于android操作系统的手机宿舍管理系统使用手册

    <基于android操作系统的手机宿舍管理系统使用手册>由会员分享,可在线阅读,更多相关<基于android操作系统的手机宿舍管理系统使用手册(5页珍藏版)>请在人人文库网上搜 ...

  8. 基于SSM+Mysql的房屋租赁管理系统

    一.基于SSM+Mysql的房屋租赁管理系统 1.具有角色功能[管理员.租户] 管理员 房源信息管理.租赁合同信息.申请列表.报障模块(处理报障).租金信息(收租管理).我的日程管理.账户管理: 租户 ...

  9. android宿舍管理系统源码,基于android的学生宿舍管理系统的实现.doc

    PAGE 7 PAGE 1 PAGE 0 本科生毕业论文 题 目 基于Android的学生宿舍管理系统的实现 系 别 计算机科学与技术 班 级 计算机科学与技术082班级 姓 名 王西迪 学 号 08 ...

  10. Java+Swing+Mysql学生宿舍管理系统

    Java+Swing+Mysql学生宿舍管理系统 一.系统介绍 二.系统展示 1.用户登陆 2.寝室查询--学生 3.学生信息查询--学生 4.宿舍管理--管理员 5.学生信息管理--管理员 6.住宿 ...

最新文章

  1. STM32中EXTI和NVIC的关系
  2. 你还在百度这些代码吗?
  3. TensorFlow与主流深度学习框架对比
  4. BugKuCTF 杂项 这是一张单纯的图片
  5. 前端学习(572):margin无效情形inline水平元素的margin无效
  6. 关于struts2 中result type=stream
  7. 【clickhouse】如何监控Clickhouse的连接数
  8. vim linux python3,VIM:在python-mode中使用python3解释器
  9. Open vSwitch(OVS)介绍、编译安装与原理
  10. Hive中HSQL中left semi join
  11. 国内国外最好的java开发论坛及站点 [转]
  12. 时序图(Sequence Diagram)—UML图(六)
  13. 微信服务号获取地理位置
  14. 3分钟在线开通优惠费率的微信支付商户号(商户收款码)
  15. niosii 把程序固化到epcs中的步骤
  16. 基于PageRank的社交网络用户影响力
  17. 微服务不是架构演变的终点!
  18. python 单词纠错_自然语言处理1——语言处理与Python(内含纠错)
  19. python面试项目案例
  20. spring中@Value读取.properties配置文件中文乱码问题

热门文章

  1. PS 怎么去掉图片上的文字
  2. Python学习 Task01 :变量,运算符,与数据类型
  3. ubuntu18.04设置静态IP地址
  4. php提取网页mp3,怎样提取网页视频中的音频文件
  5. python图片尺寸大小修改_Python实现更改图片尺寸大小的方法(基于Pillow包)
  6. WORD文档-最后一页空白页无法删除
  7. 关于验证码错误的解决办法
  8. 信息安全软考—— 第五章 物理与环境安全技术 学习笔记
  9. css背景透明 字体不透明
  10. 两平面平行方向向量关系_线性代数总结 第三章 向量代数与几何计算(空间平面和直线)...