基于Springboot+javacpp+mysql实现的停车场管理系统

基于Springboot+javacpp+mysql实现的停车场管理系统 1,项目概述 随着人民生活水平的逐步提高,家用车也逐步成为了家庭生活的必须品

本文包含相关资料包-----> 点击直达获取<-------

基于Springboot+javacpp+mysql实现的停车场管理系统

1.项目概述

随着人民生活水平的逐步提高,家用车也逐步成为了家庭生活的必须品。于是随着马路上车辆的增多,停车成为了一个避免不了的问题。停车场也变成了一个小区,一个单位,一家餐饮广场的必备配套设施,也正因如此,自动化,机械化,智能化的停车信息管理系统成为了当下生活的必备软件,几乎每一家,每一个人都会使用到他。而他的工作效率的好坏,往小的说,是影响到这一个家庭的出行。往大的说,则是影响到一个地区,甚至整个社会的运行效率。本课程主要根据一套停车系统管理规则,设计一套停车信息管理系统,来帮助停车场实现自动化,智能化管理。主要工作内容如下:

  • 对停车信息管理系统进行了需求分析,详细设计了系统的功能模块与业务流程,并分析与设计了停车信息的数据架构和统计方案

  • 基于SERVLET、DAO框架和MVC设计模式,开发实现了停车信息管理系统,包括停车收费和记录统计两大模块。停车收费模块包括了车辆进场空余位置判断,车辆推荐位置获取,车辆出场收费计算,车辆照片添加,车辆照片查看等。记录统计模块包括了历史记录查询,停车数据查看,预计收费查询,历史记录修改,停车数据统计等

使用本课程设计实现的停车信息管理系统,可以有效管理车辆的进出,费用用的统计和历史记录的查询。以较低的实施成本,达成中小型停车场自动化收费管理的目的。

2.系统框架

2.1 网络架构

2.2 系统架构

2.3 系统功能

3.系统需求分析

3.1 用户登录模块

3.1.1 功能描述

输入用户名,密码,验证码,按确认按钮,若验证码输入错误或者用户名密码输入错误,弹出警告框,提示相应信息,若输入正确则进入后台首页。

3.1.2 业务处理流程及要求

  • 输入用户名、密码和验证码

  • 如输入错误则弹出相应警告框

  • 若输入正确则进入后台主页

3.1.3 输入信息

  • 用户名

  • 密码

  • 验证码

3.1.4 输出信息

若验证码输入错误或者用户名密码输入错误,弹出警告框,提示相应信息,若输入正确则进入后台首页。

3.2 车辆进出模块

3.2.1 功能描述

输入车辆类型,车牌号,入场时间(本实验测试用),若车辆未入库且车位有空余,则提示欢迎入场,并给出其要停的车位。若车辆未入库但是车库车已满,则提示该类型的车已停满。若车辆已入库,则输出欢迎下次光临提示,并显示其要付款的金额。

3.2.2 业务处理流程及要求

  • 输入车牌信息,车辆类型,入场时间

  • 若未入库且车库有空余,则提示欢迎入场,并给出其要停的车位

  • 若车辆未入库但是车库车已满,则提示该类型的车已停满

  • 若车辆已入库,则输出欢迎下次光临提示,并显示其要付款的金额

3.2.3 输入信息

  • 车辆类型

  • 车牌号

  • 入场时间(本实验测试用)

3.2.4 输出信息

若车辆未入库且车位有空余,则提示欢迎入场,并给出其要停的车位。若车辆未入库但是车库车已满,则提示该类型的车已停满。若车辆已入库,则输出欢迎下次光临提示,并显示其要付款的金额。

3.3 车辆图片添加

3.3.1 功能描述

输入车牌号,然后添加车辆图片,拖拽进去即可。系统就会为在车库中的车自动添加车辆图片。在实时车库监控中就可以查看。

3.3.2 业务处理流程及要求

  • 输入车牌号,添加车辆照片

  • 添加成功

  • 图片太大或者不是图片则添加失败

3.3.3 输入信息

  • 车牌号

  • 添加车辆照片

3.3.4 输出信息

  • 车辆照片添加情况

3.4 实时车库监控

3.4.1 功能描述

