第九章 寝室编号设置和宿舍初始化以及预选设置

提示:本博客个为人独立博客,不是权威,仅供参考!所有思路只做交流之用!如有不足之处,望各位在评论区友善指正。


文章目录

  • 第九章 寝室编号设置和宿舍初始化以及预选设置
  • 前言
  • 一、寝室编号设置
    • 1.数据库写入数据
    • 2.创建前端文件目录dormitoryset
  • 二、宿舍初始化
    • 1.前端页面
    • 2.后端方法
  • 三、预选设置
    • 1.list与add页面
    • 2.update页面
    • 3.distribute页面
  • 总结

前言

这一章将介绍寝室编号设置和宿舍初始化以及预选设置,项目做到这里已经接近尾声了,还剩下四分之一的样子,大概十天之内就能结束。像表格增删改之类的操作,前面几章又讲的非常详细,因此之后这些部分就不再一步一步地写了,既繁琐又没有必要。


一、寝室编号设置

1.数据库写入数据

2.创建前端文件目录dormitoryset

拷贝dormitory/list.html作为模板,只留下楼宇和楼层

<div class="layuimini-container layuimini-page-anim"><div class="layuimini-main"><div style="margin: 10px" id="building"></div></div><div class="layuimini-main" style="width: 250px;position: absolute;left: 0px;"><ul class="storey"></ul></div><div class="layuimini-main" style="left: 270px;float: right;position: absolute;right:0px"></div>
</div><style>.storey{margin: 0px;padding: 0px;}.storey li{height: 40px;line-height:40px;border-bottom: 1px solid #f1f1f1;font-size: 16px;cursor: pointer;padding-left: 50px;}.storey>li>span{float: right;margin-right: 10px;}.storey>li>span>button{cursor: pointer;color: #00998b;background: transparent;border: 0px;font-size: 20px;}.storey-bg{background-color: #f0f0f0;color: #000000;}
</style><script>layui.use(['form', 'table','miniPage','element','axios'], function () {var $ = layui.jquery,form = layui.form,table = layui.table,axios = layui.axios,form = layui.form,miniPage = layui.miniPage;function loadBuilding(){axios.post('building/query',{}).then(function (response) {response.data.forEach(item=>{let btn = '<button class="layui-btn layui-btn-primary layui-btn-radius building-btn" key='+item.id+'>'+item.name+'</button>';let btnObj = $(btn);btnObj.click(function () {$(this).siblings().addClass('layui-btn-primary');$(this).removeClass('layui-btn-primary');loadStorey($(this).attr("key"));});$('#building').append(btnObj);})$('#building button:first').trigger('click');}).catch(function (error) {layer.msg(error);});}loadBuilding();//加载楼层function loadStorey(buildingId){axios.post('storey/query',{"buildingId":buildingId}).then(function (response) {$('.storey').empty();response.data.forEach(item=>{let btn = `<li key="${item.id}">${item.name}</li>`;let btnObj = $(btn);btnObj.click(function () {$(this).siblings().removeClass('storey-bg');btnObj.addClass('storey-bg');});$('.storey').append(btnObj);})$('.storey li:first').trigger('click');}).catch(function (error) {layer.msg(error);});}});
</script>

html

加载DormitorySet表格、渲染表格、toolbar事件监听、在loadStorey中调用loadDormitorySet方法

<script>layui.use(['form', 'table','miniPage','element','axios'], function () {var $ = layui.jquery,form = layui.form,table = layui.table,axios = layui.axios,form = layui.form,miniPage = layui.miniPage;function loadBuilding(){axios.post('building/query',{}).then(function (response) {response.data.forEach(item=>{let btn = '<button class="layui-btn layui-btn-primary layui-btn-radius building-btn" key='+item.id+'>'+item.name+'</button>';let btnObj = $(btn);btnObj.click(function () {$(this).siblings().addClass('layui-btn-primary');$(this).removeClass('layui-btn-primary');loadStorey($(this).attr("key"));});$('#building').append(btnObj);})$('#building button:first').trigger('click');}).catch(function (error) {layer.msg(error);});}loadBuilding();//加载楼层function loadStorey(buildingId){axios.post('storey/query',{"buildingId":buildingId}).then(function (response) {$('.storey').empty();response.data.forEach(item=>{let btn = `<li key="${item.id}">${item.name}</li>`;let btnObj = $(btn);btnObj.click(function () {$(this).siblings().removeClass('storey-bg');btnObj.addClass('storey-bg');loadDormitorySet(buildingId,$(this).attr("key"));});$('.storey').append(btnObj);})$('.storey li:first').trigger('click');}).catch(function (error) {layer.msg(error);});}function loadDormitorySet(buildingId,storeyId){table.render({elem: '#currentTableId',method:'post',url: 'dormitorySet/query',data:{buildingId:buildingId,storeyId:storeyId},toolbar: '#toolbarDemo',defaultToolbar: ['filter', 'exports', 'print'],cols: [[{type: "checkbox", width: 50},{field: 'id', width: 80, title: 'ID'},{field: 'prefix',title: '前缀'},{field: 'start',title: '起始值'},{field: 'end',title: '结束值'},{field: 'capacity', title: '容量'},]],page: true,skin: 'line'});}window.reload = function(){table.reload('currentTableId');}/*** toolbar事件监听*/table.on('toolbar(currentTableFilter)', function (obj) {if (obj.event === 'add') {   // 监听添加操作let content = miniPage.getHrefContent('dormitorySet/add.html');let openWH = miniPage.getOpenWidthHeight();let index = layer.open({title: '添加',type: 1,shade: 0.2,maxmin:true,shadeClose: true,area: [openWH[0] + 'px', openWH[1] + 'px'],offset: [openWH[2] + 'px', openWH[3] + 'px'],content: content});$(window).on("resize", function () {layer.full(index);});} else if (obj.event === 'update') {  //修改操作let data = table.checkStatus('currentTableId').data;if(data.length!=1){layer.msg("请选择一条记录修改");}else{let content = miniPage.getHrefContent('dormitorySet/update.html');let openWH = miniPage.getOpenWidthHeight();let index = layer.open({title: '添加',type: 1,shade: 0.2,maxmin:true,shadeClose: true,area: [openWH[0] + 'px', openWH[1] + 'px'],offset: [openWH[2] + 'px', openWH[3] + 'px'],content: content});$(window).on("resize", function () {layer.full(index);});}}else if (obj.event === 'delete') { //删除操作let data = table.checkStatus('currentTableId').data;if(data.length==0){layer.msg("请选择要删除的数据");}else{layer.confirm('确定要删除吗', function (index) {//异步删除 map\filter\some\everylet arr = data.map(item=>item.id);axios.get('dormitorySet/delete?ids='+arr.join(",")).then(function (response) {table.reload('currentTableId');layer.msg(response.msg);}).catch(function (error) {layer.msg(error);});layer.close(index);});}}});});
</script>

完成add页面

<div class="layuimini-main"><div class="layui-form layuimini-form" lay-filter="setAddForm"><div class="layui-form-item"><label class="layui-form-label">前缀</label><div class="layui-input-block"><input type="hidden" name="buildingId" id="buildingId"><input type="hidden" name="storeyId" id="storeyId"><input type="text" name="prefix"  placeholder="请输入前缀" value="" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label required">开始-结束值</label><div class="layui-input-inline" style="width: 100px;"><input type="number" name="start" autocomplete="off" class="layui-input"></div><div class="layui-form-mid">-</div><div class="layui-input-inline" style="width: 100px;"><input type="number" name="end" autocomplete="off" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label required">容量</label><div class="layui-input-block"><input type="number" name="capacity" placeholder="请输入容量" class="layui-input"></div></div><div class="layui-form-item"><div class="layui-input-block"><button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button></div></div></div>
</div>
<script>layui.use(['form', 'table','axios'], function () {let form = layui.form,layer = layui.layer,axios = layui.axios,$ = layui.$;/*** 初始化表单,要加上,不然刷新部分组件可能会不加载*/form.render();// 当前弹出层,防止ID被覆盖let parentIndex = layer.index;//监听提交form.on('submit(saveBtn)', function (data) {axios.post('dormitorySet/create',data.field).then(function(response){if(response.code == 200){layer.msg(response.msg);window.reload();}layer.close(parentIndex);}).catch(function (error) {layer.msg(error);});return false;});});
</script>

表单赋值

完成update页面

<div class="layuimini-main"><div class="layui-form layuimini-form" lay-filter="setUpdateForm"><div class="layui-form-item"><label class="layui-form-label">前缀</label><div class="layui-input-block"><input type="hidden" name="id" id="id"><input type="hidden" name="buildingId" id="buildingId"><input type="hidden" name="storeyId" id="storeyId"><input type="text" name="prefix"  placeholder="请输入前缀" value="" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label required">开始-结束值</label><div class="layui-input-inline" style="width: 100px;"><input type="number" name="start" autocomplete="off" class="layui-input"></div><div class="layui-form-mid">-</div><div class="layui-input-inline" style="width: 100px;"><input type="number" name="end" autocomplete="off" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label required">容量</label><div class="layui-input-block"><input type="number" name="capacity" placeholder="请输入容量" class="layui-input"></div></div><div class="layui-form-item"><div class="layui-input-block"><button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button></div></div></div>
</div>
<script>layui.use(['form', 'table','axios'], function () {let form = layui.form,layer = layui.layer,axios = layui.axios,$ = layui.$;/*** 初始化表单,要加上,不然刷新部分组件可能会不加载*/form.render();// 当前弹出层,防止ID被覆盖let parentIndex = layer.index;//监听提交form.on('submit(saveBtn)', function (data) {axios.post('dormitorySet/update',data.field).then(function(response){if(response.code == 200){layer.msg(response.msg);window.reload();}layer.close(parentIndex);}).catch(function (error) {layer.msg(error);});return false;});});
</script>

表单赋值

二、宿舍初始化

1.前端页面

在dormitoryset/list.html的toolbar上添加初始化按钮

监听初始化操作

2.后端方法

在DormitoryService中添加寝室初始化的方法

在BedMapper.xml中添加按寝室id删除床位的sql语句

在BedMapper接口中添加按寝室id删除床位的接口方法

在DormitoryMapper.xml中添加按楼宇id和楼层id删除寝室的sql语句

在DormitoryMapper接口中添加按楼宇id和楼层id删除寝室的接口方法

在DormitoryService寝室初始化方法中调用按楼宇id和楼层id删除寝室和按寝室id删除床位的方法

在DormitoryController中调用寝室初始化的方法

三、预选设置

1.list与add页面

数据库写入数据

前端创建selection包结构

list页面

<div class="layuimini-container layuimini-page-anim"><div class="layuimini-main"><script type="text/html" id="toolbarDemo"><div class="layui-btn-container"><button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"><i class="layui-icon layui-icon-add-circle"></i>新增</button><button class="layui-btn layui-btn-sm layui-btn-normal data-delete-btn" lay-event="update"><i class="layui-icon layui-icon-edit"></i>修改</button><button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"><i class="layui-icon layui-icon-delete"></i>删除</button><button class="layui-btn layui-btn-sm layui-btn-normal data-delete-btn" lay-event="distribute"><i class="layui-icon layui-icon-edit"></i>分配</button></div></script><table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table></div>
</div><script>layui.use(['form', 'table','miniPage','miniAdmin','form','element','axios'], function () {var $ = layui.jquery,form = layui.form,table = layui.table,axios = layui.axios,form = layui.form,miniAdmin = layui.miniAdmin,miniPage = layui.miniPage;table.render({elem: '#currentTableId',method:'post',url: 'selection/query',toolbar: '#toolbarDemo',defaultToolbar: ['filter', 'exports', 'print'],cols: [[{type: "checkbox", width: 50},{field: 'id', width: 80, title: 'ID'},{field: 'name',title: '名称'},{field: 'startTime', title: '开始时间'},{field: 'endTime', title: '结束时间'},{field: 'remark',title: '备注'}]],page: true,skin: 'line'});window.reload = function(){table.reload('currentTableId');}/*** toolbar事件监听*/table.on('toolbar(currentTableFilter)', function (obj) {if (obj.event === 'add') {   // 监听添加操作let content = miniPage.getHrefContent('selection/add.html');let openWH = miniPage.getOpenWidthHeight();let index = layer.open({title: '添加',type: 1,shade: 0.2,maxmin:true,shadeClose: true,area: [openWH[0] + 'px', openWH[1] + 'px'],offset: [openWH[2] + 'px', openWH[3] + 'px'],content: content});$(window).on("resize", function () {layer.full(index);});} else if (obj.event === 'update') {  //修改操作let data = table.checkStatus('currentTableId').data;if(data.length!=1){layer.msg("请选择一条记录修改");}else{let content = miniPage.getHrefContent('selection/update.html');let openWH = miniPage.getOpenWidthHeight();let index = layer.open({title: '修改',type: 1,shade: 0.2,maxmin:true,shadeClose: true,area: [openWH[0] + 'px', openWH[1] + 'px'],offset: [openWH[2] + 'px', openWH[3] + 'px'],content: content});$(window).on("resize", function () {layer.full(index);});}}else if (obj.event === 'distribute') {  //分配操作let data = table.checkStatus('currentTableId').data;if(data.length!=1){layer.msg("请选择一条记录操作");}else{let content = miniPage.getHrefContent('selection/distribute.html');let openWH = miniPage.getOpenWidthHeight();let index = layer.open({title: '分配',type: 1,shade: 0.2,maxmin:true,shadeClose: true,area: [openWH[0] + 'px', openWH[1] + 'px'],offset: [openWH[2] + 'px', openWH[3] + 'px'],content: content});window.clazzData = function(){return data[0];}$(window).on("resize", function () {layer.full(index);});}}else if (obj.event === 'delete') { //删除操作let data = table.checkStatus('currentTableId').data;if(data.length==0){layer.msg("请选择要删除的数据");}else{layer.confirm('确定要删除吗', function (index) {//异步删除 map\filter\some\everylet arr = data.map(item=>item.id);axios.get('selection/delete?ids='+arr.join(",")).then(function (response) {table.reload('currentTableId');layer.msg(response.msg);}).catch(function (error) {layer.msg(error);});layer.close(index);});}}});});
</script>

add页面

<div class="layuimini-main"><div class="layui-form layuimini-form"><div class="layui-form-item"><label class="layui-form-label required">名称</label><div class="layui-input-block"><input type="text" name="name" lay-verify="required" lay-reqtext="名称不能为空" placeholder="请输入名称" value="" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label required">开始时间</label><div class="layui-input-block"><input type="text" name="startTime" id="startTime" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label required">结束时间</label><div class="layui-input-block"><input type="text" name="endTime" id="endTime" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label required">班级</label><div class="layui-input-block"><input type="hidden" name="clazzId" id="clazzId" lay-verify="required"  class="layui-input"><input type="text" name="clazzName" readonly id="clazzName" lay-verify="required" lay-reqtext="班级不能为空" placeholder="请选择班级" value="" class="layui-input"></div></div><div class="layui-form-item layui-form-text"><label class="layui-form-label">备注信息</label><div class="layui-input-block"><textarea name="remark" class="layui-textarea" placeholder="请输入备注信息"></textarea></div></div><div class="layui-form-item"><div class="layui-input-block"><button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button></div></div></div>
</div>
<script>layui.use(['form', 'table','axios','laydate','selectOrg'], function () {let form = layui.form,layer = layui.layer,axios = layui.axios,laydate = layui.laydate,selectOrg = layui.selectOrg,$ = layui.$;//日期laydate.render({elem: '#startTime'});laydate.render({elem: '#endTime'});/*** 初始化表单,要加上,不然刷新部分组件可能会不加载*/form.render();selectOrg.render({elem:'#clazzName',selected:[],checked:true,done:function (data) {let nameArr = data.map(item=>item.name);$('#clazzName').val(nameArr.join(','));let idArr = data.map(item=>item.id);$('#clazzId').val(idArr);}});// 当前弹出层,防止ID被覆盖let parentIndex = layer.index;//监听提交form.on('submit(saveBtn)', function (data) {let param = data.field;if(data.field.clazzId){param.clazzIds =data.field.clazzId.split(",");}axios.post('selection/create',param).then(function(response){if(response.code == 200){layer.msg(response.msg);window.reload();}layer.close(parentIndex);}).catch(function (error) {layer.msg(error);});return false;});});
</script>

Selection中添加属性clazzIds以及对应的set/get方法

完善SelectionService中的create方法

配置时间显示格式

2.update页面

update页面

<div class="layuimini-main"><div class="layui-form layuimini-form" lay-filter="updateForm"><div class="layui-form-item"><label class="layui-form-label required">名称</label><div class="layui-input-block"><input type="hidden" name="id" id="id"><input type="text" name="name" lay-verify="required" lay-reqtext="名称不能为空" placeholder="请输入名称" value="" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label required">开始时间</label><div class="layui-input-block"><input type="text" name="startTime" id="startTime" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label required">结束时间</label><div class="layui-input-block"><input type="text" name="endTime" id="endTime" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label required">班级</label><div class="layui-input-block"><input type="hidden" name="clazzId" id="clazzId" lay-verify="required"  class="layui-input"><input type="text" name="clazzName" readonly id="clazzName" lay-verify="required" lay-reqtext="班级不能为空" placeholder="请选择班级" value="" class="layui-input"></div></div><div class="layui-form-item layui-form-text"><label class="layui-form-label">备注信息</label><div class="layui-input-block"><textarea name="remark" class="layui-textarea" placeholder="请输入备注信息"></textarea></div></div><div class="layui-form-item"><div class="layui-input-block"><button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button></div></div></div>
</div>
<script>layui.use(['form', 'table','axios','laydate','selectOrg'], function () {let form = layui.form,layer = layui.layer,axios = layui.axios,laydate = layui.laydate,selectOrg = layui.selectOrg,$ = layui.$;//日期laydate.render({elem: '#startTime'});laydate.render({elem: '#endTime'});/*** 初始化表单,要加上,不然刷新部分组件可能会不加载*/form.render();selectOrg.render({elem:'#clazzName',selected:[],checked:true,done:function (data) {let nameArr = data.map(item=>item.name);$('#clazzName').val(nameArr.join(','));let idArr = data.map(item=>item.id);$('#clazzId').val(idArr);}});// 当前弹出层,防止ID被覆盖let parentIndex = layer.index;//监听提交form.on('submit(saveBtn)', function (data) {let param = data.field;if(data.field.clazzId){param.clazzIds =data.field.clazzId.split(",");}axios.post('selection/update',param).then(function(response){if(response.code == 200){layer.msg(response.msg);window.reload();}layer.close(parentIndex);}).catch(function (error) {layer.msg(error);});return false;});});
</script>

Selection中添加属性clazzes以及对应的set/get方法

在OrgMapper.xml中添加根据预选分配的id查找班级的sql语句

在OrgMapper接口中添加对应的方法

在OrgService中添加对应的方法

完善SelectionController中的query方法

表单赋值,并使班级下拉菜单对应班级为勾选状态

在SelectionJoinerMapper.xml中添加根据预选分配的id删除预选分配的sql语句

在SelectionJoinerMapper接口中添加对应的方法

完善SelectionService中的update方法

3.distribute页面

distribute页面

<div class="layuimini-main"><div class="layuimini-main" style="width: 250px;position: absolute;left: 0px;"><ul class="clazz"></ul></div><div class="layuimini-main" style="left: 270px;float: right;position: absolute;right:0px"><div style="margin: 10px 10px 30px 10px" id="building"></div><ul class="dormitory"></ul><div style="clear: both;padding-top: 30px;padding-left: 50px"><button class="layui-btn layui-btn-normal" id="saveBtn">确认保存</button></div></div>
</div>
<style>.clazz{margin: 0px;padding: 0px;}.clazz li{height: 40px;line-height:40px;border-bottom: 1px solid #f1f1f1;font-size: 16px;cursor: pointer;padding-left: 50px;}.clazz>li>span{float: right;margin-right: 10px;}.clazz>li>span>button{cursor: pointer;color: #00998b;background: transparent;border: 0px;font-size: 20px;}.clazz-bg{background-color: #f0f0f0;color: #000000;}.dormitory{margin: 0px;padding: 0px;}.dormitory li{height: 30px;line-height:30px;border-bottom: 1px solid #f1f1f1;font-size: 16px;padding-left: 50px;float: left;width: 100px;}
</style>
<script>layui.use(['form', 'table','axios','laydate','selectOrg'], function () {let layer = layui.layer,axios = layui.axios,$ = layui.$;let _buildingId;let _clazzId;let clazzData = window.clazzData();clazzData.clazzes.forEach(item=>{let html = `<li key="${item.id}">${item.name}</li>`;let htmlObj = $(html);htmlObj.click(function () {$(this).siblings().removeClass('clazz-bg');$(this).addClass('clazz-bg');_clazzId = $(this).attr("key");loadDormitory(_buildingId);});$('.clazz').append(htmlObj);$('.clazz li:first').trigger('click');})function loadBuilding(){axios.post('building/query',{}).then(function (response) {response.data.forEach(item=>{let btn = '<button class="layui-btn layui-btn-primary layui-btn-radius building-btn" key='+item.id+'>'+item.name+'</button>';let btnObj = $(btn);btnObj.click(function () {$(this).siblings().addClass('layui-btn-primary');$(this).removeClass('layui-btn-primary');loadDormitory($(this).attr("key"));});$('#building').append(btnObj);})$('#building button:first').trigger('click');}).catch(function (error) {layer.msg(error);});}loadBuilding();function dormitory(){return axios.post('dormitory/query',{buildingId:_buildingId,limit:10000});}function selection(){return axios.post('selectionDormitory/query',{clazzId:_clazzId,limit:10000});}function loadDormitory(buildingId){_buildingId = buildingId;axios.all([dormitory(), selection()]).then(axios.spread(function(response, response2) {let seletionArr = response2.data.map(item=>item.dormitoryId);$('.dormitory').empty();response.data.forEach(item=>{let flag = seletionArr.some(v=>v==item.id);let obj;if(flag){obj = `<li><input type="checkbox" checked name="dormitoryId" value="${item.id}" style="cursor: pointer">&nbsp;&nbsp;${item.no}</li>`}else{obj = `<li><input type="checkbox" name="dormitoryId" value="${item.id}" style="cursor: pointer">&nbsp;&nbsp;${item.no}</li>`}$('.dormitory').append(obj);})})).catch(function (error) {console.log(error);})}// 当前弹出层,防止ID被覆盖let parentIndex = layer.index;$('#saveBtn').click(function () {if(!_clazzId){layer.msg("请选择班级");return;}let arr = $('.dormitory input[type="checkbox"]:checked');let str = '';for(let i=0;i<arr.length;i++){str+=arr[i].value+",";}console.log(str)let param = {"clazzId":_clazzId,"dormitoryIds":str}console.log(param)axios.post('selectionDormitory/create',param).then(function(response){if(response.code == 200){layer.msg(response.msg);window.reload();}}).catch(function (error) {layer.msg(error);});});});
</script>

在SeclectionDormitoryMapper.xml中添加根据班级id删除已分配宿舍的sql语句

在SeclectionDormitoryMapper接口中添加对应的方法

完善SelectionDormitoryController和SelectionDormitoryService中的create方法


总结

难点:
1.理解代码原理

第十章预计三天内更新,涉及缺勤管理、报修管理、来访人员管理以及公告管理

【高校宿舍管理系统】第九章 寝室编号设置和宿舍初始化以及预选设置相关推荐

  1. javaweb JAVA JSP学校宿舍公寓管理系统(JSP宿舍管理系统)java寝室管理网站源码

    javaweb JAVA JSP学校宿舍公寓管理系统(JSP宿舍管理系统)java寝室管理网站源码

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

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

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

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

  4. 宿舍管理系统c语言分区编译,C语言宿舍管理系统源程序.docx

    C语言宿舍管理系统源程序 /*源程序 学生宿舍管理系统(domitry.txt)*/ /*程序中用到的头文件*/ #include "stdio.h" #include " ...

  5. 【高校宿舍管理系统】第八章 学生管理和楼宇管理以及寝室管理

    第八章 学生管理和楼宇管理以及宿舍管理 提示:本博客个为人独立博客,不是权威,仅供参考!所有思路只做交流之用!如有不足之处,望各位在评论区友善指正. 文章目录 第八章 学生管理和楼宇管理以及宿舍管理 ...

  6. 《校园宿舍管理系统》之数据库程序设计/GUI/java/eclipse/MySQL/JDBC

    数据库系统原理课程设计报告 设计题目:校园宿舍管理系统 班    级: 组    号:第一组 成    员: 指导教师: 完成日期: 课程设计成绩评定表 院系:  信息科学与工程学院   班级:    ...

  7. (附源码)springboot宿舍管理系统 毕业设计 161454

    springboot宿舍管理系统 摘 要 本论文主要论述了如何使用springboot开发一个宿舍管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发 ...

  8. (附源码)Python宿舍管理系统 毕业设计231642

    摘要 本论文主要论述了如何使用Django开发一个宿舍管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述宿舍管理系统的当前背景 ...

  9. Python宿舍管理系统 毕业设计-附源码231642

    摘 要 本论文主要论述了如何使用Django开发一个宿舍管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述宿舍管理系统的当前背 ...

最新文章

  1. Android java传递string类型数据给C
  2. R,Git和Github(上)
  3. 实战项目 10: 货物清单应用
  4. DNN结构:CNN、LSTM/RNN中的Attention结构
  5. android 登录界面开源代码_【程序源代码】一个安卓查询类app制作的开源项目
  6. windows安装多个jdk版本的切换问题
  7. 【AI视野·今日CV 计算机视觉论文速览 第184期】Thu, 28 May 2020
  8. PCD文件的rgb格式
  9. 清华大学计算机专业辅修课程,清华大学计算机应用专业-辅修专业
  10. 三阶齐次线性方程求通解_非齐次线性方程通解求法------常数变易法.ppt
  11. fatal Couldn‘t find remote ref master
  12. Emoji表情正则匹配
  13. 计算机专业海报加文字,巧用字体做海报之——字图穿插
  14. [转]Clion2019破解-Jetbrains系列产品2019.1.1最新激活方法[持续更新]
  15. Ubuntu 搜索不到WIFI或连接不上的解决方法
  16. 被“短信嗅探”盯上 一觉醒来一无所有?
  17. 国内疫情数据可视化平台
  18. java 栈的基本介绍
  19. Hash Trick
  20. 【DTCC 2016】专家访谈:盖国强谈 DT 时代商业行为变化

热门文章

  1. JVM01---简介
  2. systemctl自定义service
  3. 剩余大学时光里要做的事
  4. 配置Hibernate二级缓存步骤
  5. java对象转JSON JS取JSON数据
  6. Windows7与Window2008 64位IIS7上面DCOM配置Excel、Word
  7. Wix 安装部署(五) Bootstrapper 捆绑安装
  8. pattern recognition and machine learning基本思想1:最大似然估计
  9. 常见web攻击方式与防御方法
  10. linux内核中TCP接收的实现