摘要
随着高校规模的不断扩大,宿舍管理面临着越来越多的挑战。传统的宿舍管理方式效率低下,且难以满足现代化管理的需求。因此,开发一套高效、便捷的高校宿舍管理系统显得尤为重要。本文旨在探讨基于Python的高校宿舍管理系统的设计与实现。
一、系统背景与意义
高校宿舍是学生学习和生活的重要场所,宿舍管理关系到学生的安全和舒适。然而,传统的宿舍管理方式往往依赖于人工记录和纸质档案,这种方式不仅效率低下,而且容易出现信息错误和遗漏。因此,开发一套基于Python的高校宿舍管理系统,能够实现对宿舍信息的自动化管理,提高管理效率,减少人为错误。
二、系统设计
本系统采用Python作为主要开发语言,结合数据库技术,设计了一个完整的宿舍管理系统。系统主要包括以下几个模块:用户管理、宿舍信息管理、违纪处理管理、维修信息管理等。每个模块都设计了相应的功能和操作界面,以满足不同用户的需求。
三、系统实现
在系统设计的基础上,我们利用Python编程语言和相应的开发工具,对系统进行了实现。通过编写代码,我们实现了用户登录、宿舍信息查询、网站公告查看、校园资讯查看等功能同时,我们还对系统进行了优化和测试,确保系统的稳定性和可靠性。
四、总结与展望
本文基于Python开发了一套高校宿舍管理系统,实现了对宿舍信息的自动化管理。该系统不仅提高了管理效率,减少了人为错误,还为学生提供了更加便捷的服务。未来,我们将进一步完善系统的功能和性能,以满足更多用户的需求。同时,我们也将探索更多的技术手段,为高校宿舍管理带来更多的创新和变革。
关键字:Python、高校宿舍管理、系统设计、系统实现、自动化管理
A Supermarket Management System Based on Python
ABSTRACT
With the continuous expansion of colleges and universities, dormitory management is facing more and more challenges. The traditional dormitory management mode is inefficient and difficult to meet the needs of modern management. Therefore, it is particularly important to develop an efficient and convenient college dormitory management system. This paper aims to explore the design and implementation of the university dormitory management system based on Python.
1. System background and meaning
College dormitory is an important place for students to study and live, and the dormitory management is related to the safety and comfort of students. However, the traditional dormitory management method often relies on manual records and paper files, which is not only inefficient, but also prone to information errors and omissions. Therefore, the development of a Python-based university dormitory management system, can realize the automatic management of dormitory information, improve the management efficiency, and reduce human error.
2. system design
This system uses Python as the main development language, combined with the database technology, designed a complete dormitory management system. The system mainly includes the following modules: user management, dormitory information management, discipline violation treatment management, maintenance information management, etc. Each module has the corresponding functional and operational interfaces designed to meet the needs of different users.
3. system implementation
On the basis of the system design, we implemented the system using Python programming language and corresponding development tools. By writing code, we have realized the functions of user login, dormitory information query, website announcement view, campus information view and so on. At the same time, we have also optimized and tested the system to ensure the stability and reliability of the system.
4. Summary and outlook
This paper develops a set of university dormitory management system based on Python to realize the automatic management of dormitory information. The system not only improves the management efficiency, reduces human error, but also provides more convenient services for students. In the future, we will further improve the functions and performance of the system to meet the needs of more users. At the same time, we will also explore more technical means to bring more innovation and change to the university dormitory management.
Key words: Python, university dormitory management, system design, system implementation, automation management
目 录
1 绪论
随着教育事业的蓬勃发展和高校规模的不断扩大,学生宿舍的数量和管理难度也在持续增加。传统的高校宿舍管理方式通常依赖于人工操作和纸质记录,这种方式存在效率低下、容易出错、难以实时追踪和统计分析等问题。同时,由于高校宿舍管理涉及到学生的日常生活和学习环境,因此对其管理的规范性和科学性要求也越来越高。
在这个背景下,基于Python的高校宿舍管理系统的设计与实现显得尤为重要。Python作为一种简单易学、功能强大的编程语言,具有广泛的应用领域和强大的社区支持,能够满足高校宿舍管理系统的开发需求。同时,Python的开源性和丰富的第三方库也为系统的开发和维护提供了便利。
开发意义:
提高管理效率:基于Python的高校宿舍管理系统能够实现自动化管理,减少人工干预,提高管理效率。通过系统,可以方便地进行宿舍信息的录入、查询、修改和删除等操作,实时追踪学生的入住和退房情况,以及统计和分析相关数据。
减少人为错误:传统的管理方式容易因人为因素导致错误,而基于Python的高校宿舍管理系统采用自动化和标准化的管理方式,可以大大减少人为错误的发生。
提高管理规范性:系统采用统一的标准和规范进行宿舍管理,可以确保管理的规范性和一致性。同时,系统还可以根据学校的实际情况进行定制和调整,满足学校的特殊需求。
提供更好的服务:通过系统,学生可以更加方便地查询自己的宿舍信息、缴纳费用、报修等,提高了学生的满意度。同时,系统还可以为管理人员提供更加全面和准确的数据支持,帮助他们更好地进行决策和规划。
综上所述,基于Python的高校宿舍管理系统的设计与实现对于提高高校宿舍管理的效率、规范性和服务质量具有重要意义。
1.2国内外研究现状
国内研究现状
在国内,随着高校信息化建设的不断推进,越来越多的学校开始关注并尝试引入基于Python的高校宿舍管理系统。这类系统旨在通过自动化、智能化的手段,提高宿舍管理的效率和质量。目前,国内的研究主要集中在以下几个方面:
系统功能设计:研究者们致力于设计功能完备、易于使用的系统,以满足高校宿舍管理的实际需求。这些系统通常包括学生信息管理、宿舍分配、费用缴纳、报修管理等功能模块。
技术实现:Python作为一种流行的编程语言,因其简单易学、功能强大而受到青睐。研究者们利用Python及相关技术,如Django、Flask等Web框架,以及MySQL、MongoDB等数据库技术,实现系统的各个功能模块。
智能化应用:随着人工智能技术的不断发展,一些研究者开始探索将人工智能技术应用于高校宿舍管理系统。例如,利用图像识别技术进行人脸识别,实现宿舍出入口的智能管理;利用传感器技术实时监测宿舍环境,提高居住舒适度等。
然而,国内的高校宿舍管理系统在发展过程中也面临一些挑战。例如,系统功能不完善、使用便捷性不足、数据安全性有待提高等问题。因此,未来的研究需要针对这些问题进行深入的探索和改进。
国外研究现状:
在国外,高校宿舍管理系统的研究和应用起步较早,技术也相对成熟。国外的研究主要集中在以下几个方面:
信息化程度:国外的高校宿舍管理系统普遍具有较高的信息化程度,能够实现宿舍信息的实时更新和共享。这有助于提高管理效率和服务质量。
智能化应用:与国内相似,国外的研究者也在积极探索将人工智能技术应用于高校宿舍管理系统。例如,利用大数据分析技术对学生的生活习惯进行分析和预测,为宿舍管理提供数据支持;利用物联网技术实现宿舍设备的远程监控和控制等。
安全性保障:国外的高校宿舍管理系统在数据安全性方面具有较高的保障。研究者们通过采用加密算法、身份验证等安全措施,确保学生个人信息和系统数据的安全性。
综上所述,基于Python的高校宿舍管理系统的设计与实现在国内外均受到广泛的关注和研究。未来的研究需要针对现有问题进行深入探索和改进,以推动该领域的发展和应用。
1.3论文组成结构
论文整体分为六个章节模块:第一章引言部分介绍研究背景以及意义,第二章主要是相关技术的介绍,第三章主要是介绍系统分析,第四章的系统的功能等设计,第五章主要是整个系统的实现过程及关键代码,最后一章是系统测试方法以及测试结果的记录与描述。
2开发工具及相关技术介绍
2.1开发技术说明
本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于python的Django框架进行开发。
前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。
后端部分:采用Django作为开发框架,同时集成Redis等相关技术。
2.2操作系统
Windows10和Windows以后的版本关于Windows10,微软宣布它将以比以前更快的节奏更新Windows,将不会有官方的“Windows11”;相反,WindowsUpdate(或另一个高校宿舍服务模型)会将现有的Windows10更新为新版本。在编写此书时,已经有两个这样的更新发生在2015年11月(也称为版本1511,指服务年和月份)和2016年7月(版本1607,也因为周年更新的营销名称所知)[5]。
Windows10和“一个内核”多年来,几种不同类型的Windows已经发展起来。除了在PC上运行的主流Windows之外,还有Xbox360游戏控制台,它运行一个分叉Windows2000。WindowsPhone7基于WindowsCE(微软的实时操作系统)运行的一个变体[6]。维护和扩展所有这些代码库显然是困难的。因此,微软决定将内核和基础平台支持的二进制文件聚合为一个。这开始于Windows8和Windows电话8,其中共享内核(Windows8.1和Windows电话8.1具有聚合的Windows运行时API)。使用Windows10,融合就完成了,这个共享平台被称为Onecore,它运行在PC、电话、XboxOne游戏控制台、全息屏和物联网(IoT)设备(如树莓Pi2)上[7]。
2.2开发工具
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。
MySQL是一个关系型数据库管理系统,它的范围包括了膝上型计算机、台式机、高校宿舍服务器。20世纪,最初的MySQL是由Sybase专门为UNIX系统开发的,后来微软将它移植到了WindowsNT系统上。从1994年开始,微软发布独立于Sybase开发的MySQL版本,而Sybase在20世纪90年代后期,就已经停止使用MySQL这个名称。
MySQL提供MySQL多个拷贝之间以及其他数据库系统的复制服务。其中的分析服务是属于系统的一个完整部分,包括了:联机分析处理(OLAP)和数据挖掘工具。MySQL提供了一个大的图形化工具集和向导,引导数据库管理员执行各种任务,例如建立定期备份、在服务器之间复制数据,以及调整数据库性能[10]。
2.3开发技术
2.3.1MVVM模式介绍
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
2.3.2Django框架
Django是一个由Python编写的具有完整架站能力的开源Web框架。使用Django,只要很少的代码,Python的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的Web服务[10]。
Django本身基于MVC模型,即Model(模型)+View(视图)+ Controller(控制器)设计模式,因此天然具有MVC的出色基因:开发快捷、部署方便、可重用性高、维护成本低等。Python加Django是快速开发、设计、部署网站的最佳组合[11]。
Django具有以下特点:
能完善、要素齐全:该有的、可以没有的都有,常用的、不常用的工具都用。Django提供了大量的特性和工具,无须你自己定义、组合、增删及修改[12]。
完善的文档:经过十多年的发展和完善,Django有广泛的实践经验和完善的在线文档(可惜大多数为英文)。开发者遇到问题时可以搜索在线文档寻求解决方案[13]。
强大的数据库访问组件:Django的Model层自带数据库ORM组件,使得开发者无须学习其他数据库访问技术(SQL、pymysql、SQLALchemy等)。
灵活的URL映射:Django使用正则表达式管理URL映射,灵活性高。
丰富的Template模板语言:类似jinjia模板语言,不但原生功能丰富,还可以自定义模板标签[14]。
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。
3系统分析
3.1需求分析
高校宿舍管理系统主要是为了提高工作人员的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。
系统所要实现的功能分析,对于现在网络方便的管理,系统要实现用户可以直接在平台上进行查看所有数据信息,根据需求可以进行在线添加,删除或修改高校宿舍管理系统信息,这样既能节省时间,不用再像传统的方式耽误时间,真的很难去满足用户的各种需求。所以高校宿舍管理系统的开发不仅仅是能满足用户的需求,还能提高管理员的工作效率,减少原有不必要的工作量。
3.2 系统可行性分析
3.2.1技术可行性
本系统在Windows操作系统中进行开发,并且目前PC机的性能已经可以胜任普通网站的web服务器。系统开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。
系统的开发环境和配置都是可以自行安装的,系统使用JSP开发工具,使用比较成熟的Mysql数据库进行对系统前台及后台的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得网站运行更具有稳定性和安全性,从而完成实现网站的开发。
(1)硬件可行性分析
高校宿舍管理系统及信息分析的设计对于所使用的计算机没有什么硬性的要求,计算机只要可以正常的使用进行代码的编写及页面设计就可行,主要是对于服务器有些要求,对于平台搭建完成要上传的服务器是有一定的要求的,服务器必须选择安全性比较高的,然后就是在打开网站必须顺畅,不能停顿太长时间;性价比高;安全性高。
(2)软件可行性分析
开发整个系统使用的是云计算,流量的可扩展性和基于流量的智能调整云计算的优点就是流量的可扩展性和基于流量的智能调整,保障系统的安全及数据信息的及时备份。
因此,我们从两个方面进行了可行性研究,可以看出系统的开发没有问题。
在高校宿舍管理系统开发之前所做的市场调研及其他的高校宿舍相关的管理系统,都是没有任何费用的,都是通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于高校宿舍管理系统的开发在经济上是完全可行的,没有任何费用支出的。
使用比较成熟的技术,系统是基于django的开发,采用Mysql数据库。所以系统在开发人力、财力要求不高,具有经济可行性。
3.2.2操作可行性
可操作性主要是对高校宿舍管理系统设计完成后,用户的使用体验度,以及管理员可以通过系统随时管理相关的数据信息,并且对于管理员、学生用户、维修用户和宿管用户这4个用户角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便用户信息的操作需求和管理员管理数据信息,对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以在系统的可操作性是完全可以的。本系统的操作使用的也是界面窗口进行登录,所以操作人员只要会简单的电脑操作就完全可以的。
3.3 系统功能分析
高校宿舍管理系统中采用了Python的Django框架进行开发,在数据库上选择MYSQL,在功能上高校宿舍管理系统划分为了宿管用户、学生用户、维修用户和管理员这三大部分。
宿管用户功能需求介绍:
注册登录:宿管用户需要能够通过注册登录界面输入个人信息,以创建账户并登录系统,以便进行采购操作和管理。
首页:显示系统的主要功能和最新动态。
网站公告:展示学校的最新通知、政策等,方便宿管用户及时获取重要信息。
校园资讯:提供学校各类新闻、活动、讲座等资讯的浏览功能。
宿舍信息:展示所有宿舍楼的基本信息,如楼号、地址、容纳人数等。
我的账户:管理个人账户信息的模块。包括密码修改、联系方式更新等功能。
个人中心:
个人首页:展示宿管用户的个人信息和管理权限。
网站公告:详细展示每栋宿舍楼的具体信息,如房间数量、已入住人数等。
宿舍类型:列出学校提供的不同宿舍类型,方便宿管用户了解。
宿舍信息:查看和管理各个宿舍的详细信息,包括入住学生、空床位等。
访客登记:记录和管理来访宿舍的访客信息,确保宿舍安全。
宿舍分配:为新生或转校生分配宿舍,并更新系统记录。
更换宿舍:协助学生更换宿舍,并更新系统数据。
违纪上报:记录学生违纪行为,并启动违纪处理流程。
违纪处理:查看违纪学生的处理进度和结果。
维修信息:记录宿舍设施报修信息,并通知维修人员。
维修结果:查看报修设施的维修进度和结果。
收藏:收藏重要信息或常用功能,方便快速访问。
学生用户功能介绍:
注册登录:宿管用户需要能够通过注册登录界面输入个人信息,以创建账户并登录系统,以便进行采购操作和管理。
首页:提供系统的主要功能和导航链接,使学生能够快速找到所需服务。
网站公告:展示学校发布的最新通知、政策等,确保学生用户能够及时了解重要信息。
校园资讯:提供学校新闻、活动、讲座等资讯的浏览功能,帮助学生用户更好地融入校园生活。
宿舍信息:展示宿舍楼的基本信息,如楼号、地址、宿舍类型等。
我的账户:学生用户管理个人信息的模块,包括查看个人信息、修改密码等。
个人中心:
个人首页:展示学生用户的个人信息和宿舍分配情况。
访客登记:当有其他人员需要访问宿舍时,学生用户可以在此进行访客登记,确保宿舍安全。
宿舍分配:学生用户可以查看自己的宿舍分配情况,包括宿舍楼、房间号等信息。
更换宿舍:如有需要,学生用户可以在此申请更换宿舍,并查看申请进度。
违纪上报:如果发现有同学在宿舍内存在违纪行为,学生用户可以在此上报,维护宿舍的秩序和安全。
违纪处理:学生用户可以查看自己或他人的违纪处理情况,了解处理进度和结果。
收藏:收藏重要信息或常用功能,方便学生用户快速访问。
维修用户功能介绍:
首页:提供系统的主要功能和导航链接,使维修用户能够快速找到所需服务。
网站公告:展示学校发布的与宿舍维修相关的通知、政策等,确保维修用户能够及时了解重要信息。
校园资讯:提供学校新闻、活动等信息,虽然与直接维修工作不直接相关,但有助于维修用户更好地了解校园动态。
宿舍信息:展示宿舍楼的基本信息,包括楼号、地址等,帮助维修用户快速定位需要维修的宿舍楼。
我的账户:维修用户管理个人信息的模块,包括查看个人信息、修改密码等。
个人中心:
个人首页:展示维修用户的基本信息和已接手的维修任务。
网站公告:详细展示每栋宿舍楼的结构、房间数量等信息,方便维修用户了解。
维修信息:列出所有待处理的维修任务,包括报修时间、报修内容、报修宿舍等详细信息。
维修结果:维修用户可在此录入已完成的维修任务的结果,包括维修情况、使用材料、维修时间等。
收藏:维修用户可收藏常用的功能或信息,方便快速访问。
管理员功能模块的简单描述:
后台首页:提供管理员登录后的主界面,展示系统概览和关键数据。
系统用户管理:管理员可以创建、编辑、删除和查看系统用户(如学生、宿管、维修人员等)的账户信息,并分配相应的权限。
专业类型管理:管理员可以添加、修改或删除学校内的专业类型,以便在分配宿舍时进行分类管理。
院系类型管理:管理员可以管理学校的院系类型,包括添加新院系、修改院系信息或删除不再需要的院系。
网站公告管理:管理员可以维护宿舍楼的基本信息,如楼号、地址、容纳人数等,确保数据准确性。
宿舍类型管理:管理宿舍的类型(如单人间、双人间等),以满足不同学生的需求。
宿舍信息管理:管理员可以查看、编辑和更新宿舍的详细信息,包括入住学生、空床位等。
访客登记管理:管理访客登记信息,确保宿舍安全,包括查看访客记录、处理异常访客等。
宿舍分配管理:根据学生的院系、专业等信息,为学生分配宿舍,并处理宿舍调换等事宜。
更换宿舍管理:管理和审批学生的宿舍更换申请,更新系统记录。
违纪上报管理:查看学生上报的违纪行为,启动处理流程,并跟踪处理进度。
违纪处理管理:管理和记录学生违纪行为的处理结果,如警告、罚款等。
维修信息管理:查看学生或宿管提交的维修申请,分配维修人员,并跟踪维修进度。
维修结果管理:管理和记录维修任务的完成情况,确保维修质量。
系统管理:配置系统参数,如用户权限、系统日志等,确保系统的正常运行和安全性。
网站公告管理:发布和管理学校网站上的公告信息,确保信息的及时性和准确性。
资源管理:管理系统使用的各种资源,如图片、文档等,确保资源的有效利用和安全性。
3.4系统用例分析
系统的用例展示的是系统功能与用户之间的关系,通过用例的方式能够直观的展示出来,本高校宿舍管理系统的完整UML用例图分别是图3-1、图3-2和图3-3。