这里显示车库中所有的车辆信息,包含车牌号、车辆类型、入场时间、推荐车位。如果有添加车辆照片,还可以直接点击前面的小图标进行查看,照片会以模态框的形式呈现。而且用户还可以在列表中对想要查找的车进行筛选。

3.4.2 业务处理流程及要求

  • 显示车辆信息

  • 查询筛选车辆信息

  • 车辆照片查看

3.4.3 输入信息

3.4.4 输出信息

  • 车辆信息

  • 车辆照片

3.5 预计收入查询模块

3.5.1 功能描述

查询车库中所有的车,到现在为止应该缴纳的金额。具体到每一辆车,而且将他们的信息以表格的方式呈现。

3.5.2 业务处理流程及要求

查询所有车到目前为止应该缴纳的金额,方便车主询问。

3.5.3 输入信息

3.5.4 输出信息

车库内所有车辆到目前为止应该缴纳的金额。

3.6 历史记录模块

3.6.1 功能描述

查询所有历史的停车信息记录,用户可以在网页上对停车信息记录进行筛选,还可以进行相应的修改、删除和排序。当数据量过大时还可以选择一页呈现多少条数据。

3.6.2 业务处理流程及要求

  • 查询所有的停车历史记录,利用js技术可以在表格中进行筛选和排序

  • 修改相应的历史记录,管理员可根据需要修改相应车辆的停车历史记录

  • 删除历史记录,管理员可根据需要删除相应的历史记录

3.6.3 输入信息

3.6.4 输出信息

车库历史以来所有车的停车记录。

3.7 数据统计模块

3.7.1 功能描述

统计用户选择时间段内车库内车的数量和相应的收入情况。并以柱状图和折现图的形式将时间段内每一天的变化呈现给管理员。

3.7.2 业务处理流程及要求

  • 用户输入相应的时间段

  • 服务器将相应时间段内统计的数据以柱状图和折现图的形式呈现给用户

  • 用户根据需要变换展现图的类型

3.7.3 输入信息

  • 用户选择相应的时间段

3.7.4 输出信息

  • 统计车库历史以来所有车的停车记录

  • 收费记录

  • 以折线图或柱状图显示

3.8 过滤器

3.8.1 功能描述

若用户未登录就直接输网址进入后台界面,会触发过滤器。过滤器会将请求转发到登录界面,并提示:“请先登录”。

3.8.2 业务处理流程及要求

  • 用户输入网址

  • 过滤器查看是否是登录界面

  • 若是,则直接跳转
  • 若不是,则查看session作用域中有无user这个对象,若有正常跳转,若无,则跳转到登录界面

3.8.3 输入信息

3.8.4 输出信息

3.9 车牌识别模块

3.9.1 功能描述

服务器后台可以根据用户在服务器上传的图片,然后进行车牌识别。车牌识别率较高。而且还能够识别车牌的颜色,从而区别车辆类型。

3.9.2 业务处理流程及要求

  • 输入车牌图片的绝对路径

  • 开始调用模型进行车牌识别

  • 打印识别结果

3.9.3 输入信息

  • 车牌图片绝对路径

3.9.4 输出信息

  • 车牌识别结果

4.系统详细设计

说明各模块的功能,并列出UML类图,以及类的说明。

4.1 用户登录模块

JSP界面1:index.jsp

描述 管理员登录页面
所在工程目录 /View/index.jsp
加载的文件 文件名 描述
my-login.css 网页布局
Pointandline.js 动态背景生成
Login_code.js 验证码生成
主要的javascript函数 名称 属性 描述
CreateCode 生成验证码
Pointandline.js 网页动态背景
ValidateCode 验证验证码

函数ValidateCode说明

函数名称 ValidateCode
描述 验证验证码
输入参数
步骤 验证用户输入的验证码是否正确
输出参数 True or False
注释

函数CreateCode说明

函数名称 CreateCode
描述 生成验证码
输入参数 数字
步骤 生成一个相应数字的验证码
输出参数 网页图片
注释

类LoginServlet说明

