SpringBoot+MyBatisPlus+Vue+ElementUI实现前后端分离的物业管理系统

简介: 🍅程序员小王的博客:程序员小王的博客🍅 欢迎点赞 👍 收藏 ⭐留言 📝🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕😊 如果需要源码,扫描主页左侧二维码,加我微信 一起学习、一起进步🍅java自学的学习路线:java自学的学习路线

一、前言

这是我今年三月份左右实现的一套前后端分离的物业管理系统,现在在CSDN上面演示给大家看一下,如果对这套系统感兴趣的同学,可以私底下和一起交流学习!对于小区物业管理来说,其工作流程的繁杂性、多样化、管理复杂、收缴费用与设备维护繁琐。计算机已完全能够胜任物业管理工作,而且更加准确、方便、快捷、高效、清晰、透明,它完全可以克服以上所述的不足之处。这将给项目查询和管理带来很大的方便,从而给物业管理工作带来更高的效率,这也是物业管理正规化、现代化的重要标志。


因此,开发一套高效率、无差错的小区物业管理系统软件十分必要。本系统的主要目的是告别帐本,安全、快捷的保存数据信息。针对以上问题,我想设计一套当前潮流的前后端分离项目,前台主要使用vue作为开发语言,饿了么公司的ElementUI框架作为前端框架,后台使用MySQL作为数据库管理系统,SpringBoot+MyBatisPlus作为后端框架,设计开发了小区物业管理系统。


本系统在功能实现上采用了目前比较流行的SpringBoot,MyBatisPlus两个主流框架完成开发,还使用了servlet的一些技术完成前后端的网页请求,和JSON数据的接受和发送。在系统框架上可以分为物业管理员进入系统,可以查看住户资料,可以查看那些人投诉了物业并积极处理,还有那家家里面东西坏了,保修处理,电费水费等缴费管理,停车位管理,疫情防疫管理等进行CURD的操作,还添加了一些搜索等功能完善了系统的功能架构,使得界面在简约好看的基础上,还有很多丰富的功能。既满足了物业管理员对小区管理的需求,也完成了系统能让普通的物业管理员能简单上手操作的目标。


第1章 绪论

1.1背景与意义

近年来,我国物业管理企业如雨后春笋,迅猛发展,展现了这一新兴产业的生机与活力。不少学者都认为,物业管理这一行业的前景很好,大有可为。笔者现结合工作实际,试图从专业的角度,分析物业管理行业的现状,并对中国物业管理行业发展方向进行分析,探索物业管理的未来发展方向。


随着我国经济建设蓬勃发展和人民生活水平的不断提高,近年来在我国的一些大、中、小城市相继开发建设了大量的生活小区、写字楼等。为适应市场经济的需要,物业服务企业应运而生,并逐步发展成为一个新兴的行业。物业管理作为现代房屋管理的一种管理模式,是随着房地产经济市场化和住房商品化的发展而产生的,它是房地产生产、流通、消费领域的延续,也是房地产产业的一个重要分支。物业管理实行的是企业化经营、专业化管理、社会化服务和市场化运作的运行机制,适应了社会主义市场经济体制的需要。物业管理是新生事物,受地域经济发展水平、政策规范、城市规划、设计环境和建筑质量等诸多因素的制约和影响,其规范化、规模化发展仍需一个艰难的探索过程。


对品质住宅而言,高端的设备与高品质的物业管理并重。品质住宅物业项目是现代城市建设文明的结晶,同时彰显物业服务的文化价值。品质住宅除了过硬的硬件、高品位的设计外,其承载的生活也应该充满文化和享受体验。毕竟,住进高端楼盘的业主更希望通过良好的服务来触达美好生活。


因此,开发这样一套小区物业管理系统软件成为很有必要的事情,我们将就本次毕业设计的系统选定为小区物业管理系统


1.2开发现状分析

基于我国在小区物业管理方面的诸多现状,经过多方面的调查,参阅现有的一些物业管理系统参考资料等等,,开发出现在的小区物业管理系统,实现与小区业主相关的各种信息的系统化、规范化和自动化


本系统可以实现:通过这个系统完成对业主基本信息、业主缴费基本信息、管理员基本信息、管理员-业主交流信息的充分共享和规范化管理;通过对小区信息的开发过程的调查和记录,希望在小区人员有调动时,能够及时的进行小区信息的维护与更新,以便更好地了解小区业主的信息及维护后台数据库;


1.3作品研究内容


本作品的研发内容是通过目前主流前后端分离的技术,前端主要采用Vue、ElementUI,后端主要采用SpringBoot、MyBatisPlus+mysql数据库的技术去实现一个符合市场需求的物业管理系统,其中的主要内容包括物业管理系统的登录,然后注册由系统内部进行注册,然后登录管理系统后,有住户资料管理模块,投诉管理模块,报修管理模块,缴费处理模块,停车位管理模块,疫情防控管理模块,实现小区智能化管理。