图3-1 高校宿舍管理系统宿管用户角色用例图
图3-2 高校宿舍管理系统后台管理员角色用例
图3-3 高校宿舍管理系统学生用户角色用例图
图3-4 高校宿舍管理系统维修用户角色用例图
3.5 项目设计目标与原则
1、关于高校宿舍管理系统的基本要求
(1)功能要求:可以管理后台首页、系统用户、网站公告、网站公告管理、校园资讯、宿舍类型、系统管理、资源管理等功能模块。
(2)性能:在不同操作系统上均能无差错实现在不同类型的用户登入相应界面后能不出差错、方便地进行预期操作。
(3)安全与保密要求:用户都必须通过身份验证才能进入系统,并且用户的权限也需要根据用户的类型进行限定。
(4)环境要求:支持多种平台,可在Windows系列、Vista系统等多种操作系统下使用。
2、开发目标
高校宿舍管理系统的主要开发目标如下:
(1)实现管理系统信息关系的系统化、规范化和自动化;
(2)减少维护人员的工作量以及实现用户对信息的控制和管理。
(3)方便查询信息及管理信息等;
(4)通过网络操作,改善处理问题的效率,提高操作人员利用率;
(5)考虑到用户多样性特点,要求界面简单,操作简便。
3、设计原则
本高校宿舍管理系统采用python技术,Mysql数据库开发,充分保证了系统稳定性、完整性。
高校宿舍管理系统的设计与实现的设计思想如下:
操作简单方便、系统界面安全良、简单明了的页面布局、方便查询高校宿舍管理系统相关信息。
2、即时可见:对高校宿舍管理系统信息的处理将立马在对应地点可以查询到,从而实现“即时发布、即时见效”的系统功能。
3、功能的完善性:可以管理后台首页、系统用户、网站公告、网站公告管理、校园资讯、宿舍类型、系统管理、资源管理等操作。
3.6系统流程分析
3.6.1操作流程
图3-4登录流程图
3.6.2添加信息流程
添加信息流程图,如图所示:
图3-5添加信息流程图
3.6.3删除信息流程
删除信息流程图,如图所示:
图3-6删除信息流程图
4.1系统设计的原理
系统设计原理包括:
- 模块化。模块化就是把整个程序划分为多个模块,每个模块有自己的名字并可以被独立访问。所有模块的功能集合起来就可以满足用户需求。
- 抽象。抽象是暂时忽略软件的细节,集中精力将软件的本质特征提取出来。
- 逐步求精。总体设计需要先解决主要问题,再将问题一步步细化。
- 局部化和信息隐藏。不同模块之间,信息相互不能访问,是不能访问的;并且应该在相近的物理地址上放置关系较密切的软件元素。
- 模块独立。模块之间应该遵循高内聚,低耦合的原则。
4.2系统功能设计
系统的功能模块图如下图所示。