名称 LoginServlet
继承或实现 HttpServlet接口
描述 用户登录账号密码验证和界面跳转
类别
package com.example.park.controller; import com.example.park.DAO.userDao; import com.example.park.model.UserBean; import javax.servlet. ; import javax.servlet.http. ; import javax.servlet.annotation. ; import java.io. ;
与其它类的调用关系 调用userDAO,userBean

4.2 车辆进出模块

JSP界面2:index1.jsp

描述 车辆进出管理
所在工程目录 /View/index1.jsp
加载的文件 文件名 描述
dropzone.css 文件上传框样式
jQuery 上传的js代码
bootstrap.min.css 网页样式调用
主要的javascript函数 名称 属性 描述
jQuery 文件拖拽上传
bootstrap.min.js 模板js代码

函数jQuery说明

函数名称 jQuery
描述 文件拖拽上传
输入参数 一个文件(图片)
步骤 将文件从桌面拖入js的选定框内即可实现文件上传。
输出参数 上传成功或上传失败
注释

类CarIdServlet说明

名称 CarIdServlet
继承或实现 HttpServlet接口
描述 车辆进出的管理和消息反馈
类别
package com.example.park.controller; import com.example.park.DAO.parkDao; import com.example.park.model.InfoBean; import com.example.park.model.ParkBean; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.MultipartConfig; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Calendar; import java.util.Date;
与其它类的调用关系 调用cal类,ParkBean,parkDao,baseDao,InfoBean

类Cal说明

名称 Cal
继承或实现
描述 车辆出库时计算其应付的金额
类别
package com.example.park.controller; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;
与其它类的调用关系 Date,Calendar

4.3 车库实时查看模块

JSP界面3:index2.jsp

描述 车库实时查看
所在工程目录 /View/index2.jsp
加载的文件 文件名 描述
ace.min.css 网页样式调用
jQuery(匿名函数) 页面table的查询,排序
bootstrap.min.css 网页样式调用
主要的javascript函数 名称 属性 描述
jQuery 表格的查询与排序

函数jQuery说明

函数名称 jQuery
描述 表格的查询与排序
输入参数 一个table表
步骤 将表格进行js化,然后可以通过查询框查询和字段排序
输出参数 查询后或排序后的结果
注释

类ShowParkServlet说明

名称 ShowParkServlet
继承或实现 HttpServlet接口
描述 显示所有在车库中的车辆记录
类别
package com.example.park.controller; import com.example.park.DAO.parkDao; import com.example.park.model.ParkBean; import javax.servlet. ; import javax.servlet.http. ; import javax.servlet.annotation.*; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList;
与其它类的调用关系 ParkBean,parkDao,baseDao

4.4 预计收费查看模块

JSP界面4:index3.jsp

描述 预计收费查看
所在工程目录 /View/index3.jsp
加载的文件 文件名 描述
ace.min.css 网页样式调用
jQuery(匿名函数) 页面table的查询,排序
bootstrap.min.css 网页样式调用
主要的javascript函数 名称 属性 描述
jQuery 表格的查询与排序

函数jQuery说明

函数名称 jQuery
描述 表格的查询与排序
输入参数 一个table表
步骤 将表格进行js化,然后可以通过查询框查询和字段排序
输出参数 查询后或排序后的结果
注释

类ShowParkServlet说明

名称 ShowParkServlet
继承或实现 HttpServlet接口
描述 显示所有在车库中的车辆记录
类别
package com.example.park.controller; import com.example.park.DAO.parkDao; import com.example.park.model.ParkBean; import javax.servlet. ; import javax.servlet.http. ; import javax.servlet.annotation.*; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList;
与其它类的调用关系 ParkBean,parkDao,baseDao

自定义标签类Caltag说明

名称 Caltag
继承或实现 SimpleTagSupport接口
描述 算车车库中所有车现在应该缴纳的金额
类别 输入参数:入场时间
package com.example.park.Tag; import java.io. ; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import javax.servlet.jsp. ; import javax.servlet.jsp.tagext.*; import com.example.park.controller.cal;
与其它类的调用关系 Cal类

自定义标签类Durtag说明

名称 DurTag
继承或实现 SimpleTagSupport接口
描述 算车车库中所有车现在已经停的时长
类别 输入参数:入场时间
package com.example.park.Tag; import java.io. ; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import javax.servlet.jsp. ; import javax.servlet.jsp.tagext.*;
与其它类的调用关系