第2章 开发工具及相关技术

2.1 开发工具


IDEA 后端开发工具

IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一。


Intellij IDEA 最突出的功能自然是调试(Debug),可以对Java代码,JavaScript,JQuery,Ajax等技术进行调试。[3]。


WebStorm前端开发工具

WebStorm2021是一款专业的HTML编辑工具,在html5和JavaScript 方面也很出色。可以说是“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”。新版对JavaScript,TypeScript和CSS支持更好,改进了Vue.js的体验,并为Jest集成增加了新功能。


JetBrains 打造的前端开发工具 WebStorm 发布了 2021.3。WebStorm 2021.3 最新变化:ES2022 私有类成员支持、新远程开发功能、更出色的单仓库支持、Deno LSP、拆分 Run(运行)工具窗口等。


2.2 tomcat服务器

tomcat是一个开源而且免费的jsp服务器,可实现JavaWeb程序的装载,是配置JSP(Java Server Page)和JAVA系统必备的一款环境。它是apache软件基金会的jakarta项目中的一个核心项目,因为tomcat技术先进性能稳定和监督易用性已成为最为广泛的jsp服务器。


Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。中小型企业很喜欢它的一个原因[2]。


2.2作品的技术栈

基于SpringBoot、MyBatisPlus+Vue前后端分离的技术体系,MySQL数据库,Tomcat服务器,以及maven搭建技术;应用SpringBoot、MyBatisPlu开源框架搭建系统;应用Vue及axios等JS框架技术实现了前端网页。聚焦Vue3、SSM、ElementUI等主流技术栈实现一个拥有前后端分离技术的物业管理管理系统[4]。


2.3 相关技术

2.3.1 SpringBoot框架

Spring Boot是用来简化Spring应用初始搭建以及开发过程的全新框架,被认为是Spring MVC的“接班人”,和微服务紧密联系在一起。


在使用传统的Spring去做Java EE(Java Enterprise Edition)开发中,大量的 XML 文件存在于项目之中,导致JavaEE项目变得慢慢笨重起来,,繁琐的配置和整合第三方框架的配置,导致了开发和部署效率的降低。


Spring Boot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。同时它集成了大量常用的第三方库配置,Spring Boot应用中这些第三方库几乎可以是零配置的开箱即用(out-of-the-box),大部分的 Spring Boot 应用都只需要非常少量的配置代码(基于 Java 的配置),开发者能够更加专注于业务逻辑。


2.3.2  MyBatisPlus框架

MyBatis-Plus 是一个 Mybatis 增强版工具,在 MyBatis 上扩充了其他功能没有改变其基本功能,为了简化开发提交效率而存在。在使用过程中,MP提供一套通用的Mapper和Server的操作,只需要继承简单配置即可使用单表大部分CRUD操作。MP还支持Lambda形式调用、支持多种数据库操作。MP内置也有代码生成器、物理分页插件,MP的内置生成器不仅仅生成实体、持久层接口、xml文件,还可以生成server以及controller等等。


2.3.3 ElementUI前端框架

我们学习VUE,知道它的核心思想式组件和数据驱动,但是每一个组件都需要自己编写模板,样式,添加事件,数据等是非常麻烦的,所以饿了吗推出了基于VUE2.0的组件库,它的名称叫做element-ui,提供了丰富的PC端组件element-ui 是饿了么前端出品的基于 Vue.js的后台组件库,方便程序员进行页面快速布局和构建


2.3.4 实现原理

在Web应用开发中,有两种开发模式:前后端不分离和前后端分离。


前后端不分离的开发模式耦合度高,适合纯网页开发;前后端分离的开发模式耦合度低,前端可以通过访问接口来对数据进行增删改查。所以,前后端分离的开发模式是更被开发者广泛使用的一种。


前后端分离主要是指,随着Web技术的发展,采用前端、后端各自独立开发的模式,解决前端后端一体化开发所带来的互相制约问题,提高网站项目开发效率和后续的可维护性,同时可以通过标准化的Web API为前后端传递标准化数据,如JSON、XML格式的数据。


Django Rest Framework,简称DRF,中文意思是“Django表述状态转化框架”,是一款功能强大、基于Django框架开发的、用于构建符合RESTful风格Web API的、前后端分离的商业化开发工具包。


它是免费开源的,被一些大型IT企业所使用,是目前非常流行的商业级技术框架之一。


Django的Rest Framework前后端分离实现原理如图所示。



第3章 需求分析