图4-1系统功能结构图
4.3数据库设计
数据库设计(DatabaseDesign)是指对一个给定的环境,构造良好的数据库模式,建立数据库系统,使之能够最有效地存储数据,满足各类用户的需求即处理要求和信息要求。在数据库应用范围内,经常把使用数据库的系统称为数据库的应用系统。
4.3.1概念模型设计
E-R设计方法是一种通过E-R图来描述现实世界信息结构的DB设计方法。E-R图由实体、属性、联系三部分组成。它有两个优点,即接近于人的思维,容易理解;与计算机无关,用户容易接受。
系统的主要实体间关系E-R图如下图所示:

图4-2系统E-R图
实体间可建立某种联系,大致可分为三种:(1)实体间一对一联系,这种关系可以独立也可与其他合并;(2)实体间是一对多联系,实体与另一个n端实体发生联系;(3)实体间为多对多联系,两个实体间存在某种关系。每个实体上码所具有的属性就是关系属性,实体码的组合就是关系码。
4.3.2逻辑结构设计
根据E-R模型,高校宿舍管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | building_information_id | int | 10 | 0 | N | Y | 网站公告ID | |
2 | classification_of_buildings | varchar | 64 | 0 | Y | N | 栋楼分类 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | department_type_id | int | 10 | 0 | N | Y | 院系类型ID | |
2 | department_classification | varchar | 64 | 0 | Y | N | 院系分类 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | disciplinary_action_id | int | 10 | 0 | N | Y | 违纪处理ID | |
2 | housing_management_account | int | 10 | 0 | Y | N | 0 | 宿管账号 |
3 | dormitory_name | varchar | 64 | 0 | Y | N | 宿舍名称 | |
4 | dormitory_classification | varchar | 64 | 0 | Y | N | 宿舍分类 | |
5 | dormitory_type | varchar | 64 | 0 | Y | N | 宿舍类型 | |
6 | bed_type | varchar | 64 | 0 | Y | N | 床位类型 | |
7 | dormitory_configuration | varchar | 64 | 0 | Y | N | 宿舍配置 | |
8 | classification_of_buildings | varchar | 64 | 0 | Y | N | 栋楼分类 | |
9 | assign_bed_number | varchar | 64 | 0 | Y | N | 分配床号 | |
10 | student_account | int | 10 | 0 | Y | N | 0 | 学生账号 |
11 | complaint_personnel | varchar | 64 | 0 | Y | N | 投诉人员 | |
12 | disciplinary_offence | varchar | 64 | 0 | Y | N | 违纪行为 | |
13 | processing_time | datetime | 19 | 0 | Y | N | 处理时间 | |
14 | handling_plan | text | 65535 | 0 | Y | N | 处理方案 | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dormitory_allocation_id | int | 10 | 0 | N | Y | 宿舍分配ID | |
2 | housing_management_account | int | 10 | 0 | Y | N | 0 | 宿管账号 |
3 | dormitory_name | varchar | 64 | 0 | Y | N | 宿舍名称 | |
4 | dormitory_classification | varchar | 64 | 0 | Y | N | 宿舍分类 | |
5 | dormitory_type | varchar | 64 | 0 | Y | N | 宿舍类型 | |
6 | bed_type | varchar | 64 | 0 | Y | N | 床位类型 | |
7 | dormitory_configuration | varchar | 64 | 0 | Y | N | 宿舍配置 | |
8 | student_account | int | 10 | 0 | Y | N | 0 | 学生账号 |
9 | classification_of_buildings | varchar | 64 | 0 | Y | N | 栋楼分类 | |
10 | assign_bed_number | varchar | 64 | 0 | Y | N | 分配床号 | |
11 | dormitory_regulations | text | 65535 | 0 | Y | N | 宿舍规定 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dormitory_information_id | int | 10 | 0 | N | Y | 宿舍信息ID | |
2 | housing_management_account | int | 10 | 0 | Y | N | 0 | 宿管账号 |
3 | dormitory_name | varchar | 64 | 0 | Y | N | 宿舍名称 | |
4 | dormitory_classification | varchar | 64 | 0 | Y | N | 宿舍分类 | |
5 | dormitory_type | varchar | 64 | 0 | Y | N | 宿舍类型 | |
6 | bed_type | varchar | 64 | 0 | Y | N | 床位类型 | |
7 | dormitory_pictures | varchar | 255 | 0 | Y | N | 宿舍图片 | |
8 | dormitory_configuration | text | 65535 | 0 | Y | N | 宿舍配置 | |
9 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dormitory_type_id | int | 10 | 0 | N | Y | 宿舍类型ID | |
2 | dormitory_classification | varchar | 64 | 0 | Y | N | 宿舍分类 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表housing_management_users (宿管用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | housing_management_users_id | int | 10 | 0 | N | Y | 宿管用户ID | |
2 | name_of_dormitory_manager | varchar | 64 | 0 | Y | N | 宿管姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 宿管性别 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | professional_type_id | int | 10 | 0 | N | Y | 专业类型ID | |
2 | professional_classification | varchar | 64 | 0 | Y | N | 专业分类 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | repair_information_id | int | 10 | 0 | N | Y | 维修信息ID | |
2 | housing_management_account | int | 10 | 0 | Y | N | 0 | 宿管账号 |
3 | dormitory_name | varchar | 64 | 0 | Y | N | 宿舍名称 | |
4 | dormitory_classification | varchar | 64 | 0 | Y | N | 宿舍分类 | |
5 | dormitory_type | varchar | 64 | 0 | Y | N | 宿舍类型 | |
6 | bed_type | varchar | 64 | 0 | Y | N | 床位类型 | |
7 | classification_of_buildings | varchar | 64 | 0 | Y | N | 栋楼分类 | |
8 | assign_bed_number | varchar | 64 | 0 | Y | N | 分配床号 | |
9 | repair_account | int | 10 | 0 | Y | N | 0 | 维修账号 |
10 | reporting_time | datetime | 19 | 0 | Y | N | 上报时间 | |
11 | maintenance_overview | text | 65535 | 0 | Y | N | 维修简述 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | repair_results_id | int | 10 | 0 | N | Y | 维修结果ID | |
2 | housing_management_account | int | 10 | 0 | Y | N | 0 | 宿管账号 |
3 | dormitory_name | varchar | 64 | 0 | Y | N | 宿舍名称 | |
4 | dormitory_classification | varchar | 64 | 0 | Y | N | 宿舍分类 | |
5 | dormitory_type | varchar | 64 | 0 | Y | N | 宿舍类型 | |
6 | bed_type | varchar | 64 | 0 | Y | N | 床位类型 | |
7 | classification_of_buildings | varchar | 64 | 0 | Y | N | 栋楼分类 | |
8 | assign_bed_number | varchar | 64 | 0 | Y | N | 分配床号 | |
9 | reporting_time | datetime | 19 | 0 | Y | N | 上报时间 | |
10 | maintenance_overview | varchar | 64 | 0 | Y | N | 维修简述 | |
11 | repair_account | int | 10 | 0 | Y | N | 0 | 维修账号 |
12 | maintenance_progress | varchar | 64 | 0 | Y | N | 维修进度 | |
13 | special_remarks | text | 65535 | 0 | Y | N | 特殊备注 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | repair_user_id | int | 10 | 0 | N | Y | 维修用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | replacing_dormitories_id | int | 10 | 0 | N | Y | 更换宿舍ID | |
2 | housing_management_account | int | 10 | 0 | Y | N | 0 | 宿管账号 |
3 | dormitory_name | varchar | 64 | 0 | Y | N | 宿舍名称 | |
4 | dormitory_classification | varchar | 64 | 0 | Y | N | 宿舍分类 | |
5 | dormitory_type | varchar | 64 | 0 | Y | N | 宿舍类型 | |
6 | bed_type | varchar | 64 | 0 | Y | N | 床位类型 | |
7 | dormitory_configuration | varchar | 64 | 0 | Y | N | 宿舍配置 | |
8 | classification_of_buildings | varchar | 64 | 0 | Y | N | 栋楼分类 | |
9 | assign_bed_number | varchar | 64 | 0 | Y | N | 分配床号 | |
10 | student_account | int | 10 | 0 | Y | N | 0 | 学生账号 |
11 | application_time | datetime | 19 | 0 | Y | N | 申请时间 | |
12 | reason_for_replacement | text | 65535 | 0 | Y | N | 更换缘由 | |
13 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
14 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表reporting_of_disciplinary_violations (违纪上报)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | reporting_of_disciplinary_violations_id | int | 10 | 0 | N | Y | 违纪上报ID | |
2 | housing_management_account | int | 10 | 0 | Y | N | 0 | 宿管账号 |
3 | dormitory_name | varchar | 64 | 0 | Y | N | 宿舍名称 | |
4 | dormitory_classification | varchar | 64 | 0 | Y | N | 宿舍分类 | |
5 | dormitory_type | varchar | 64 | 0 | Y | N | 宿舍类型 | |
6 | bed_type | varchar | 64 | 0 | Y | N | 床位类型 | |
7 | dormitory_configuration | varchar | 64 | 0 | Y | N | 宿舍配置 | |
8 | classification_of_buildings | varchar | 64 | 0 | Y | N | 栋楼分类 | |
9 | assign_bed_number | varchar | 64 | 0 | Y | N | 分配床号 | |
10 | student_account | int | 10 | 0 | Y | N | 0 | 学生账号 |
11 | complaint_personnel | varchar | 64 | 0 | Y | N | 投诉人员 | |
12 | disciplinary_offence | varchar | 64 | 0 | Y | N | 违纪行为 | |
13 | reporting_time | datetime | 19 | 0 | Y | N | 上报时间 | |
14 | event_description | varchar | 64 | 0 | Y | N | 事件简述 | |
15 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | student_users_id | int | 10 | 0 | N | Y | 学生用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | department_information | varchar | 64 | 0 | Y | N | 院系信息 | |
5 | professional_information | varchar | 64 | 0 | Y | N | 专业信息 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 系统管理 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | visitor_registration_id | int | 10 | 0 | N | Y | 访客登记ID | |
2 | housing_management_account | int | 10 | 0 | Y | N | 0 | 宿管账号 |
3 | dormitory_name | varchar | 64 | 0 | Y | N | 宿舍名称 | |
4 | dormitory_type | varchar | 64 | 0 | Y | N | 宿舍类型 | |
5 | dormitory_classification | varchar | 64 | 0 | Y | N | 宿舍分类 | |
6 | bed_type | varchar | 64 | 0 | Y | N | 床位类型 | |
7 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
8 | number_of_visitors | int | 10 | 0 | Y | N | 0 | 来访人数 |
9 | visit_location | varchar | 64 | 0 | Y | N | 拜访地点 | |
10 | visiting_time | datetime | 19 | 0 | Y | N | 来访时间 | |
11 | reason_for_visit | text | 65535 | 0 | Y | N | 来访缘由 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
5.1宿管用户功能模块实现
5.1.1登录界面
用户可以通过登录进入该系统,如果输入正确用户名和密码,则可以进入该系统,显示的结果如下。用户登录界面如下图所示。

图5-1登录模块界面图
登录代码如下:
def Login(self, ctx):
print("===================登录=====================")
ret = {
"error": {
"code": 70000,
"message": "账户不存在",
}
}
body = ctx.body
password = md5hash(body["password"]) or ""
obj = service_select("user").Get_obj(
{"username": body["username"]}, {"like": False}
)
if obj:
user_group = service_select("user_group").Get_obj({'name': obj['user_group']}, {"like": False})
if user_group and user_group['source_table'] != '':
user_obj = service_select(user_group['source_table']).Get_obj({"user_id": obj['user_id']}, {"like": False})
if user_obj['examine_state'] == '未通过':
ret = {
"error": {
"code": 70000,
"message": "账户未通过审核",
}
}
return ret
if user_obj['examine_state'] == '未审核':
ret = {
"error": {
"code": 70000,
"message": "账户未审核",
}
}
return ret
if obj["state"] == 1:
if obj["password"] == password:
timeout = timezone.now()
timestamp = int(time.mktime(timeout.timetuple())) * 1000
token = md5hash(str(obj["user_id"]) + "_" + str(timestamp))
ctx.request.session[token] = obj["user_id"]
service_select("access_token").Add(
{"token": token, "user_id": obj["user_id"]}
)
obj["token"] = token
ret = {
"result": {"obj": obj}
}
else:
ret = {
"error": {
"code": 70000,
"message": "密码错误",
}
}
else:
ret = {
"error": {
"code": 70000,
"message": "用户账户不可用,请联系管理员",
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
展示学校的最新通知、政策等,方便宿管用户及时获取重要信息。如下图所示。

图5-2网站公告页面图
宿管用户查看和管理所有的宿舍类型。宿管用户可以列出学校提供的不同宿舍类型(如单人间、双人间等),方便宿管用户了解。如下图所示。

图5-3宿舍类型界面图
5.2管理员功能模块实现
管理员输入账号、密码、验证码点击“登录”按钮就会跳转到登录界面。如下图所示。

图5-4管理员登录页面图
管理员可以对系统中所有的用户角色进行管控,包含了管理员、宿管用户、学生用户、维修用户这4种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。如下图所示。

图5-5系统用户页面图
增删查改代码如下:
增
def Add(self, ctx):
body = ctx.body
unique = self.config.get("unique")
obj = None
if unique:
qy = {}
for i in range(len(unique)):
key = unique[i]
qy[key] = body.get(key)
obj = self.service.Get_obj(qy)
if not obj:
error = self.Add_before(ctx)
if error["code"]:
return {"error": error}
error = self.Events("add_before", ctx, None)
if error["code"]:
return {"error": error}
result = self.service.Add(body, self.config)
if self.service.error:
return {"error": self.service.error}
res = self.Add_after(ctx, result)
if res:
result = res
res = self.Events("add_after", ctx, result)
if res:
result = res
return {"result": result}
else:
return {"error": {"code": 10000, "message": "已存在"}}
删
def Del(self, ctx):
if len(ctx.query) == 0:
errorMsg = {"code": 30000, "message": "删除条件不能为空!"}
return errorMsg
result = self.service.Del(ctx.query, self.config)
if self.service.error:
return {"error": self.service.error}
return {"result": result}
改
def Set(self, ctx):
error = self.Set_before(ctx)
if error["code"]:
return {"error": error}
error = self.Events("set_before", ctx, None)
if error["code"]:
return {"error": error}
query = ctx.query
if 'page' in query.keys():
del ctx.query['page']
if 'size' in query.keys():
del ctx.query['size']
if 'orderby' in query.keys():
del ctx.query['orderby']
result = self.service.Set(ctx.query, ctx.body, self.config)
if self.service.error:
return {"error": self.service.error}
res = self.Set_after(ctx, result)
if res:
result = res
res = self.Events("set_after", ctx, result)
if res:
result = res
return {"result": result}
管理员发布和管理学校网站上的公告信息,确保信息的及时性和准确性。如下图所示。

图5-6网站公告管理列表页面图
系统管理功能允许管理员增加、删除、修改轮播图。如下图所示。
图5-7系统管理列表页面图
资源管理功能允许管理员管理系统使用的各种资源,如图片、文档等,确保资源的有效利用和安全性。如下图所示。

图5-8资源管理列表页面图
如果学生用户进入该系统,则注册该用户的信息,如果注册成功,就可以进入该系统,显示的结果如下。

图5-9注册界面图
注册代码如下:
def Register(self, ctx):
print("===================注册=====================")
userService = service_select("user")
body = ctx.body
if "username" not in body and body["username"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户名不能为空",
}
}, ensure_ascii=False))
if "user_group" not in body and body["user_group"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户组不能为空",
}
}, ensure_ascii=False))
if "password" not in body and body["password"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "密码不能为空",
}
}, ensure_ascii=False))
post_param = body
post_param['nickname'] = body["nickname"] or ""
post_param['password'] = md5hash(body["password"])
obj = userService.Get_obj({"username": post_param['username']}, {"like": False})
if obj:
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户名已存在",
}
}, ensure_ascii=False))
ret = {
"error": {
"code": 70000,
"message": "注册失败",
}
}
bl = userService.Add(post_param)
if bl:
ret = {
"result": {
"bl": True,
"message": "注册成功"
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
网站公告功能展示学校发布的最新通知、政策等,确保学生用户能够及时了解重要信息。界面如下图所示。

图5-10网站公告界面图
校园资讯功能提供学校新闻、活动、讲座等资讯的浏览功能,帮助学生用户更好地融入校园生活。界面如下图所示。

图5-11校园资讯界面图
维修用户输入账号、密码、验证码点击“登录”按钮就会跳转到登录界面。如下图所示。

图5-12注册界面图
栋楼信息功能详细展示每栋宿舍楼的结构、房间数量等信息,方便维修用户了解。界面如下图所示。

图5-13栋楼信息界面图
列出所有待处理的维修任务,包括报修时间、报修内容、报修宿舍等详细信息。维修用户可查看任务详情,接受或拒绝任务,并更新任务状态。界面如下图所示。

图5-14维修信息界面图
6系统测试
6.1系统测试的目的
程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中都是难以避免的。虽然这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息泄露,系统无法正常启动等,为了避免这些问题,我们需要测试程序,再测试过程中发现问题,并纠正它们,从而使系统更长时间稳定成熟。本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但对于长期使用而言是非常重要和必要系统的开发。
软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,系统测试是检查软件是否合格的关键步骤,以及是否符合设计目标的参考。测试主要是查看软件中数据的准确性,正确的操作与否,以及操作的结果,还有哪些方面需要改进。
高校宿舍管理系统,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在高校宿舍管理系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。
6.2系统测试方法
在对高校宿舍管理系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让高校宿舍管理系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个高校宿舍管理系统开发所牵扯的该问题都必须一一解决,提高高校宿舍管理系统的安全性、稳定性。
白盒测试与黑盒测试是测试中比较常用的两种方法。
①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽谅解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。
②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。
用户登录测试:
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
登录模块 | 用户名:admin 密码:123 | 弹出错误提示,提示密码错误 | 弹出错误提示,提示密码错误 | 通过 |
登录模块 | 用户名:123 密码:admin | 弹出错误提示,提示用户名错误 | 弹出错误提示,提示用户名错误 | 通过 |
登录模块 | 用户名:admin 密码:admin | 管理员登录成功 | 管理员登录成功 | 通过 |
删除分类测试:
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
删除分类模块 | 分类名:最新通知 | 删除成功、页面自动跳转 | 删除成功、页面自动跳转 | 通过 |
修改密码测试:
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
修改密码模块 | 原密码:666 新密码:123 确认密码:123 | 弹出错误提示,提示原密码错误 | 弹出错误提示,提示原密码错误 | 通过 |
修改密码模块 | 原密码:admin 新密码:123 确认密码:333 | 弹出错误提示,提示确认密码不一致 | 弹出错误提示,提示确认密码不一致 | 通过 |
修改密码模块 | 原密码:admin 新密码:123 确认密码:123 | 密码修改成功 | 密码修改成功 | 通过 |
通过对功能的测试,高校宿舍管理系统的基本功能都是可行的,不管是系统里面的功能,还是界面的设计都是可值得推广宣传的。
本系统是通过计算机技术,结合高校宿舍管理的需求,研制出的一套用于各个高校宿舍的高校宿舍管理系统。该系统能够为高校宿舍的库存管理提供方便,能够帮助高校宿舍对其进行信息化管理,能够为高校宿舍对各方面的管理提高工作效率。本系统还能够将各个资料录入,让管理层在网上查询所需要的资料,这样一来,就能够省去了专门负责库存管理人的工作量,也为库存管理工作提供了便利。
在对本系统进行了详细的分析以及一系列的可行性研究之后,根据该系统的设计构想,对本软件进行了开发设计。在确定了本系统具有较高的可行性以后,通过对系统的数据库的分析和总体的功能模块的设计,本系统前台采用的是Python开发技术,以MySQL作为后台数据库连接开发。在对系统进行详细的需求分析后,针对不同的需求设立不同的板块,发挥各部分不同的作用。根据该系统的功能结构图展示出了系统内各功能模块之间的业务逻辑结构。并且通过所设计的E-R图,表示出系统各个部分的功能,涉及到系统中各部分的联系,可以让读者能够清晰的了解到本系统的运行流程,并能够进一步的了解到系统各功能模块的相关信息。
[1]李鹏霞,李宛睿.高校学生宿舍智慧化管理系统的设计与实现[J].长江信息通信,2023,36(11):162-164+167.
[2]Han H ,Wang B.Research on the Intelligent Distribution System of College Dormitory Based on the Decision Tree Classification Algorithm[J].Journal of Contemporary Educational Research,2023,7(2):
[3]霍佳璐,杨林生.基于Java的高校宿舍智能管理系统的设计与实现[J].信息与电脑(理论版),2022,34(22):134-136.
[4]刘华明,钱焕然,毕学慧,等.高校宿舍管理系统的设计与实现[J].通化师范学院学报,2021,42(10):89-93.DOI:10.13877/j.cnki.cn22-1284.2021.10.014.
[5]曾玉红.基于B/S高校宿舍管理系统的设计与实现[J].电脑知识与技术,2019,14(36):60-62.DOI:10.14004/j.cnki.ckt.2019.4223.
[6]Siegel A .Superficial intersubjectivity in ELF university dormitory interactions[J].Journal of English as a Lingua Franca,2019,7(2):377-402.
[7]伍柏赪.基于S2SH框架的高校宿舍管理系统设计与实现[D].长沙理工大学,2019.
[8]覃勇,尉成玉.基于B/S结构的高校宿舍管理系统的设计与实现[J].信息与电脑(理论版),2024,(24):137-139.
[9]万德生.高校宿舍管理系统的设计与实现[D].吉林大学,2024.
[10]李娟.高校学生宿舍用电管理系统的设计与实现[D].河北科技大学,2023.
[11]Mostafavi N ,Farzinmoghadam M ,Hoque S .Envelope retrofit analysis using eQUEST, IESVE Revit Plug-in and Green Building Studio: a university dormitory case study[J].International Journal of Sustainable Energy,2024,34(9):594-613.
[12]鲁旗会.高校公寓化宿舍管理信息系统的设计与实现[D].大连理工大学,2015.
[13]钱立,邓绯.高校新生入学宿舍管理系统的设计与实现[J].重庆三峡学院学报,2024,30(03):48-51.DOI:10.13743/j.cnki.issn.1009-8135.2024.03.013.
[14]鲍林黔.高校宿舍信息管理系统的设计与实现[D].厦门大学,2023.
[15]齐慧敏.高校宿舍管理系统的设计与实现[D].西安电子科技大学,2023.
[16]王轶.高校学生宿舍管理信息系统的设计与实现[D].电子科技大学,2023.
[17]章慧,刘亚军.基于SSH框架的高校宿舍管理系统的设计与实现[J].信息通信,2021,(05):183-184.
[18]陈佳玲.高校学生宿舍管理信息系统设计与实现[D].电子科技大学,2021.
[19]谢之凯,王琳.基于C/S结构的高校宿舍管理系统设计与实现[J].科技信息,2021,(16):629+631.
[20]陈小年.基于UML的高校学生宿舍管理信息系统的设计与实现[D].中山大学,2021.
.
经历了近三个多月的动手实践及老师辛勤的指导和同学朋友热心的帮助下,本人的毕业设计高校宿舍管理系统的基本功能也基本完成。
此次设计中,通过不断的探讨与学习使我熟悉、使我初步了解了Django相关技术。我做的是一个B/S结构的高校宿舍管理系统,使我对做网站所需要,及运行的环境有了初步的了解,在此次设计中我翻阅了较多的书籍,在有限的时间了丰富了对高校宿舍管理系统技术的知识也积累了少许的经验。起初对Python的初步认识,通过这次设计更进一步的了解了其工作原理,懂得了配置服务器环境,连接数据库源,在设计过程中,也学会了用Pycharm设计一个简单的页面,增强了动手的能力,激发了在此方面的兴趣。
但是由于时间、基础及缺乏实践等多方面的问题,还有诸多需要解决的问题依然存在,设计中很多方面考虑不够周全或者考虑不到。
非常感谢我的老师,我的同学,我的朋友并希望在今后的学习生活中不断陪养多方面的兴趣,不断学习进步从而能够实现独立完成。设计中存在的诸多缺点诚肯老师的原谅。