精华内容
下载资源
问答
  • 宿舍管理系统源代码

    2018-05-05 17:45:28
    根据功能说明,设计其存储结构,数据存储在文件中,界面要求有合理的提示,每个功能可以设立菜单,根据提示可以完成相关的功能要求。在编译、连接与运行程序的过程中,应充分利用调试方法与工具,同时不断总结编写和...
  • 宿舍管理系统需求分析,详细介绍各个环节的流程,以及可行性分析
  • 免费管理软件

    2012-12-14 11:59:41
    软件专为设备管理所开发,能很好服务于企业
  • 宿舍管理系统设计与实现[java毕业论文下载]宿舍管理系统第一章 绪论1.1 课题简介为了便于老师对学生信宿生活的管理,学生资料的整理,和快节奏,高效率的工作环境。所以本次我设计的课题是学生宿舍管理系统。学生...

    宿舍管理系统设计与实现[java毕业论文下载]

    宿舍管理系统

    第一章  绪论

    1.1  课题简介

    为了便于老师对学生信宿生活的管理,学生资料的整理,和快节奏,高效率的工作环境。所以本次我设计的课题是学生宿舍管理系统。学生宿舍管理系统是一项十分方便于学校老师对学生宿舍管理的必备系统。在现实社会的学习生活中,计算机所应用领域无处不在,学生宿舍管理系统将成为老师们管理学生信息资料不可缺少的一个重要的部分,这是非常重要的对于学校的老师们来说,这是一项能为操作员们提供充足的信息和快捷的查询手段的学生宿舍管理系统。长久以来人们都在使用传统人工的方式管理学生资料,这种管理方式存在着许多缺点:效率低、保密性差,另外时间一长,将产生大量的文件和数据,对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学技术日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。在计算机技术越来越普及的今天,掌握和了解相关知识变得更加重要,可行.在各级各类学校中,宿舍的管理是学校工作中的一项重要内容。随着办学规模的扩大和招生人数的增加,这不仅使学生管理的日常工作日趋复杂繁重,而且,对它提出了更高的要求。

    学生宿舍的管理工作也将成为一项十分繁重的工作,建立一个学生宿舍管理系统是非常必要的,可行的。计算机能够极大地提高学生宿舍管理的办事效率,学校要想与先进科学技术接轨,就得科学化、正规化的进行管理。随着社会信息化步伐的加快,社会对人才的要求越来越高,相应的,需要学校的工作越来越周到、全面、先进、高效。本学生宿舍管理信息系统强化了学生管理的职能,涵盖了学生管理、宿舍管理等主要功能,特别是对学生宿舍管理工作进行了提炼和概括, 使学生宿舍管理工作日益规范化、制度化和科学化。学生宿舍管理系统的使用,大大减少了学生处管理者的重复劳动,是学校管理的得力助手。

    1.2  开发目的

    1.要求用户必须输入正确的用户名和密码才能进入系统。

    2.应该提供学生住宿情况的基本登记。

    3.提供人员来访登记及结束访问的详细登记。

    4.统应提供学生在校期间物品出入宿舍楼的详细情况登记。

    5.统应提供查询功能,以方便用户对学生基本信息的查询(实现多种条件的查询)及楼房信息的查询。

    6.统应提供增加、删除、修改用户账户的功能。

    通过计算机进行学生宿舍管理有以下好处:

    1.学生信息,安全、高效,方便,快捷。

    2.迅速查到所需学生信息。

    3.员来访登记及结束访问登记记录十分详细。

    4.化的办公设备便工作人员办事效率越来越高。

    1.3  系统特点

    1.数字化校园,实现校园无纸化管理。

    2. 用户权限分级管理,适合 多用户操作。

    3. 界面完好,功能完善,安全易用。

    1.4  经济可行性

    估算宿舍管理系统的开发费用和今后的运行、维护费用,估算宿舍管理系统将获得的经济和社会效益,并将费用与效益进行比较,看是否有利。例如,宿舍管理系统投入运行后可以提供哪些以前无法及时提供的信息,用户查询和使用信息的方便程度提高多少、速度增加了多少,对于操作人员进行工作提供了多少帮助等等。

    第二章  系统概述

    2.1  系统分析

    系统分析的目的是要明确本宿舍管理系统应实现的目标,即所能实现的功能。系统分析的结果就是系统设计的基础。

    2.2  系统模块简要

    2.2.1  系统管理模块

    系统用户的登陆及验证

    包括不同用户登录

    该系统包括普通用户和系统操作员两种用户登陆方式。

    系统用户进入系统时的身份验证:要求用户必须输入正确的用户名和密码才能进入系统。

    系统用户在不同的页面浏览时的身份验证。

    2.2.2  公寓管理模块

    该系统主要分为楼房管理、宿舍管理、员工管理三个大的部分。

    楼房管理:用户对楼数的统计。

    宿舍管理:用户对宿舍楼的管理。

    员工管理:员工信息的录入,设置初始的操作员的信息。

    该系统主要对楼房楼层,宿舍的查询,员工的增减进行系统的管理。为操作者提供了很好的宿舍情况基本登记。

    2.2.3  信息查询模块

    该系统包括了按学号进行查询、按姓名进行查询、按班级查询、按寝室号查询、每栋楼房住宿情况查询五个部分。

    2.2.4  出入登记模块

    该系统包括了进楼物品登记、出楼物品登记、人员来访登记、结束访问登记四个功能模块。

    2.2.5  信息修改模块

    该系统包括了学生基本信息修改、员工基本信息修改、个人财物信息修改等功能。

    第三章  系统结构图

    根据系统功能的要求,宿舍管理系统分为下述的四个模块:公寓管理系统,信息查询系统,出入登记系统,信息修改系统。可以将系统分解成几个功能模块来分别设计,功能模块之间的关系如图1所示。

    aead022b88d3199208a3e9034ead66ae.png

    图1  系统页面逻辑结构图

    第四章  数据库设计与实现

    4.1  数据库的需求分析

    4.1.1  系统功能设计的要求以及功能模块的划分

    对于系统用户学生信息数据库,可以列出以下数据项和数据结构:

    用户信息:用户ID,学生姓名,学号,性别,出生年月,专业,班级,家庭住址,电话,公寓号,寝室号,有无电话,有无电脑,背褥数,备注。

    4.1.2  老师信息数据库,

    可以列出以下数据项和数据结构:用户信息:用户ID,老师名,编号,性别,出生年月,家庭住址,电话。

    4.1.3  访问信息数据库

    可以列出以下数据项和数据结构:来访人姓名,被访问人员姓名,公寓宿舍号,所属关系,备注,来访时间,离开时间,值班人,证件名称,来访日期。

    4.1.4  操作员信息数据库

    可以列出以下数据项和数据结构:用户ID,用户姓名,密码,Email。

    4.1.5  工作人员信息数据库

    可以列出以下数据项和数据结构:公寓号,楼层,工作人员姓名。

    4.1.6  公寓类型信息数据库

    可以列出以下数据项和数据结构:公寓房间数,学生人数,公寓类型。

    4.1.7  房间信息数据库

    可以列出以下数据项和数据结构:公寓号,房舍号,房间人数,宿舍成员姓名,宿舍所属系

    4.2  数据库的结构创建

    根据数据库的需求分析,建立如下7个数据表:

    4.2.1  用户信息表

    student  表

    35ff4391df444671b705033719c5cb79.png

    4.2.2 管理员信息表

    user  表

    d39068f5706b4bd4fcfb4d7248cf5d2b.png

    4.2.3  公寓信息表

    build  表

    a21fe63ae11691e6e6bb38e670a7546f.png

    4.2.4  宿舍信息表

    042e72a7aaad330f9bb2e6a13b502cba.pngroom  表

    4.2.5  员工信息表

    5347809d618bb7e0ee7ec2ae123b26ec.pngworkers  表

    4.2.6  来访人信息表

    visit  表

    cf49f6e951218ba9744b36f34e51268b.png

    4.2.7  老师信息表

    teacher表

    8728e17bd6ad10bdaa4f02f1710c0647.png

    第五章  实现的模块功能

    5.1  系统管理模块

    5.1.1  用户登录

    只准普通用户登陆。

    5.1.2  管理员登录

    只有具有管理员登陆权限的用户,才能登陆并使用。

    5.2  公寓管理模块

    5.2.1  楼房管理

    管理员可实现添加公寓信息,修改公寓信息。

    5.2.2  宿舍管理

    管理员可实现添加宿舍信息,修改宿舍信息,删除宿舍信息。

    5.2.3  员工管理

    管理员可实现添加员工信息,修改员工信息,删除员工信息。

    5.3  信息查询模块

    5.3.1  按学号进行查询

    本模块可实现管理员可以利用学号来查询学生的信息。

    5.3.2  按姓名进行查询

    本模块可实现管理员可以利用姓名来查询学生的信息。

    5.3.3  按班级进行查询

    本模块可实现管理员可以利用班级信息来查询学生的信息。

    5.3.4  按寝室号进行查询

    本模块可实现管理员可以利用寝室号来查询学生的信息。

    5.3.5  按楼房住宿进行查询

    本模块可实现管理员可以利用楼房号来查询学生的信息。

    5.4  出入登记模块

    5.4.1  人员来访登记

    本模块可实现管理员对来访人员进出公寓的登记。

    5.4.2  结束访问登记

    本模块可实现管理员对来访人员离开公寓的登记。

    5.5  信息修改模块

    5.5.1  学生基本信息修改

    本模块可实现管理员对学生基本信息的修改和添加等操作。

    5.5.2  员工基本信息修改

    本模块可实现管理员对员工基本信息的修改和添加等操作。

    5.5.2  个人财物信息修改

    本模块可实现学生对个人财物信息的修改和添加等操作。

    第六章  后台数据库的配置

    首先,我们要谈的是宿舍管理系统的服务器配问题。本系统便用IIS5.0作为系统服务器。因为便用的是Windows 2000以上版本的操作系统,那么添加IIS5.0服务器非常简单,只需要打开“控制面板”里面的“管理工具”,然后选取择“Internet息服务”选项。

    6.1  如何配置IIS

    右击默认站点,新建虚拟目录,按图6.1--6.3提示进行安装即可。

    c1d1f87b94d21dce0160be3f400790f1.png

    图6.1

    a6aa69d47c84b8f226988b71091fe9e9.png

    图6.2

    7be9e8c9994bf6bd6f4242eb775a3185.png

    图6.3

    6.2  后台数据库的配置方法

    本章系统直接采用了ACCESS文件的相对路径来实现读取数据库的功能。

    第七章  用户登陆页面

    7.1  宿舍管理系统的首页面

    该页面的首页面的功能非常简单,给访问用户一种直观清晰的印象。如图7.1所示

    3824492af3865d3730ef6f2a118c8600.png

    图7.1

    7.2  管理员登陆的页面.

    本页面的主要作是对用户的身份进鉴别。用户通过表单提供登陆信息,系统根据用户提供的信息对用户进行查询鉴别,如果身份合法,则将指引用户导向下一个页面。如果不合法,则无法登陆下一个页面。则将重新导向系统登陆页面。介绍完了登录页面的相关内容,接下来就真正进入到宿舍管理系统的核心部分,即系统管理员操作内容的介绍了。如图7.2所示

    f7e4c8afeeecdd2abaf7a2dc983884b5.png

    图7.2

    7.3  系统管理员管理的页面

    本图显示了系统管理员管理的主页面。主页面上有4个主要链接,分别指向宿舍管理系统的4主要功能模块,即公寓管理系统,信息查询系统,出入登记系统,信息修改系统。如图7.3所示.

    00025e2ac98117bc4c5c79d9667c5443.png

    图7.3

    7.4  公寓管理模块中宿舍管理页面

    7.4.1  页面示例应用

    在这个页面中,用户可以对原来的系统数据库中的宿舍信息进行添加修改。如图7.4所示

    d4c28f727f332a64766bc76b68766cea.png

    图7.4

    宿舍管理系统设计与实现[点击下载]

    展开全文
  • 系统分析与设计实验——宿舍管理系统的工作流程图
  • 企业自有宿舍管理、为企业管理宿舍的服务公司使用。 ●系统的设计原理: 以专业、稳定、易用为主导思想,整个系统围绕铺位及人员为设计思路。 ●系统功能模块简介: 1、 铺位信息: 设置所管理的铺位,每个铺位一...
  • 高校宿舍管理系统

    千次阅读 2021-03-14 12:43:32
    ​ 提到宿舍,现在无论是学校,还是工厂,都是在熟悉不过的了,学生宿舍楼,职工教员工职工宿舍楼等等,每一栋楼房都有很多的房间,每个宿舍分配了多少个床位,住着什么人,那些床位是空的,那些房间是空的,这些...

    高校宿舍管理系统

    1.项目概况

    ​ 提到宿舍,现在无论是学校,还是工厂,都是在熟悉不过的了,学生宿舍楼,职工教员工,职工宿舍楼等等,每一栋楼房都有很多的房间,每个宿舍分配了多少个床位,住着什么人,那些床位是空的,那些房间是空的,这些都需要人员去维护,曾经的我们,通过纸张登记,查看房间信息,房间床位信息,房间少的情况下还好,我们可以一个个进行比对,看登记信息去查看房间信息,床位信息,但是房间多,登记信息多的情况下,或者有人员进行变动,退房,换房的情况下,可就麻烦了我们的宿舍管理员了,我们的宿舍管理员,需要慢慢的进行查找,浪费了时间成本不说,还容易出错,新来的学生或员工需要等待很长时间才能进去入住,在加上现在楼层在逐渐的向高层发展,人员手动管理已经不能满足社会的需要,因而,社会需要更好的工具去管理这些枯燥的的宿舍管理工作,从而宿舍管理系统应用而生。

    ​ 宿舍管理系统,解决了当前人力成本,时间成本问题,可以快速的定位到房间号,宿舍床位号,通过宿舍管理系统,我们只要根据系统的要求去操作,就可以分分钟的时间解决某个宿舍是否满员,可以方便的把人员和宿舍,床位进行绑定,就像我们的身份号似的,都是唯一的,查询起来很方便,相比较起传统的宿舍纸张登记来说,现代化的宿舍管理系统更快捷,更高效,更适应人们快捷化的生活。

    ​ 现在高校的发展和体制不断的进行了完善,所以学校的服务也逐渐有了变化,对于学校宿舍的管理有了新形势的管理模式。学校根据自身的实际情况,对于学生宿舍生活管理的服务进行改善。有些学校因为管理工作的错误,影响了学校里学生的现况,甚至给整个学校造成了负面的影响,而且现在学校管理问题普遍存在。所以现在学校也在建设信息化管理系统,这种管理系统,可以为学校的管理工作和宿舍管理工作带来很好的效果。

    2.项目目标

    2.1新生分配与入住

    在高校新生入住和分配上面,宿舍管理系统优势尽显,通常宿舍管理系统可通过新生预分配和新生入住两个模块实现对新生宿舍入住和宿舍分配的管理,这不但可保证分配入住的科学性,还能提升学生的入住效率,既减轻了人工分配的负担,也简化了学生的入住手续,更好地促进了学校和新生之间的和谐。

    2.2宿舍的全面管理

    通过对宿舍管理系统进行优化,高校宿舍的管理工作可细化成若干个系统的小模块,宿舍管理工作的细化在利于学生便捷高校入住的同时还让高校宿舍管理的智能化和信息化得到了进一步的彰显,通过对宿舍管理系统的全面优化,从整栋宿舍楼的整体管理到每一个床位的每一个角落都会实现整齐划一的管理。

    楼->单元->层->宿舍->床位

    2.3数据科学统计和分析

    宿舍管理系统中记载着整栋宿舍楼的和全部入住学生的相关信息,通过其完善智能的信息统计功能,高校或者宿舍管理者可对每个楼层的入住情况、每个房间的入住信息数据实现一键查看,不用再通过一步步、一级级地层层询问来获取相关信息,这在很大程度上促进了宿舍信息的共享。

    2.4精细化管理

    宿舍考勤,管理员,多角色管理,一目了然。寄宿生管理,班级,楼层、宿舍号精确考勤。床位分配管理,楼、栋管理员都有相对应的权限。就寝时间段可设置,班主班可随时关注住宿学生情况及时报表发送至班主任手机。

    2.5接口拓展功能

    系统预留的接口可与宿舍其他的智能设施实现对接,如宿舍管理系统可连接宿舍的考勤门禁系统和迎新收费系统,可真正通过计算机管理系统的运用实现智能化校园的建设。

    3.项目功能

    3.1 项目角色(参与者)

    • 超级管理员(拥有系统最高的权限)

    • 宿管员(宿舍管理员:对宿舍进行管理,按楼宇进行管理)

    • 学生(在线预选宿舍)

      详见思维导图(xmind文件 )

    3.1 项目功能

    • 基础资料
      • 用户管理(管理员、宿管员管理)
      • 年级管理
      • 学院、系、专业、班级(统称为组织机构)
      • 学生管理
      • 公告管理
    • 宿舍管理
      • 楼宇管理
      • 楼层管理
      • 宿舍管理(批量初始化、CURD)
      • 床位管理(入住、调换、退宿)
    • 预选宿舍
      • 预选设置
      • 预选操作
    • 缺勤、请假管理
      • 缺勤登记(影响床位状态)
      • 请假登记(影响床位状态)
    • 来访人员管理
      • 登记来访信息
      • 查询来访信息
    • 报修管理
      • 报修申请
      • 状态审批
      • 报修查询
    • 报表/图表管理
      • excel报表
      • echarts图表显示

    4.数据库设计

    数据库设计软件PowerDesigner

    安装:百度一下PowerDesigner的安装教程

    PowerDesigner与Navicate的区别

    • PowerDesigner重在可视化的设计
    • Navicate就是一个数据库的可视化客户端工具

    详见pdm图

    5.项目技术路线

    后端采用SpringBoot

    前端采用LayUI(在开发前端期间不涉及任何前后端页面跳转,只通过json数据传输,前后数据校验采用JWT)

    数据库采用MySQL(5.5至8.0)

    开发IDE:Idea、webstorme

    请求校验:JWT

    该项目支持三个版本

    • 前后端分离(SpringBoot+LayUI)(前后端来回切换台费劲,容易混淆)
    • SpringBoot版本前后端不分离(快速开发调试)
    • SSM版前后端不分离(需要将SpringBoot的配置重新按照xml的 格式配置一遍)

    6.项目搭建

    <mirror> 
        <id>alimaven</id> 
        <name>aliyun maven</name> 
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
        <mirrorOf>central</mirrorOf> 
    </mirror>
    
    • public:静态html文件

    • static:静态css、js等文件

    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/dormitory?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false
        username: root
        password: 123456
    server:
      port: 8888
      servlet:
        context-path: /dormitory
    

    7.整合Mybatis

    在pom.xml中引入starter

    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.4</version>
    </dependency>
    
    配置Mapper目录
    mybatis:
      mapper-locations: com/yanzhen/mapper/*.xml
    打印SQL输出到控制台
    logging:
      level:
        com:
          yanzhen:
            mapper: debug
    

    8.Mybatis分页

    引入相关的jar

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.3.0</version>
    </dependency>
    

    配置yml文件

    pagehelper:
      helper-dialect: mysql
    
    public class Entity {
    
        private Integer page;//页码数
        private Integer limit = 10;//页面大小,默认的10
    
        public Integer getPage() {
            return page;
        }
    
        public void setPage(Integer page) {
            this.page = page;
        }
    
        public Integer getLimit() {
            return limit;
        }
    
        public void setLimit(Integer limit) {
            this.limit = limit;
        }
    
    }
    

    9.代码生成器

    entity

    package ${data.packageName}modules.${data.moduleName}.entity;
    
    import javax.validation.constraints.NotNull;
    import org.hibernate.validator.constraints.Length;
    import com.yanzhen.utils.Entity;
    import java.util.Date;
    
    
    /**
     * ${data.classAnnotation}
     * @author ${data.author}
     * @time ${data.createTime}
     */
    public class ${data.entityName} extends Entity{
    
    <#list data.datas as item>
    	/**
    	 * ${item.annotation}
    	 */
    	<#if item.type == "String" && item.field !="id">
    	@Length(max = ${item.typeLength?c})
    	</#if>
    	private ${item.type} ${item.field};
    </#list>
    
    <#list data.datas as item>
    	public ${item.type} get${item.fieldUpper}() {
    		return ${item.field};
    	}
    	public void set${item.fieldUpper}(${item.type} ${item.field}) {
    		this.${item.field} = ${item.field};
    	}
    </#list>
    }
    

    mapper

    package ${data.packageName}.mapper;
    
    import java.util.List;
    import java.util.Map;
    
    import ${data.packageName}.entity.${data.entityName};
    
    public interface ${data.entityName}Mapper {
    
    	public int create(${data.entityName} ${data.objectName});
    
    	public int delete(Integer id);
    
    	public int update(${data.entityName} ${data.objectName});
    
    	public int updateSelective(${data.entityName} ${data.objectName});
    
    	public List<${data.entityName}> query(${data.entityName} ${data.objectName});
    
    	public ${data.entityName} detail(Integer id);
    
    	public int count(${data.entityName} ${data.objectName});
    
    }
    

    mapper.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="${data.packageName}.mapper.${data.entityName}Mapper">
    
    	<resultMap type="${data.packageName}.entity.${data.entityName}" id="${data.entityName}">
    		<id column="id" property="id"/>
    		<#list data.datas as item>
    		<#if item.column == "id"><#continue></#if>
    		<result column="${item.column}"  property="${item.field}"/>
    		</#list>
    	</resultMap>
    
    	<insert id="create" keyProperty="id" useGeneratedKeys="true" parameterType="${data.packageName}.entity.${data.entityName}">
    		insert into ${data.tableName}(
    		<#list data.datas as item>
    			<#if item.column == "id"><#continue></#if>
    			${item.column}<#if item_index!=(data.datas?size-1)>,</#if>
    		</#list>
    		)values(
    		<#list data.datas as item>
    			<#if item.column == "id"><#continue></#if>
    			<#noparse>#{</#noparse>${item.field}<#noparse>}</#noparse><#if item_index!=(data.datas?size-1)>,</#if>
    		</#list>
    		)
    	</insert>
    
    	<select id="query" resultMap="${data.entityName}">
    		select * from ${data.tableName}
    		<include refid="${data.entityName}FindCriteria"/>
    	</select>
    
    	<select id="count" resultType="int">
    		select count(1) from ${data.tableName}
    		<include refid="${data.entityName}FindCriteria"/>
    	</select>
    
    	<select id="detail" resultMap="${data.entityName}">
    		select * from ${data.tableName} where id = <#noparse>#{id}</#noparse>
    	</select>
    
    	<delete id="delete">
    		delete from ${data.tableName} where id = <#noparse>#{id}</#noparse>
    	</delete>
    	<update id="update">
    		update ${data.tableName} set
    		<#list data.datas as item>
    			<#if item.column == "id"><#continue></#if>
    			${item.column}=<#noparse>#{</#noparse>${item.field}<#noparse>}</#noparse><#if item_index!=(data.datas?size-1)>,</#if>
    		</#list>
    		where id = <#noparse>#{id}</#noparse>
    	</update>
    
    	<update id="updateSelective">
    		update ${data.tableName} set
    		<#list data.datas as item>
    		<#if item.column == "id"><#continue></#if>
    		<#if item.type == "String" || item.type == "Date">
    			<if test="${item.field} != null and ${item.field} != ''"> ${item.column} = <#noparse>#{</#noparse>${item.field}<#noparse>}</#noparse></if><#if item_index!=(data.datas?size-1)>,</#if>
    		<#else>
    			<if test="${item.field} != null">${item.column} = <#noparse>#{</#noparse>${item.field}<#noparse>}</#noparse></if><#if item_index!=(data.datas?size-1)>,</#if>
    		</#if>
    		</#list>
    		where id = <#noparse>#{id}</#noparse>
    	</update>
    
    	<sql id="${data.entityName}FindCriteria">
    		<where>
    		<#list data.datas as item><#if item.type == "Date"><#continue></#if>
    		<#if item.type == "String">
    			<if test="${item.field} != null and ${item.field} != ''">and ${item.column} = <#noparse>#{</#noparse>${item.field}<#noparse>}</#noparse></if>
    		<#else>
    			<if test="${item.field} != null">and ${item.column} = <#noparse>#{</#noparse>${item.field}<#noparse>}</#noparse></if>
    		</#if>
    		</#list>
    		</where>
    	</sql>
    
    </mapper>
    

    service

    package ${data.packageName}.service;
    
    import com.yanzhen.mapper.${data.entityName}Mapper;
    import com.yanzhen.entity.${data.entityName};
    import com.github.pagehelper.PageHelper;
    import com.github.pagehelper.PageInfo;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    @Service
    public class ${data.entityName}Service {
    
        @Autowired
        private ${data.entityName}Mapper ${data.objectName}Mapper;
    
        public int create(${data.entityName} ${data.objectName}) {
            return ${data.objectName}Mapper.create(${data.objectName});
        }
    
        public int delete(Integer id) {
            return ${data.objectName}Mapper.delete(id);
        }
    
        public int update(${data.entityName} ${data.objectName}) {
            return ${data.objectName}Mapper.update(${data.objectName});
        }
    
        public int updateSelective(${data.entityName} ${data.objectName}) {
            return ${data.objectName}Mapper.updateSelective(${data.objectName});
        }
    
        public PageInfo<${data.entityName}> query(${data.entityName} ${data.objectName}) {
            if(${data.objectName} != null && ${data.objectName}.getPage() != null){
                PageHelper.startPage(${data.objectName}.getPage(),${data.objectName}.getLimit());
            }
            return new PageInfo<${data.entityName}>(${data.objectName}Mapper.query(${data.objectName}));
        }
    
        public ${data.entityName} detail(Integer id) {
            return ${data.objectName}Mapper.detail(id);
        }
    
        public int count(${data.entityName} ${data.objectName}) {
            return ${data.objectName}Mapper.count(${data.objectName});
        }
    }
    
    

    10.前端

    Layui+Layuimini 单页版V2

    Layuimini:基于Layui编写的一套最简洁、易用的后台框架模板(基本上与LayuiAdminPro功能上类似)

    整合部分详见视频+代码

    11.前后端分离项目

    • ajax(前端实现类似拦截器这样的效果比较差,改动代码太多)
    • axios(易用、简洁且高效的http库)

    http://www.axios-js.com/zh-cn/docs/

    Promise(不太了解的同学看一下即可)

    特性

    • 从浏览器中创建 XMLHttpRequests
    • 从 node.js 创建 http 请求
    • 支持 Promise API
    • 拦截请求和响应
    • 转换请求数据和响应数据
    • 取消请求
    • 自动转换 JSON 数据
    • 客户端支持防御 XSRF

    12.Layui集成Axios

    //前后端分离的项目 数据传输的验证采用token
    
    axios.interceptors.request.use(function(config){
        config.headers.token="zzzzzzzzzzzzzzzz";//与后端交互的时候还需要处理
        return config;
    },function(error){
        return Promise.reject(error);
    });
    
    
    axios.interceptors.response.use(function(response){
        console.log(response.headers['content-type']);与后端交互的时候还需要处理
        if(response.status==200){
            const res = response.data;
            if(res.code==0){ //后端返回的数据为0的时候为正常数据
                return res;
            }else{
                return Promise.reject(res.msg);
            }
        }else{
            return Promise.reject(response.statusText);
        }
    },function(error){
        return Promise.reject(error);
    });
    
    

    13.登录页面与主页

    • 前端项目的分包结构
    • 掌握调整js、css、images文件路径

    14.登录功能

    form.on('submit(login)', function (data) {
        data = data.field;
        console.log(data);
        axios({
            method: 'post',
            url: 'http://localhost:8888/dormitory/login',
            data: data
        }).then(function(data){
            console.log(data);
        }).catch(function(error){
            console.log(data);
        });
        return false;
    });
    

    15.跨域处理

    @Configuration
    public class MyWebMvcConfigurer implements WebMvcConfigurer {
    
        //使用CorsFilter解决跨域的问题
        @Bean
        public CorsFilter corsFilter(){
            CorsConfiguration corsConfiguration = new CorsConfiguration();
            //允许跨域请求的域名
            corsConfiguration.addAllowedOrigin("*");
            corsConfiguration.addAllowedMethod("*");
            //允许任何头部
            corsConfiguration.addAllowedHeader("*");
            UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
            urlBasedCorsConfigurationSource.registerCorsConfiguration("/**",corsConfiguration);
            CorsFilter corsFilter = new CorsFilter(urlBasedCorsConfigurationSource);
            return corsFilter;
        }
    }
    
    

    16.基于Token的身份验证

    ​ 参考网页

    ​ https://www.cnblogs.com/Jason-Xiang/p/9808596.html

    ​ http://tool.chinaz.com/Tools/Base64.aspx

    • HTTP Basic Auth

      HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外开放的RESTful API时,尽量避免采用HTTP Basic Auth。

    • Cookie Auth

      Cookie认证机制就是为一次请求认证在服务端创建一个Session对象,同时在客户端的浏览器端创建了一个Cookie对象(jsessionId);通过客户端带上的Cookie对象来与服务器端的session对象匹配来实现状态管理的。默认的,当我们关闭浏览器的时候,cookie会被删除。但可以通过修改cookie 的expire time使cookie在一定时间内有效。

    • 基于 Token 的身份验证方法

      使用基于 Token 的身份验证方法,大概的流程是这样的:

      1. 客户端使用用户名跟密码请求登录
      2. 服务端收到请求,去验证用户名与密码
      3. 验证成功后,服务端会签发一个 Token然后保存(缓存或者数据库),再把这个 Token 发送给客户端
      4. 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里
      5. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
      6. 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据

      Token机制相对于Cookie机制又有什么好处呢?

      • 支持跨域访问: Cookie是不允许垮域访问的,这一点对Token机制是不存在的,前提是传输的用户认证信息通过HTTP头传输.
      • 无状态(也称:服务端可扩展行):Token机制在服务端不需要存储session信息,因为Token 自身包含了所有登录用户的信息,只需要在客户端的cookie或本地介质存储状态信息.
      • 更适用CDN: 可以通过内容分发网络请求你服务端的所有资料(如:javascript,HTML,图片等),而你的服务端只要提供API即可.
      • 去耦: 不需要绑定到一个特定的身份验证方案。Token可以在任何地方生成,只要在你的API被调用的时候,你可以进行Token生成调用即可.
      • 更适用于移动应用: 当你的客户端是一个原生平台(iOS, Android,Windows 8等)时,Cookie是不被支持的(你需要通过Cookie容器进行处理),这时采用Token认证机制就会简单得多。
      • CSRF:因为不再依赖于Cookie,所以你就不需要考虑对CSRF(跨站请求伪造)的防范。
      • 性能: 一次网络往返时间(通过数据库查询session信息)总比做一次HMACSHA256计算 的Token验证和解析要费时得多.
      • 基于标准化:你的API可以采用标准化的 JSON Web Token (JWT). 这个标准已经存在多个后端库(.NET, Ruby, Java,Python, PHP)和多家公司的支持(如:Firebase,Google, Microsoft).

      基于JWT(JSON WebToken)的Token认证机制实现

      实现Token 验证的方法挺多的,还有一些标准规范,其中JSON Web Token(JWT)是一个非常轻巧的规范 。JWT 标准的 Token 有三个部分:

      • header(头部)
      • payload(数据)
      • signature(签名)

      中间用点分隔开,并且都会使用 Base64 编码,所以真正的 Token 看起来像这样:

      eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJuaW5naGFvLm5ldCIsImV4cCI6IjE0Mzg5NTU0NDUiLCJuYW1lIjoid2FuZ2hhbyIsImFkbWluIjp0cnVlfQ.SwyHTEx_RQppr97g4J5lKXtabJecpejuef8AqKYMAJc
      

      Header

      每个 JWT token 里面都有一个 header,也就是头部数据。里面包含了使用的算法,这个 JWT 是不是带签名的或者加密的。主要就是说明一下怎么处理这个 JWT token 。

      头部里包含的东西可能会根据 JWT 的类型有所变化,比如一个加密的 JWT 里面要包含使用的加密的算法。唯一在头部里面要包含的是 alg 这个属性,如果是加密的 JWT,这个属性的值就是使用的签名或者解密用的算法。如果是未加密的 JWT,这个属性的值要设置成 none

      示例:

      {
        "alg": "HS256"
      }
      

      意思是这个 JWT 用的算法是 HS256。上面的内容得用 base64url 的形式编码一下,所以就变成这样:

      eyJhbGciOiJIUzI1NiJ9
      

      Payload

      Payload 里面是 Token 的具体内容,这些内容里面有一些是标准字段,你也可以添加其它需要的内容。下面是标准字段:

      • iss:Issuer,发行者
      • sub:Subject,主题
      • aud:Audience,观众
      • exp:Expiration time,过期时间
      • nbf:Not before
      • iat:Issued at,发行时间
      • jti:JWT ID

      比如下面这个 Payload ,用到了 iss 发行人,还有 exp 过期时间这两个标准字段。另外还有两个自定义的字段,一个是 name ,还有一个是 admin

      {
       "iss": "nihao.net",
       "exp": "1438955445",
       "name": "wanghao",
       "admin": true
      }
      

      使用 base64url 编码以后就变成了这个样子:

      eyJpc3MiOiJuaW5naGFvLm5ldCIsImV4cCI6IjE0Mzg5NTU0NDUiLCJuYW1lIjoid2FuZ2hhbyIsImFkbWluIjp0cnVlfQ
      

      Signature

      JWT 的最后一部分是 Signature ,这部分内容有三个部分,先是用 Base64 编码的 header.payload ,再用加密算法加密一下,加密的时候要放进去一个 Secret ,这个相当于是一个密码,这个密码秘密地存储在服务端。

      • header
      • payload
      • secret
      const encodedString = base64UrlEncode(header) + "." + base64UrlEncode(payload); 
      HMACSHA256(encodedString, 'secret');
      

      处理完成以后看起来像这样:

      SwyHTEx_RQppr97g4J5lKXtabJecpejuef8AqKYMAJc
      

      最后这个在服务端生成并且要发送给客户端的 Token 看起来像这样:

      eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJuaW5naGFvLm5ldCIsImV4cCI6IjE0Mzg5NTU0NDUiLCJuYW1lIjoid2FuZ2hhbyIsImFkbWluIjp0cnVlfQ.SwyHTEx_RQppr97g4J5lKXtabJecpejuef8AqKYMAJc
      

      客户端收到这个 Token 以后把它存储下来,下回向服务端发送请求的时候就带着这个 Token 。服务端收到这个 Token ,然后进行验证,通过以后就会返回给客户端想要的资源。

      JWT的JAVA实现

      Java中对JWT的支持可以考虑使用JJWT开源库;JJWT实现了JWT, JWS, JWE 和 JWA RFC规范

      <dependency>
          <groupId>io.jsonwebtoken</groupId>
          <artifactId>jjwt</artifactId>
          <version>0.9.1</version>
      </dependency>
      

      jwtutils通用类的封装

      package com.yanzhen.framework.jwt;
      
      import com.yanzhen.entity.User;
      import com.yanzhen.framework.exception.MyException;
      import io.jsonwebtoken.*;
      import org.springframework.util.StringUtils;
      
      import java.util.Date;
      import java.util.HashMap;
      import java.util.Map;
      import java.util.UUID;
      
      /**
       * jwt的工具类
       */
      public class JWTUtil {
      
          public static String token = "token";
          //秘钥
          public static String jwt_secret="yanzhen@cms@cc596183363.";
          //过期时长
          public static long jwt_expr = 3600*24*1000;
      
          //1、生成token
          public static String sign(User user){
      
              //1、指定签名的时候使用的签名算法
              SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
              //2、生成签发时间
              long nowMillis = System.currentTimeMillis();
              Date date = new Date(nowMillis);
      
              //3、创建playLoad的私有声明
              Map<String,Object> claims = new HashMap<>();
              claims.put("id",user.getId());
              claims.put("userName",user.getUserName());
              //4、生成签发人
              String subject = user.getUserName();
      
              JwtBuilder builder = Jwts.builder()
                      .setClaims(claims)
                      .setId(UUID.randomUUID().toString())
                      .setIssuedAt(date)
                      .setSubject(subject)
                      .signWith(signatureAlgorithm,jwt_secret);
              //设置过期时间
              Date exprDate = new Date(nowMillis + jwt_expr);
              builder.setExpiration(exprDate);
              return builder.compact();
          }
      
          //2、验证token
          public static boolean verify(String token){
              try {
                  if(StringUtils.isEmpty(token)){
                      return false;
                  }
                  Jwts.parser().setSigningKey(jwt_secret).parseClaimsJws(token).getBody();
                  return true;
              } catch (Exception e) {
                  e.printStackTrace();
                  return false;
              }
          }
          //3、获取用户信息
      
          public static User getUser(String token){
              try {
                  if(StringUtils.isEmpty(token)){
                      throw new MyException("token不能为空");
                  }
                  if(verify(token)){
                      Claims claims = Jwts.parser().setSigningKey(jwt_secret).parseClaimsJws(token).getBody();
                      User user = new User();
                      user.setId(Integer.parseInt(claims.get("id")+""));
                      user.setUserName(claims.get("userName")+"");
                      return user;
                  }else{
                      throw new MyException("超时或不合法token");
                  }
              } catch (Exception e) {
                  throw new MyException("超时或不合法token");
              }
          }
      
      
          public static void main(String[] args) {
              User user = new User();
              user.setId(1);
              user.setUserName("admin");
              System.out.println(sign(user));
          }
      
      }
      

    17.token应用

    @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
            String token = request.getHeader(JWTUtil.token);
            //根据token获取user对象
            User user = JWTUtil.getUser(token);
            if(user == null){
                throw  new MyException("超时或不合法的token");
            }
            String newToken = JWTUtil.sign(user);
            response.setHeader(JWTUtil.token,newToken);
            //很重要
            response.setHeader("Access-Control-Expose-Headers", JWTUtil.token);
            request.setAttribute("user",user);
            return true;
        }
    
    axios.interceptors.response.use(function(response){
        if(response.headers.token){
            store.setToken(response.headers.token);
        }
        if(response.status==200){
            const res = response.data;
            if(res.code==200){ //后端返回的数据为200的时候为正常数据
                return res;
            }else{
                return Promise.reject(res.msg);
            }
        }else{
            return Promise.reject(response.statusText);
        }
    },function(error){
        return Promise.reject(error);
    });
    

    18.用户管理

    19.年级管理

    20.组织机构

    • ztree
    • layui集成ztree
    • 实现对ztree节点的curd
    • 数据库设计方面满足tree型结构(parentId)
    • 所有的叶子节点都是班级
    layui集成ztree
    layui.define(['jquery'],function(exports){
    let jQuery = layui.jquery;
    ...
    
    
    layui.link(layui.cache.base+'ztree/zTreeStyle.css')
     exports("ztree",jQuery.fn.zTree)
    });
    
    
    layui.config({
        base: rootPath + "lay-module/",
        version: true
    }).extend({
        miniAdmin: "layuimini/miniAdmin", // layuimini后台扩展
        miniMenu: "layuimini/miniMenu", // layuimini菜单扩展
        miniPage: "layuimini/miniPage", // layuimini 单页扩展
        miniTheme: "layuimini/miniTheme", // layuimini 主题扩展
        miniTongji: "layuimini/miniTongji", // layuimini 统计扩展
        step: 'step-lay/step', // 分步表单扩展
        treetable: 'treetable-lay/treetable', //table树形扩展
        tableSelect: 'tableSelect/tableSelect', // table选择扩展
        iconPickerFa: 'iconPicker/iconPickerFa', // fa图标选择扩展
        echarts: 'echarts/echarts', // echarts图表扩展
        echartsTheme: 'echarts/echartsTheme', // echarts图表主题扩展
        wangEditor: 'wangEditor/wangEditor', // wangEditor富文本扩展
        layarea: 'layarea/layarea', //  省市县区三级联动下拉选择器
        axios: 'axios/axios', //  axios
        store: 'store/store', //  store
        ztree: 'ztree/ztree', //  axios
    });
    
    ztree操作
    • 实现树形的CURD
    • 树形采用异步还非异步

    21.功能菜单权限设置

    • 管理员设置
      • 所有功能菜单、数据权限
    • 宿管员设置
      • 为每个宿管员单独设置功能菜单权限
      • 拥有自己的数据权限
        • 楼宇管理
          • 楼层
          • 宿舍
          • 学生

    22.学生管理

    • 基础信息(管理员)

    23.楼宇管理

    24.宿舍管理

    25.宿舍编号设置

    26.宿舍初始化

    展开全文
  • 坚石宿舍管理系统

    2016-03-06 22:44:05
    软件是为中小企业,学校的宿舍管理提供的一款免费软件,它可以管理房间信息,入住员工的信息,提供各种查询功能
  • 学生宿舍信息管理系统

    万次阅读 多人点赞 2020-12-31 15:20:16
    适合学校的宿舍管理人员使用。本系统实现以下基本功能:管理员可以对公寓进行全程管理,不仅可以管理学生,还可以管理寝室人员及外来人员及出入物品,也能方便的进行统计和更改。把软件工程中规范化的软件开发方法...

    一、系统概述
    1.系统介绍

    本系统专门针对学校的公寓管理而开发的一个功能齐全、操作简单的学生公寓管理系统。适合学校的宿舍管理人员使用。本系统实现以下基本功能:管理员可以对公寓进行全程管理,不仅可以管理学生,还可以管理寝室人员及外来人员及出入物品,也能方便的进行统计和更改。把软件工程中规范化的软件开发方法应用到本次学生公寓管理系统的开发过程中,以经济地开发出高质量的软件并有效地维护它。
    2.开发的目的
    由于现今的学生公寓管理非常繁琐,通常为手工操作,行政人员付出大量的工作时间,得到的效率很低。因此为提高工作效率,减轻校方人员的工作负担,决定开发学生公寓管理系统软件。
    开发此学生公寓系统管理软件,以供教学人员及操作者进行学生宿舍管理,方便操作者随时添加、查询、修改等。为了我们提高软件开发的能力,提高工作设计思想,通过本次的工程开发及与辅助老师交流,使小组成员从中学习知识吸取经验。为今后高层次的软件开发准备知识。
    二、可行性分析
    在一个项目实施之前﹐第一步要先对将要实拖的项目进行可行性分析﹐确定此项目是不是值得进行。可行性﹐顾名思义﹐就是分析这个项目、工程、方案等可行、可以施行。并且具有必要性、迫切性、科学性等,不但能产生客观经济效益﹐在生产之后能产生巨大社会效益、生态效益﹐带来利润。可行性分析的目的就是用最科学﹐最经济的方法去解决问题。
    1.技术可行性
    在目前的科学技术水平条件下,已经成功地创建了众多复杂的管理信息系统,而宿舍管理信息系统与这些系统而言是十分简单的系统。因此,建立一个供学校内部使用的学生宿舍管理信息系统,在技术上不存在实质性的障碍。本系统应用程序采用面向对象技术、数据库技术等先进技术开发,现有的开发技术已非常成熟,且被广泛的应 用于各行各业,利用现有技术完全可以达到功能目标。因此从技术方面讲开发此系统是可行。
    2.市场可行性
    学生宿舍管理系统主要是为了解决学校的学生管理问题,并且减轻行政人员的工作负担。特别是当前学校管理学生公寓的相关软件尚不多,且功能少,不完善,升级困难,操作不方便。
    本系统是针对广大学校公寓管理情况开发的公寓管理系统,适合广大学校需求,它追求的是简单、易学、易懂、易用,易升级,能够更有利的解决行政人员的负担,因而市场是相当光明的。
    3.经济可行性
    主要从对项目的经济上进行分析,支出费用主要包括设备的购置费用、管理与维护费用、还有人员的工资和培训费等等。这是个中级别的软件管理系统﹐就投入的人力﹐财力与物力来讲所用费用并不是很大,但是受益是巨大的,本系统所带来的是学生安全的保障,因而构建学生宿舍管理信息系统 在经济上是完全可行的。
    4.可行性分析结论
    通过经济、技术、市场等方面的可行性分析,开发学生宿舍管理系统,经济合理、技术可行、符合现有的各项政策法规,可以立即进行信息系统的开发。
    三、需求分析
    1.结构化需求分析
    图形化界面、可操作性强:图形化界面、操作简单是图书管理系统 最基本的要求之一。管理员对系统的操作只需要鼠标和少量的键盘输入,加上界面和菜单显而易见,所以即使是计算机基础很差的用户经过简单的培训后,都能很快的熟练操作。
    简便的维护手段:系统使用后,维护工作将是一个长期的工作,系统将充分维护工作的需求, 通过相应手段降低维护工作量及难度, 从而达到保证运行可靠及节省费用的目的。
    功能性:该系统将具有强大的功能性,能满足学校对学生宿舍信息管理的基本需要,发挥计算机管理优势。 当用户操作出现错误时,系统将提示警告。用户界面应该更加人性化,例如表格的行数很多时,应该给当前行加高亮度,以突出显示。对于比较谨慎的删除操作,必须经过一次确认才能删除。系统应该做一些容量上,功能上的预留,以满足今后系统升级的需要。本系统总体功能比较简单,能满足一些基本的需求,但是应该考虑到今后可能的升级。
    2.系统需求说明
    需求分析处于软件开发过程的开始阶段, 它对于整个软件开发过程以及软件产品质量至关重要,一个系统的产生最重要的就是要知道用户的需求,才能按照用户想要的进行改进。
    本设计要实现的是高校学生宿舍管理系统,在设计该系统时,应尽可能的贴近学生,便于用户操作。系统在实现上应该具有如下功能:
    (1)系统要求用户必须输入正确的用户名和密码才能进入系统;
    (2)系统应该提供学生住宿情况的基木登记。
    (3)系统应提供人员来访登记及结束访问的详细登记。
    (4)系统应提供学生在校期间物品出入宿舍楼的详细情况登记。
    (5)系统应提供查询功能,以方便用户对学生基本信息的查询 (要实现按多种条件的查询)及楼房信息的查询。
    (6)系统应提供增加、删除、修改用户帐户的功能。
    3.系统功能需求分析
    在整体设计中,我们将宿舍管理系统分为六个大的功能:系统管理功能、公寓管理功能信息查询功能、出入登记功能、信息修改功能。
    系统管理功能包括:用户登录、用户密码修改、用户管理、退出系统五个部分。
    公寓管理功能包括:楼房管理、宿舍管理、员工管理三个大的部分。
    信息查询功能基本上包括:按学号进行查询、按姓名进行查询、按班级查询、按寝室号查询、每栋楼房住宿情况查询五个部分。
    出入登记功能包括:进楼物品登记、出楼物品登记、人员来访登记、结束访问登记四个功能部分。
    信息修改功能包括:学生基本信息修改、员工基本信息修改等。
    4.系统流程图
    在这里插入图片描述
    5.数据流图和数据字典
    在这里插入图片描述
    数据字典是关于数据的信息的集合,也就是对数据中包含的所有元素的定义的集合,它为软件开发人员提供数据库设计的参考,并为用户了解系统时作为一个必有工具。
    本数据字典主要定义数据字典5个主要字段内容,具体说明如下:
    (1)名字:数据元素的名字,作为在数据流图中的标识符,显示数据流的内容。
    (2)别名:数据元素的另一个名字,其作用是对于
    a.对于同样的数据,不同的用户使用了不同的名字;
    b.小组开发人员可能对同一数据使用了不同的名字;
    c.小组不同的开人员对同一数据流使用了不同的名字;
    (3)描述:是对这个名字代表的数据流进行简要的描述,以加深理解;
    (4)定义:对这个名字代表数据流的详细定义其组成部分;
    (5)位置:表示这个数据流的来源;
    以下是数据流图中部分的数据信息的数据字典
    管理员=[普通用户│超级用户]
    事务=[系统事务|公寓事务|学生事务|出入事务]
    接收事务=事务命令+事务
    系统事务=[修改密码|用户管理]
    公寓事件=[楼房管理|员工管理|宿舍管理]
    学生事务=[学生信息查询|公寓信息查询]
    出入事务=[外来人员登记|物品出入登计]
    6.细化数据流图和数据字典
    表符号说明:
    T1:用户表 T2:学生基本情况表 T3:学生住宿表
    T4:寝室表 T5:员工表 T6:人员来访表
    T7:物品出入表 T8:楼房表
    6.1系统管理数据流图
    在这里插入图片描述

    6.2公寓管理数据流图
    在这里插入图片描述
    员工信息数据字典:
    员工信息=员工号+姓名+年龄+性别+楼房号+职位+家庭住址+联系方式+备注
    员工号=3{字符}11
    姓名=6{字符}11
    年龄=2{数字}3
    性别=[F |M]
    楼房号=2{数字}3
    职位=4{字符}20
    家庭住址=8{字符}100
    联系方式=11{数字}11
    备注=0 {字符}256
    寝室信息数据字典:
    寝室信息=寝室号+居住性别+应住人数+实住人数+住宿费用+电话+备注
    寝室号=10{字符}10
    居住性别=[F|M]
    应住人数=2{数字}2
    实住人数=2{数字}2
    住宿费用=4{数字}4
    电话=11{数字}11
    备注=0{字符}256
    楼房信息数据字典:
    楼房信息=楼房号+房间数+楼层数+应住人数
    楼房号=10{字符}10
    房间数=3{数字}10
    楼层数=2{数字}2
    应住人数=4{数字}4
    6.3出入登记管理数据流图
    在这里插入图片描述
    6.4学生管理数据流图
    在这里插入图片描述
    四、系统设计
    1.系统E-R图

    在这里插入图片描述
    实体属性:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    根据 E-R图可以抽象出以下表,其中字段名称以及数据类型如下所示:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    2.系统功能结构图
    在这里插入图片描述
    五、系统测试
    考虑到各种因素和条件的限制,我们决定采用黑盒测试方案。即我们不考虑所编写程序的具体结构,而是根据软件所需要的输入数据的格式以及应该完成的功能,设计一些合法的测试用例和不合法的测试用例,特别是根据边界条件设计一些边界测试用例。以检查系统是否能正确的完成预订功能,得到希望的输出。或者是对不合法的输入和操作能够正确的识别和防御。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 项目编号:Java+MySQL spring244-基于springboot的新生宿舍管理系统#毕业设计 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架:springboot+vue 每年都有大量的新生...

    项目编号:Java+MySQL spring244-基于springboot的新生宿舍管理系统#毕业设计

    开发语言:Java

    开发工具:IDEA /Eclipse

    数据库:MYSQL5.7

    应用服务:Tomcat7/Tomcat8

    使用框架:springboot+vue

    每年都有大量的新生需要入住到宿舍,如何给新生一个更好的住宿体验是当前很多高校一直以来研究的问题,通过互联网实现新生宿舍的信息化,智能化管理无疑是很多高校的不二之选,本系统也是处于这样的目的进行开发的

    本系统则旨在通过标签分类管理等方式,实现管理员:首页、个人中心、公告信息管理、院系管理、班级管理、学生管理、宿舍信息管理、宿舍安排管理、卫生检查管理、报修信息管理、报修处理管理、缴费信息管理,学生;首页、个人中心、公告信息管理、宿舍安排管理、卫生检查管理、报修信息管理、报修处理管理、缴费信息管理等功能

     

     

     

     

     

     

    展开全文
  • 从经济,技术,社会三个方面分析宿舍管理系统所写的分析报告,希望能帮到大家~!
  • 人力资源管理软件(完全免费)

    千次下载 热门讨论 2011-03-08 11:36:20
    人力资源管理软件提供了工号修改功能(在员工管理窗口的功能菜单下)(感谢中秋月,方方) 员工资料增加了离职原因信息 人力资源管理软件增加了离职分析报表 打印模板设计进行了优化,支持分类管理(人力资源软件) ...
  • 本课题要实现的是高校学生宿舍管理系统,在设计该系统时,应尽可能的贴近学生,便于用户操作。系统在实现上应该具有如下功能: (1)系统要求用户必须输入正确的用户名和密码才能进入系统。 (2)系统应该提供学生住宿...
  • 通过使用学生宿舍管理系统不仅可以降低人工成本,而且在管理上也可以得到很好的提升。以前在宿舍记录管理中,最容易出错的环节,就是登陆人员的进出情况,而该系统软件的出现,可让更多的时间花在如..
  • 基于springboot的学生宿舍管理系统的设计与实现 随着信息时代的发展,快捷高效的处理信息已成为各行各业的基本需求。在学生宿舍信息的日常管理中,为满足其系统化,自动化,高效化的要求,需要设计一个有效的学生...
  • 25175宿舍管理系统包含了入住学生的信息查询增加修改删除,宿舍的查询增加修改删除,宿舍水电费查询充值等功能。 功能: 1、入住学生的信息查询增加修改删除 2、宿舍的查询增加修改删除 3、宿舍水电费查询充值 ...
  • 数据库课程设计——学生宿舍信息管理系统

    万次阅读 多人点赞 2018-09-17 23:33:00
    数据库课程设计——学生宿舍信息管理系统 目录  1.设计目的... 2 2、任务与要求... 2 3、学生宿舍管理系统课程设计... 2 3.1 引言... 2 3.2需求分析... 2 3.2.1....
  • 学生宿舍管理系统之逻辑结构设计

    千次阅读 2018-11-28 22:33:42
    逻辑结构设计 1.E-R 图向关系模型的转换 学生表:学号、姓名、性别、专业...宿舍表:楼号、宿舍号、宿舍电话、可住人数、已住人数 主码:楼号、宿舍号 报修表:物品名称、报修原因、报修日期、报修人、报修费用 ...
  • 学生公寓的安全防卫工作不仅关系到学生宿舍管理者的安定和管理制度的落实,也关系到高校的安定,关系到学生人身财产的安全。另一方面,大学生逃课现象严重,如何利用智能手段实现数字校园,利用人脸识别技术实现...
  • 人力资源管理软件(免费破解版)

    千次下载 热门讨论 2010-03-15 11:50:13
    含有大量的实用工具,如休假管理、宿舍管理、物品领用管理等等,为工作带来方便 导航界面可以切换定制,便于设置自己常用的功能 软件界面美观,使用方便 可以输出到excel、wps表格、html等文件 提供虚拟域名...
  • 它是适用于所有类型学校的最佳学校管理软件,也称为School erp。 它在PHP和MySql中提供了100%的源代码。 它具有以下功能:1.快速响应设计。 2.白色标签3.管理员,学生,教职员工和家长面板(4种)4.学校设置5.学校...
  • 目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。而且当查找某条...
  • 学生宿舍管理系统类图设计

    万次阅读 2014-06-12 00:51:05
    面对庞大的学生信息量,一套适合学生公寓使用的管理软件,能够非常方便地管理公寓,包括公寓内员工基本信息管理,学生信息管理,公寓信息管理等,还能便捷的查询公寓内的各种信息,提高了工作人员的工作效率。...
  • 本人力资源软件包含含有大量的实用工具,如休假管理、宿舍管理、物品领用管理等等,为工作带来方便 导航界面可以切换定制,便于设置自己常用的功能 软件界面美观,使用方便 本人力资源软件包含可以输出到excel、...
  • 用友 U8 人力资源管理软件介绍 人力资源部分 主要包括人事管理薪资管理保险福利管理考勤休假管理人事合同管 理招聘管理培训管理绩效考核管理计件工资宿舍管理经理自助员工自助等多 个模块 主要功能在于提高企业人力...
  • Onlyit.cn人力资源管理软件是一款针对中小企业的人事、考勤、工资、考核、办公自动化一体化管理软件,人力资源管理人事系统适用于各类企业、行政事业单位。通过高效的人力资源管理实现企业的发展战略,使企业管理者...
  • 工业园区剧集的人员比较多,虽然生活比较方便,但是离市区一般也比较远,娱乐相对来说要少一些,而视频是很多人员休闲时间的主要方式,而给员工提供一些自办的园区或者集团直播节目,不仅仅可以丰富员工的生活还能...
  • 宿舍管理系统

    2012-03-04 00:26:26
     通过连接华科公司的ICard人事系统,提取员工资料,连接2个数据库,对工资单扣除相应的宿舍管理费用,再导回到数据库中。使用poi做Excel报表,导出月度、日度员工住退宿,宿舍维修物品费用,员工依赖申请表单等数据...
  • 2、南京邮电大学原为工业与信息化部(原邮电部)直属重点高校,2000年起实行中央与地方共建,以江苏省管理为主。2013年10月,原南京人口管理干部学院正式并入南京邮电大学。3、南京邮电大学现有博士后流动站2个,一级...
  • 设计文档、数据库sql文件以及所有配套软件,按照教程即可轻松实现项目安装部署 本课程为素材版,需要实战版代码讲解教程的同学可以点击如下链接: java项目实战之电商系统全套(前台和后台)(java毕业设计ssm框架项目)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,395
精华内容 1,358
关键字:

员工宿舍管理软件