4.5 历史记录查看模块

JSP界面5:index4.jsp

描述 车库实时查看
所在工程目录 /View/index4.jsp
加载的文件 文件名 描述
ace.min.css 网页样式调用
jQuery(匿名函数) 页面table的查询,排序
bootstrap.min.css 网页样式调用
主要的javascript函数 名称 属性 描述
jQuery 表格的查询与排序

函数jQuery说明

函数名称 jQuery
描述 表格的查询与排序
输入参数 一个table表
步骤 将表格进行js化,然后可以通过查询框查询和字段排序
输出参数 查询后或排序后的结果
注释

类ShowRecordServlet说明

名称 ShowRecordServlet
继承或实现 HttpServlet接口
描述 显示所有数据库中的历史记录
类别
package com.example.park.controller; import com.example.park.DAO.parkDao; import com.example.park.model.InfoBean; import javax.servlet. ; import javax.servlet.http. ; import javax.servlet.annotation.*; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList;
与其它类的调用关系 parkDao,baseDao,InfoBean

类ModifyServlet说明

名称 ModifyServlet
继承或实现 HttpServlet接口
描述 修改数据库中的历史记录
类别
package com.example.park.controller; import com.example.park.DAO.parkDao; import com.example.park.model.InfoBean; import javax.servlet. ; import javax.servlet.http. ; import javax.servlet.annotation.*; import java.io.IOException; import java.text.SimpleDateFormat;
与其它类的调用关系 parkDao,baseDao,InfoBean

类DeleteServlet说明

名称 DeleteServlet
继承或实现 HttpServlet接口
描述 删除数据库中的历史记录
类别
package com.example.park.controller; import com.example.park.DAO.parkDao; import javax.servlet. ; import javax.servlet.http. ; import javax.servlet.annotation.*; import java.io.IOException;
与其它类的调用关系 parkDao,baseDao,InfoBean

4.6 历史数据统计模块

JSP界面6:index5.jsp

描述 车库实时查看
所在工程目录 /View/index5.jsp
加载的文件 文件名 描述
匿名函数一 车辆出入的统计
匿名函数二 车辆收费数据的统计
bootstrap.min.css 网页样式调用
主要的javascript函数 名称 属性 描述
匿名函数一 表格的查询与排序
匿名函数二

函数匿名一说明

函数名称
描述 将查询到的车辆数量数据进行图形化的展示
输入参数 一段时间区间
步骤 将时间区间中每一天车库中车辆的数量进行图形化的展示
输出参数 一个柱状图和折线图
注释

函数匿名一说明

函数名称
描述 将查询到的车辆收费数据进行图形化的展示
输入参数 一段时间区间
步骤 将时间区间中每一天车库中车辆的收费信息总和进行图形化的展示
输出参数 一个柱状图和折线图
注释

匿名函数二说明

名称
继承或实现 HttpServlet接口
描述 显示所有数据库中的历史记录
类别
package com.example.park.controller; import com.example.park.DAO.parkDao; import com.example.park.model.InfoBean; import javax.servlet. ; import javax.servlet.http. ; import javax.servlet.annotation.*; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList;
与其它类的调用关系 parkDao,baseDao,InfoBean

类SumServlet说明

名称 SumServlet
继承或实现 HttpServlet接口
描述 将数据库中的数据进行排序求和分组后输出给前端
类别
package com.example.park.controller; import com.example.park.DAO.parkDao; import com.example.park.model.sumBean; import javax.servlet. ; import javax.servlet.http. ; import javax.servlet.annotation.*; import java.io.IOException; import java.io.PrintWriter; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar;
与其它类的调用关系 parkDao,baseDao,InfoBean,Calendar

4.7 过滤器模块

类AuthorityFilter说明

名称 AuthorityFilter
继承或实现 HttpServlet接口
描述 将网页进行过滤,查看用户是否登录
类别
import javax.servlet. ; import javax.servlet.annotation. ; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.IOException;
与其它类的调用关系 parkDao,baseDao,InfoBean,Calendar

4.8 车牌识别模块

类EasyPrTest说明