本作品的研发内容是通过JavaWeb的技术去实现以中大南方学生宿舍为参考需求来源,本设计旨在开发出一款能够对宿舍信息和用户人员进行科学管理的系统。系统要能够通过操作,对用户的信息和宿舍的信息进行CURD,同时也增加了一些小设计便于管理员更加简洁的使用系统。接下来从功能需求分析和软硬件需求分析两方面来介绍本系统的需求分析。


3.1 可行性分析

技术可行性

小区物业管理系统采用了当前的主流计算结构模式进行开发,前台开发工具选用Vue、ElementUI。VueVue 渐进式javascript框架: 让我们通过操作很少的DOM, 甚至不需要操作页面中任何DOM元素,就很容易的完成数据和视图绑定,具有易用、通用和开发效率高的特点。后台的数据库开发工具选用了SpringBoot、MyBatisPlus。Spring Boot 是一套全新的框架,它来自于 Spring 大家族,因此 Spring 所有具备的功能它都有,而且更容易使用;Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。Spring Boot 开发了很多的应用集成包,支持绝大多数开源软件,让我们以很低的成本去集成其它主流开源软件。MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。Mybatis-Plus 在 MyBatis 之上套了一层外衣,单表 CURD 的操作几乎都可以由 MyBatis-Plus 代替执行。而且提供了各种查询方式,分页行为。作为使用者无需编写 xml,直接调用 MyBatis-Plus 提供的 API 就可以了。这两种开源框架功能强大,有较好的接口,作为本系统开发工具是可行的。


经济可行性

随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。21世纪是一个充满竞争和挑战的世纪。在这个世纪中,高效化、系统化、规范化、自动化已成为现代企业的代名词。做为我国支柱产业之一的房地产业在当今智能化小区的发展的驱动下,在当今信息时代的推动下,拥有自己的一套特色的小区物业管理系统是非常必要的,与小区内繁多的硬件设施相比较,传统的手工式的管理方式已经无法适合当今的庞大的数据处理和精确的运算需求,所以一套精美完善的小区物业管理系统是提高工作效率节省人力物力的有效解决方案。传统的管理方式,对物业管理人员要求数量多,耗资高,错误率高,工作人员流动和对新人的培训经费也是不小的开支。一套完善的小区物业管理系统可持续使用并能随着时代和工作的需求不断更新,一期投入终身受用,按长期的使用计算,开发系统的造价平均到每年与传统式的管理方式的年耗资本相对比,性价比是可行的。开发这套系统的经济可行性是很高的。


操作可行性

对于这套小区物业管理系统而言,在投入使用前,会由开发并能熟练操作本系统的工程人员对用户群进行专业系统的培训。培训内容应包括,熟练掌握系统的各个功能和简单的系统维护,在开发设计程序的过程中直观的界面和控件的文字解释完全能使得用户充分理解起功能和意义,在计算机普及的今天,用户对本系统的操作完全可以看做是一种简单的,配合形式的手工操作,因为本系统最适合用于微型机,可以说几乎任何人都可以使用和管理。所以本系统的操作是完全可行的。


调度可行性

调度可行性指的是建议的计算机系统能否在规定的期限内交付给用户。由于合同的规定,能否预期的交付涉及到开发人员的信誉等等。所以开发期限的选定也是非常重要的因素,根据小区物业管理的日常的正常的业务运作规律和工作性质,可以看出这些内容是我们平时常见的工作,所以开发人员在开发起来比较容易入手,所以可以判断开发本系统的周期比较短,开发中的不可预见问题会比较容易解决,在开发小组的分析后应该容易做出相对准确的,误差微小的开发期限,应该可以在规定时间内,快速的、完整的交付给用户使用。


社会因素可行性分析

目前已有许多的成功的小区管理系统的先例,社会需要小区管理系统的全面化和智能化。本系统开发也严格遵照国家有关的小区务业管理相关的法律法规相一致。执行国家规定的费率标准,及宣传法规。另外,系统的操作和工作方式也符合管理人员的日常业务处理习惯。而且操作方便灵活,便于学习,日常的维护更新。因此,具有可行性。


3.2 功能需求分析

经过调研与可行性分析,出于对人们生活住房考虑,设计了这套小区物业管理系统,本系统主要考虑到小区物业管理的普遍要求,小区物业管理系统主要包括:


(1) 对小区所有住户资料的录入和增、删、改、模糊查询,查看统计等功能实现,在基于这些小区的房产资源对小区进行管理。


(2) 对小区住户的投诉进行管理,搜索投诉内容等,解决后删除投诉内容


(3) 在具有了所有的基本资料信息后,需要实现实质性的物业管理。主要的管理业务包括:物业设备管理、生活收费管理、停车场管理,小区疫情防护等。这些成为小区物业管理的主体。


这样就可以便于管理员对小区进行全面的了解和管理了。


3.3 系统用例图