名称 EasyPrTest
继承或实现 HttpServlet接口
描述 车牌识别功能
类别
import static org.bytedeco.javacpp.opencv_highgui.imread; import static org.easypr.core.CoreFunc.getPlateType; import static org.easypr.core.CoreFunc.projectedHistogram; import static org.easypr.core.CoreFunc.showImage; import java.util.Vector; import org.bytedeco.javacpp.opencv_core.Mat; import org.easypr.core.CharsIdentify; import org.easypr.core.CharsRecognise; import org.easypr.core.CoreFunc; import org.easypr.core.PlateDetect; import org.easypr.core.PlateLocate; import org.junit.Test;
与其它类的调用关系 CharsIdentify、CharsRecognise、CoreFunc、PlateDetect

5.数据库设计

5.1 数据库表概念结构设计

实体1:用户(User)

标识符 意义 类型 值域
Username 用户名 VARCHAR 长度<=255
Password 用户密码 VARCHAR 长度<=255
Power 用户权限 Int 长度<=8

实体2:车库车辆(Parker)

标识符 意义 类型 值域
车牌号 车牌号 VARCHAR 长度<=255
车辆类型 车辆类型 VARCHAR 长度<=255
进场时间 进场时间 VARCHAR 长度<=255
推荐车位 推荐车位 Int 长度<=8

实体3:历史记录(Record)

标识符 意义 类型 值域
车牌号 车牌号 VARCHAR 长度<=255
车辆类型 车辆类型 VARCHAR 长度<=255
进场时间 进场时间 VARCHAR 长度<=255
历史车位 推荐车位 Int 长度<=8
出场时间 出场时间 VARCHAR 长度<=255
停车时长(小时) 停车时长(小时) Int 长度<=8
收费信息(元) 收费信息(元) Int 长度<=8

5.2 数据库表概念关系模型

用户表E-R图

车库车辆表E-R图

历史记录E-R图

6.系统功能实现

6.1 用户登录模块

具体功能

输入用户名,密码,验证码,按确认按钮,若验证码输入错误或者用户名密码输入错误,弹出警告框,提示相应信息,若输入正确则进入后台首页。

程序流程图

截图预览

6.2 车辆进出模块

具体功能

输入车辆类型,车牌号,入场时间(本实验测试用),若车辆未入库且车位有空余,则提示欢迎入场,并给出其要停的车位。若车辆未入库但是车库车已满,则提示该类型的车已停满。若车辆已入库,则输出欢迎下次光临提示,并显示其要付款的金额。

程序流程图

车费算法流程图(重点)

截图预览

6.3 车辆图片添加

具体功能

输入车牌号,然后添加车辆图片,拖拽进去即可。系统就会为在车库中的车自动添加车辆图片。在实时车库监控中就可以查看。

程序流程图

截图预览

6.4 实时车库监控

具体功能

这里显示车库中所有的车辆信息,包含车牌号、车辆类型、入场时间、推荐车位。如果有添加车辆照片,还可以直接点击前面的小图标进行查看,照片会以模态框的形式呈现。而且用户还可以在列表中对想要查找的车进行筛选。

程序流程图

截图预览

6.5 预计收入模块

具体功能

查询车库中所有的车,到现在为止应该缴纳的金额。具体到每一辆车,而且将他们的信息以表格的方式呈现。

程序流程图

截图预览

6.6 历史记录查询

具体功能

查询所有历史的停车信息记录,用户可以在网页上对停车信息记录进行筛选,还可以进行相应的修改、删除和排序。当数据量过大时还可以选择一页呈现多少条数据。

程序流程图

截图预览

6.7 数据统计模块

具体功能

统计用户选择时间段内车库内车的数量和相应的收入情况。并以柱状图和折现图的形式将时间段内每一天的变化呈现给管理员。

程序流程图

截图预览

6.8 车牌识别模块

具体功能

管理员在后台选择相应的图片路径进行车牌识别。

程序流程图

截图预览

7.总结体会