用例图描述了执行者和系统之间的关系,以及执行者可以使用那些功能和了解那些功能和执行者之间的联系,我们使用了powerdesigner画的用例图,如图所示。



第4章 系统总体设计

一个完整的系统离不开前端页面和数据库,本章主要介绍在基于前后端分离实现的的业务管理系统的设计目录结构,主要界面设计和数据库设计,为实现系统做准备。

4.1 设计目录结构

首先介绍一下后端的结构目录。


图4-1 目录



图4-2 目录


如图4-1和图4-2所示,我的后端文件目录一共有三大模块,分别是java代码、resource资源目录、测试三大板块,首先先说第一个板块,它撰写的内容是后端java代码,里面又细分了四大类,分别是controller控制器(处理器代码)、持久层接口Dao、、业务层模块service、还有测试模块test。


再介绍一下前端的结构目录。



图4-3 目录



图4-4 目录


如图4-3和图4-4所示,我的前端文件目录一共有两大模块,前端页面模块,和启动项目模块

4.2 数据库设计

由上面需求分析板块中的系统实体类图和数据字典[8],在这最少需要设计了11个表。如图4-21所示:



图4-21 数据表


4.2.1 数据表设计

物业管理系统数据库表设计描述:


数据库名: community


文档版本: V1.0.0


文档描述: 物业管理系统数据库表设计描述


表名: p_admin

image.png


表名: p_complaint

image.png


表名: p_covid19annouc

image.png


表名: p_healthreport

image.png


表名: p_owner

image.png


表名: p_parking

image.png


表名: p_parkingplace

image.png


表名: p_parkingrecord

image.png


表名: p_paybill

image.png


表名: p_paybillrecord

image.png


表名: p_repair

image.png

4.3 主要界面设计

登录页面,如图4-3-1所示。



图4-3-1登录界面


用户主界面:



图4-3-2用户主界面


住户资料管理页面:



图4-3-2住户资料管理界面


查看统计界面:



图4-3-3查看统计日历界面


投诉管理界面:



图4-3-4 投诉管理界面图


报销管理界面:



图4-3-5 报销管理界面图


缴费处理界面:



图4-3-6缴费管理界面图


缴费记录界面:



图4-3-7缴费记录界面图


停车场管理界面:



图4-3-8停车场管理界面图


车位管理界面:



图4-3-9车位管理界面图


停车记录管理界面:



图4-3-10车位管理界面图


疫情防控健康状况管理界面:



图4-3-11疫情防控健康状况


第5章 系统详细实现

5.1 配置文件

首先要介绍的是配置文件部门,我们开发的是SpringBoot项目,习惯大于配置,所以写入的配置文件比较少,主要就是服务器的配置,数据库链接配置。



5.2 入口类

项目依赖的入口类



5.3 物业管理系统登录源代码

5.4 用户资料管理部份代码



5.5 疫情防控管理部分代码



项目发展现状及源码

该系统以居民小区为例,为小区的居民操作一系列的信息提供了方便,该系统所实现的功能是在调研相关人员参考资料中得知,本系统实现了主要的基本功能。但是由于时间有限,个人能力有限,整个系统的功能显然远远不够完善的,特别是物资使用模块的功能尤其需要完善。在设计过程中,由于需要达到进度要求和整个系统的实用性,我需要从用户的角度来考虑使用此系统。此系统的核心点是:管理员可以通过编号来查询单个的响应数据信息,虽然本系统在功能上存在着不足,不能完全符合现实的需要,但总体来说,界面友好、简单易用。


该系统满足了小区业主和物业的要求。系统以简单,方便的方式给小区业主提供了很大的方便,全面是的实现了所谓互联网时代的人机操作,给管理员对数据的录入,修改,查询和删除和备份提供了很大的节省时间,从而使管理员可以更充分的维护整个小区的信息安全。



相关文章
|
21天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
113 1
|
5天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
82 62
|
3天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
13 2
|
6天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
30天前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
212 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
2月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
基于Java+Springboot+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的大学竞赛报名管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
183 3
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
|
22天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用
【10月更文挑战第8天】本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,通过 Spring Initializr 创建并配置 Spring Boot 项目,实现后端 API 和安全配置。接着,使用 Ant Design Pro Vue 脚手架创建前端项目,配置动态路由和菜单,并创建相应的页面组件。最后,通过具体实践心得,分享了版本兼容性、安全性、性能调优等注意事项,帮助读者快速搭建高效且易维护的应用框架。
29 3
|
2月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的蛋糕商城管理系统
基于Java+Springboot+Vue开发的蛋糕商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的蛋糕商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
118 3
基于Java+Springboot+Vue开发的蛋糕商城管理系统
|
2月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的美容预约管理系统
基于Java+Springboot+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的美容预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
50 3
基于Java+Springboot+Vue开发的美容预约管理系统
|
2月前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)