经过两周时间的系统需求分析、设计、开发和测试,实现了停车场管理系统的基本功能,使我们在Web应用系统开发方面有了很大的提高和认识,在提高书本上知识的同时也增加了实践性,让我们掌握了Web应用系统开发的具体流程,培养了自己的WEB应用设计与开发能力。而且停车场管理系统相关的计算时间这一块,我有了熟练的锻炼。明白了java时间类中Date、Calendar、DateTime之间的转换和计算,还明白如何将时间相关的类从前端转化到后端,从后端转换到数据库。这些都是我在这次实验花费大量时间去查阅资料和敲码实践的。在这次的课程设计中,我运用了大量的js相关技术,实现了前端的表格自动筛选,验证码验证登录,网页背景动效等,也弄明白了js对html的帮助之强大。

在这次实验中,有一个问题是我反复思索了很多次的。那就是推荐停车位的选择。刚开始,我是想在后台设置一个int,每当车一进来,这个int就加一位,车一走,这个int就减一位,但是后来我发现,这只能用于停车数量的统计,因为之前车位的车走掉的话,他的位置就很难再分配出去了。所以我又采用了布尔数组记录模式,有车用true,无车用false,在java中Boolean数组是默认false的。但是后来我又发现一个问题,当我重新启动程序时,这个在内存中的数组就会被清空,之前的停车状况就无法得到保留了。但是每次添加车辆去数据库中遍历停车位又会十分的耗费时间和资源,于是我想到,当我第一次调用这个进场servlet时,我会启用初始话函数,他会从数据库中初始化这个Boolean数组,从而使得我内存中的停车记录和数据库中的记录一直保持一致。

还有遇到一些奇奇怪怪的小问题我就在这里简略描述了:

  • 刚开始js验证失败时返回false,网页也会跳转,后来在网上看代码才发现,我之前写的代码没有返回值所以才不行

  • 刚开始不知道怎么复制Calendar类,因为这个类都是通过调用getinstance实例化的,后来在网上查到了可以用clone方法进行复制,而且不会随着源对象的改变而改变

  • 在数据库中写sql语句时发现报错,后来发现是字符串拼接时缺少双引号形成的

  • 设计成MVC模式时,发现CSS文件读不了了,之后我定义了一个<%path%>来表示之前的绝对路径

  • 本来想在jsp内调用Java的自定义函数,后来发现建一个自定义标签可以解决我的需求

  • 不知道两个java日期String怎么求中间的日期

  • 不知道sql语句中怎么把group by查询到的结果固定。上述问题好在我查阅资料后都一一解决了

  • 当然还有一个未解决的问题就是车牌识别,在普通java类中可以实现识别,但是到了servlet中,他的识别就出现报错了,这也是这一次课程设计遗憾的内容,所以他的功能也就仅能在后端服务器实现了

这一次java课程设计对我的帮助很大,感觉从这次以后,自己就拥有了一定的工程能力,希望以后能继续加油,提升自己的水平,再创新高。

参考文献

  • 城市智能停车场管理系统设计与实现(华中师范大学·王毅)
  • 智能停车场监管云平台的设计与实现(吉林大学·马铭泽)
  • 基于Spring Boot的运动场馆服务平台的设计与实现(首都经济贸易大学·王朝)
  • 基于物联网技术的智能停车场管理系统的设计与实现(哈尔滨工业大学·姚琳)
  • 城市智能停车场管理系统设计与实现(华中师范大学·王毅)
  • 基于OAuth2.0协议的企业分布式授权系统设计与实现(华中科技大学·支猛)
  • 基于SSH框架的汽车销售服务系统的设计与实现(西安电子科技大学·屈鑫)
  • 基于SSH框架的汽车销售服务系统的设计与实现(西安电子科技大学·屈鑫)
  • 汽车制造业仓储物流系统的设计与实现(电子科技大学·张章)
  • 停车管理系统的设计与实现(厦门大学·姚飞)
  • 基于J2EE的物业管理系统的设计与实现(电子科技大学·贺伟)
  • 基于OAuth2.0协议的企业分布式授权系统设计与实现(华中科技大学·支猛)
  • 基于JavaEE的工厂文档管理系统(武汉科技大学·朱永强)
  • 基于Dubbo的城市车位管理系统的设计与实现(西安电子科技大学·高姗)
  • 多停车场信息协同管理系统设计与实现(长安大学·田金博)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计货栈 ,原文地址:https://bishedaima.com/yuanma/35505.html

相关推荐

发表回复

登录后才能评论