摘要
随着科技的不断进步和互联网+时代的深入发展,餐饮行业正面临着一场由传统向智能化、信息化转变的革命。传统的餐饮管理方式,如手工点餐、纸质菜单、人工结算等,已经无法满足现代餐饮企业对于效率、准确性和用户体验的高要求。因此,开发一套高效、稳定、用户友好的餐饮管理系统,成为餐饮企业提升竞争力、实现可持续发展的关键。
SpringBoot作为一款轻量级的Java开发框架,以其快速开发、简化配置、高度集成等优点,在业界得到了广泛的认可和应用。通过SpringBoot框架,我们可以更加高效地构建餐饮管理系统,实现前后端分离、模块化开发、微服务架构等先进的设计理念,从而满足餐饮企业对于系统性能、可扩展性、可维护性等方面的需求。
本餐饮管理系统的设计与实现,旨在通过SpringBoot框架,结合前端技术如Vue.js等,打造一个功能全面、性能卓越、用户友好的餐饮管理系统。系统支持餐饮分类管理、餐饮信息管理、餐饮订单管理、订单评价管理等多项功能,能够帮助餐饮企业实现业务流程的自动化、智能化,提升管理效率和服务质量。
通过本系统的应用,餐饮企业可以更加便捷地管理门店运营、优化菜品结构、提升用户体验,从而在激烈的市场竞争中脱颖而出,实现持续稳健的发展。我们相信,餐饮管理系统将成为餐饮行业转型升级的重要工具,为行业的未来发展注入新的活力和动力。
关键词:餐饮管理系统;java;Springboot
With the continuous progress of science and technology and the in-depth development of the Internet plus era, the catering industry is facing a revolution from tradition to intelligence and informatization. Traditional catering management methods, such as manual ordering, paper menus, and manual settlement, are no longer able to meet the high requirements of modern catering enterprises for efficiency, accuracy, and user experience. Therefore, developing an efficient, stable, and user-friendly catering management system has become the key for catering enterprises to enhance their competitiveness and achieve sustainable development.
SpringBoot, as a lightweight Java development framework, has been widely recognized and applied in the industry due to its advantages of fast development, simplified configuration, and high integration. Through the SpringBoot framework, we can more efficiently build a catering management system, achieve advanced design concepts such as front-end and back-end separation, modular development, and microservice architecture, thereby meeting the needs of catering enterprises for system performance, scalability, maintainability, and other aspects.
The design and implementation of this catering management system aims to create a comprehensive, high-performance, and user-friendly catering management system through the SpringBoot framework and front-end technologies such as Vue.js. The system supports multiple functions such as catering classification management, catering information management, catering order management, and order evaluation management, which can help catering enterprises achieve automation and intelligence of business processes, improve management efficiency and service quality.
Through the application of this system, catering enterprises can more conveniently manage store operations, optimize dish structure, and improve user experience, thereby standing out in fierce market competition and achieving sustained and stable development. We believe that the catering management system will become an important tool for the transformation and upgrading of the catering industry, injecting new vitality and momentum into the future development of the industry.
Keywords: Catering management system; Java; Springboot
目录
1 绪论
1.1 课题研究背景和意义
1.2 国内外研究现状
1.3系统开发技术的特色
2 餐饮管理系统分析
2.1可行性分析
2.1.1技术可行性分析
2.1.2经济可行性分析
2.1.3操作可行性分析
2.2需求分析
2.3用例分析
2.4 业务流程分析
2.4.1登录流程
2.4.2注册流程
2.4.3添加信息流程
2.4.4删除信息流程
3餐饮管理系统总体设计
3.1系统架构设计
3.2系统功能模块设计
3.3数据库设计
3.3.1 数据库E-R模型
3.3.2 数据库表设计
4 餐饮管理系统实现
4.1 顾客用户功能模块
4.1.1 用户注册界面
4.1.2 用户登录界面
4.1.3 餐饮信息界面
4.1.4 修改密码界面
4.1.5餐饮订单界面
4.2管理员功能模块
4.2.1 系统用户界面
4.2.2餐饮分类管理界面
4.2.3订单评价管理界面
4.2.4系统管理界面
4.2.3公告管理界面
4.3员工用户功能模块
4.3.1餐饮资讯界面
4.3.2餐饮信息界面
5 餐饮管理系统测试
5.1系统测试
5.2测试结果
总结与展望
参考文献
致谢
在快节奏的现代社会中,餐饮行业作为服务业的重要组成部分,正经历着前所未有的变革。随着消费者需求的多样化和市场竞争的加剧,餐饮企业面临着提升服务质量、优化运营效率、增强用户体验等多重挑战。传统的餐饮管理方式已难以适应这些变化,因此,餐饮管理系统的设计与实现显得尤为重要。
餐饮管理系统是一款集成了系统用户、餐饮分类管理、餐饮信息管理、餐饮订单管理、订单评价管理、系统管理、公告管理、资源管理等功能的综合性软件,它能够帮助餐饮企业实现业务流程的自动化和智能化。通过餐饮管理系统,餐饮企业可以更加高效地管理门店运营,优化菜品结构,提升用户体验,从而在激烈的市场竞争中脱颖而出。
研究餐饮管理系统的设计与实现,不仅具有重要的理论价值,还具有深远的实践意义。在理论层面,餐饮管理系统的研究有助于推动计算机科学、软件工程、信息管理等领域的发展,为相关学科提供新的研究思路和方法。在实践层面,餐饮管理系统的应用可以帮助餐饮企业提高管理效率,降低运营成本,增强市场竞争力,实现可持续发展。
因此,餐饮管理系统的设计与实现研究背景广阔,意义重大。它不仅符合时代发展的需求,也是餐饮行业转型升级的必然趋势。通过深入研究和实践应用,我们有望为餐饮行业的未来发展注入新的活力和动力。
在国内,随着餐饮业的快速发展和数字化转型的推进,越来越多的学者和企业开始关注餐饮管理系统的研究与实践。目前,国内已经有一些成熟的餐饮管理系统在市场上得到了广泛应用,如美团、饿了么等外卖平台,以及各类餐厅自用的点餐、收银、库存管理系统。这些系统通过整合互联网等技术,实现了餐饮业务的自动化、智能化管理,提高了服务效率和用户体验。同时,国内学者也在不断探索餐饮管理系统的设计与优化,如基于云计算、大数据分析的餐饮管理系统研究,以及面向特定餐饮业态(如快餐、火锅等)的定制化系统开发等。
在国外,餐饮管理系统同样得到了广泛的研究和应用。由于西餐的标准化程度较高,国外的餐饮管理系统在菜品管理、订单处理等方面更加成熟和高效。同时,国外的餐饮管理系统也更加注重用户体验和个性化服务,如通过智能推荐系统为顾客提供个性化的菜品推荐,通过移动支付和智能设备提升服务效率等。此外,国外的餐饮管理系统还注重与供应链、物流配送等环节的整合,以实现全流程的数字化管理。
综合来看,国内外在餐饮管理系统的设计与实现方面都已经取得了一定的成果和经验。然而,随着餐饮行业的不断发展和消费者需求的不断变化,餐饮管理系统的研究和应用仍面临着诸多挑战和机遇。未来,我们期待看到更多创新性的餐饮管理系统问世,为餐饮业的持续发展注入新的活力。
餐饮管理系统小程序基于SpringBoot进行开发,具有一系列独特的系统开发技术特色,这些特色使得系统更加高效、稳定、可扩展,并且提供了出色的用户体验。
SpringBoot框架的采用简化了开发过程。SpringBoot通过自动化配置和约定大于配置的方式,极大地减少了开发人员的配置负担,使得开发人员能够更专注于业务逻辑的开发,提高了开发效率和便捷性。
SpringBoot具有强大的兼容性,能够很好地兼容现有的Spring应用程序。这意味着餐饮管理系统小程序可以轻松地集成和扩展现有的业务逻辑,保护了企业的投资,并降低了迁移成本。
SpringBoot提供了丰富的依赖库和组件,支持快速构建微服务应用程序。这使得餐饮管理系统小程序可以拆分为多个独立的微服务,每个服务负责不同的功能模块,提高了系统的可维护性和可扩展性。同时,微服务的架构也使得系统更加灵活,可以根据业务需求进行快速迭代和部署。
在智能化管理方面,SpringBoot应用程序提供了各种运维和监控功能。这些功能可以帮助开发人员更好地管理系统,监控系统的运行状态,及时发现和解决问题,确保系统的稳定运行。
SpringBoot框架的可扩展性强,天然支持扩展和增强。这意味着餐饮管理系统小程序可以随着业务的发展而不断扩展新功能,满足不断变化的市场需求。
综上所述,基于SpringBoot开发的餐饮管理系统小程序具有简化开发、兼容性强、微服务架构、智能化管理和可扩展性强等系统开发技术特色。这些特色使得系统更加高效、稳定、可扩展,并提供了出色的用户体验,为餐饮业的数字化转型提供了有力的支持。
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。接下来会进行详细的介绍。
2.1.1技术可行性分析
餐饮管理系统的设计与实现采用小程序和SpringBoot技术栈是完全可行的。SpringBoot作为后端框架,提供了快速开发、简化配置和高度集成的优势,使得系统能够高效、稳定地运行。同时,SpringBoot的兼容性和可扩展性使得系统能够轻松集成现有的业务逻辑,并随着业务的发展进行扩展。而小程序作为前端技术,具有轻便、快捷、用户友好的特点,能够为用户提供流畅的使用体验。结合SpringBoot和小程序的技术优势,餐饮管理系统能够实现前后端分离、模块化开发,提高开发效率和系统的可维护性。因此,从技术可行性角度来看,采用小程序和SpringBoot开发餐饮管理系统是完全可行的,并且有望为餐饮业的数字化转型带来显著的效益。
2.1.2经济可行性分析
餐饮管理系统的设计与实现,采用小程序和SpringBoot技术栈,在经济可行性方面具有显著优势。首先,SpringBoot作为开源框架,具有免费、开源的特点,大大降低了系统的开发成本。同时,SpringBoot的成熟和稳定性保证了系统的长期运行和维护成本相对较低。同时,小程序作为一种轻量级的应用程序,不需要下载安装,用户门槛低,能够吸引更多用户使用,从而增加餐饮企业的客流量和收入。综上所述,采用小程序和SpringBoot技术栈开发餐饮管理系统,在经济可行性方面具有明显的优势,能够为餐饮企业带来可观的经济效益。
2.1.3操作可行性分析
餐饮管理系统的设计与实现,结合小程序和SpringBoot技术,在操作可行性方面表现出色。首先,小程序的用户界面简洁明了,操作流程直观易懂,无需复杂的培训即可快速上手。用户可以通过简单的点击和滑动完成点餐、支付、评价等操作,极大提升了用户体验。同时,SpringBoot后端框架提供了稳定、高效的数据处理能力,确保了系统在高峰期也能保持流畅运行,避免了因操作延迟或卡顿而影响用户体验的情况。此外,系统还提供了详细的使用指南和客服支持,帮助用户解决在使用过程中遇到的问题,进一步增强了操作可行性。综上所述,餐饮管理系统通过小程序和SpringBoot的结合,实现了操作简便、高效流畅的用户体验,确保了操作可行性。
明确餐饮企业管理需求:通过与餐饮企业的深入沟通,我们了解到他们期望系统能够实现餐饮分类管理、餐饮信息管理、餐饮订单管理、订单评价管理等功能。同时,他们也希望能够通过系统优化餐厅的运营流程,提升服务效率,降低运营成本,并更好地满足消费者的需求。
消费者体验与界面设计:餐饮管理系统需要具备良好的用户界面和交互设计,确保消费者能够轻松浏览菜单、下单、支付和评价。系统应提供多样化的支付方式,并确保支付过程的安全与便捷。此外,系统还应提供实时的订单状态和用餐环境信息,以便消费者做出更好的用餐选择。
餐饮分类管理:餐饮分类管理是餐饮管理系统中至关重要的组成部分,它需要对菜品、食材等进行分类管理,以便用户能够快速、准确地找到所需信息。系统需要提供灵活的分类设置功能,支持多级分类,并能够根据餐饮企业的实际需求进行自定义。此外,分类管理还需要支持分类的增、删、改、查等操作,确保信息的实时性和准确性。
餐饮信息管理:餐饮信息管理涉及对菜品、食材等信息的全面管理。系统需要支持信息的录入、编辑、查询、展示等功能,确保信息的完整性和准确性。
餐饮订单管理:餐饮订单管理是餐饮管理系统的核心功能之一。系统需要支持订单的创建、修改、查询、取消等操作,确保订单信息的准确性和实时性。此外,系统还需要提供订单状态的更新和跟踪功能,让消费者和餐饮企业都能够实时了解订单的进度和状态。同时,系统还需要支持多种支付方式,确保支付的便捷性和安全性。
订单评价管理:订单评价管理是餐饮管理系统中提升消费者体验和餐饮企业服务质量的重要环节。系统需要支持消费者对订单进行评价和反馈,让消费者能够表达对菜品、服务等方面的满意度和意见。
持续迭代与优化:餐饮行业同样处于快速发展和变化之中,消费者需求和市场环境都在不断演变。因此,我们的餐饮管理系统需要具备持续迭代和优化的能力,以适应市场的变化并满足用户的新需求。
综上所述,基于Spring Boot的餐饮管理系统旨在通过技术手段解决餐饮业务中的实际问题,提升餐饮企业的管理效率和消费者的用餐体验。我们期待这一系统能够为餐饮行业带来创新和发展,让每一位消费者都能享受到更加便捷、个性化的用餐服务。
餐饮管理系统的完整UML用例图分别是图2-1、图2-2和图2-3。在参与者上包括顾客用户、员工用户和管理员。
顾客用户角色的用例包括首页、餐饮资讯、餐饮信息、网站公告、我的(基本信息、餐饮订单、订单评价、收藏)。
图2-1 餐饮管理系统顾客用户角色用例图
管理员角色的用例包括后台首页、系统用户、餐饮分类管理、餐饮信息管理、餐饮订单管理、订单评价管理、系统管理、公告管理、资源管理。
图2-2 餐饮管理系统管理员角色用例图
员工用户角色的用例包括首页、餐饮资讯、餐饮信息、网站公告、我的(基本信息、餐饮信息、餐饮订单、订单评价、收藏)。
图2-3餐饮管理系统员工用户角色用例图
2.4.1登录流程
登录模块主要满足管理员以及用户的权限登录,用户登录流程图如图2-4所示。
图2-4 登录流程图
2.4.2注册流程
未有账号的用户可进入注册界面进行注册操作,用户注册流程图如图2-5所示。
图2-5 注册流程图
2.4.3添加信息流程
用户在添加信息时,信息编号自动生成,系统会对添加的信息进行验证,验证通过则添加至数据库,添加信息成功,反之添加失败。添加信息流程如图2-6所示。
图2-6 添加信息流程图
2.4.4删除信息流程
用户可选择要删除的信息进行信息删除操作,在删除信息时系统提示是否确定删除信息,是则删除信息成功,系统数据库将信息进行删除。删除信息流程图如图2-7所示。
图2-7删除信息流程图
在上一章节中分析了餐饮管理系统的需求,并且根据需求分析了餐饮管理系统中的用例。那么接下来就要开始对餐饮管理系统架构、主要功能和数据库开始进行设计。
在系统架构设计中,我们将确定系统的整体结构和组件之间的关系。这包括选择适当的架构风格,划分系统的层次结构,并定义各个模块的职责和交互方式。架构图如下图所示。
图3-1餐饮管理系统架构设计图
表现层(Presentation Layer):负责与用户进行交互,将系统的功能和数据以易于理解和操作的方式展示给用户。通常包括用户界面、页面设计和用户输入验证等。
业务逻辑层(Business Logic Layer):处理系统的核心业务逻辑,包括对用户请求的处理、业务规则的执行以及数据的处理和转换。它独立于表现层和数据层,实现了业务逻辑的封装和复用。
数据层(Data Layer):负责数据的存储、访问和管理,包括数据库和持久化机制。数据层提供了对数据的增删改查操作,并与业务逻辑层进行交互,使系统能够有效地存储和检索数据。
这三个层次相互独立,通过明确的接口和协议进行通信,实现了系统的模块化和可扩展性。表现层负责将用户的请求传递给业务逻辑层,业务逻辑层处理请求并返回结果,最后数据层负责与数据库交互并提供数据支持。这种分层架构有助于实现系统的可维护性、灵活性和可测试性。
通过对餐饮管理系统的需求分析以及用例分析,得出了餐饮管理系统的功能模块图如图3-2所示。
3.3.1 数据库E-R模型
下面是整个餐饮管理系统的数据库表的E-R实体关系图,如图3-3所示:
3.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 | 更新时间: |
表catering_classification (餐饮分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | catering_classification_id | int | 10 | 0 | N | Y | 餐饮分类ID | |
2 | catering_type | 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 | catering_information_id | int | 10 | 0 | N | Y | 餐饮信息ID | |
2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
3 | catering_name | varchar | 64 | 0 | Y | N | 餐饮名称 | |
4 | catering_type | varchar | 64 | 0 | Y | N | 餐饮类型 | |
5 | catering_prices | varchar | 64 | 0 | Y | N | 餐饮价格 | |
6 | catering_rating | varchar | 64 | 0 | Y | N | 餐饮评分 | |
7 | catering_pictures | varchar | 255 | 0 | Y | N | 餐饮图片 | |
8 | restaurant_address | varchar | 64 | 0 | Y | N | 餐厅地址 | |
9 | restaurant_phone_number | varchar | 64 | 0 | Y | N | 餐厅电话 | |
10 | meals_and_ingredients | text | 65535 | 0 | Y | N | 餐品食材 | |
11 | meal_preparation | text | 65535 | 0 | Y | N | 餐品做法 | |
12 | catering_details | text | 65535 | 0 | Y | N | 餐饮详情 | |
13 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
14 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | catering_orders_id | int | 10 | 0 | N | Y | 餐饮订单ID | |
2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
3 | catering_name | varchar | 64 | 0 | Y | N | 餐饮名称 | |
4 | catering_type | varchar | 64 | 0 | Y | N | 餐饮类型 | |
5 | catering_prices | varchar | 64 | 0 | Y | N | 餐饮价格 | |
6 | customer_users | int | 10 | 0 | Y | N | 0 | 顾客用户 |
7 | customer_name | varchar | 64 | 0 | Y | N | 顾客姓名 | |
8 | customer_phone_number | varchar | 64 | 0 | Y | N | 顾客电话 | |
9 | order_quantity | varchar | 64 | 0 | Y | N | 下单数量 | |
10 | total_order_price | varchar | 64 | 0 | Y | N | 订单总价 | |
11 | order_remarks | text | 65535 | 0 | Y | N | 订单备注 | |
12 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
13 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | 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 | customer_users_id | int | 10 | 0 | N | Y | 顾客用户ID | |
2 | customer_name | varchar | 64 | 0 | Y | N | 顾客姓名 | |
3 | customer_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 | employee_users_id | int | 10 | 0 | N | Y | 员工用户ID | |
2 | employee_no | varchar | 64 | 0 | N | N | 员工工号 | |
3 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
4 | employee_positions | varchar | 64 | 0 | Y | N | 员工职位 | |
5 | employee_age | 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 | 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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | order_evaluation_id | int | 10 | 0 | N | Y | 订单评价ID | |
2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
3 | catering_name | varchar | 64 | 0 | Y | N | 餐饮名称 | |
4 | catering_type | varchar | 64 | 0 | Y | N | 餐饮类型 | |
5 | catering_prices | varchar | 64 | 0 | Y | N | 餐饮价格 | |
6 | customer_users | int | 10 | 0 | Y | N | 0 | 顾客用户 |
7 | customer_name | varchar | 64 | 0 | Y | N | 顾客姓名 | |
8 | customer_phone_number | varchar | 64 | 0 | Y | N | 顾客电话 | |
9 | order_quantity | varchar | 64 | 0 | Y | N | 下单数量 | |
10 | total_order_price | varchar | 64 | 0 | Y | N | 订单总价 | |
11 | evaluation_score | varchar | 64 | 0 | Y | N | 评价分数 | |
12 | evaluation_content | text | 65535 | 0 | Y | N | 评价内容 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | 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 | 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 | 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 | 更新时间: |
餐饮管理系统主要是根据前面的需求分析和总体设计来设计页面并实现业务逻辑。主要从界面实现、业务逻辑实现这两部分进行介绍。
4.1.1 用户注册界面
不是餐饮管理系统的用户可以通过小程序在线进行注册,填写上自己的账号、密码、重复密码、昵称、邮箱等信息后点击“提交”按钮后将会验证是否有非空数据,再验证密码和重复密码是否一样,最后验证是否账号重复,都验证没问题后即可注册成功。用户注册界面展示如下图4-1所示。
图4-1用户注册界面图
4.1.2 用户登录界面
小程序上注册后的用户可以通过自己的用户名和密码进行登录,在用户填写好自己的用户名和密码信息并点击“登录”按钮后,将会先验证是否有非空数据,再验证填写的用户信息和数据库中保存的是否一致,一致后将会登录成功,登录成功后将会在左上角上显示用户信息;否则将会提示相应错误信息,用户登录界面如下图4-2所示。
图4-2用户登录界面图
输入有效的用户名和密码信息,点击“登录”按钮,自动跳转到“首页”页面,首页界面如下图4-3所示。
图4-3首页界面图
4.1.3 餐饮信息界面
当用户点击“餐饮信息”这一菜单按钮,会显示管理员在后台发布的所有的餐饮信息,支持通过关键词对餐饮进行搜索,选择需要的餐饮信息点击可以进入到餐饮信息详细的介绍界面,同时可以进行下单、点赞、收藏和评论,餐饮信息界面如下图4-4所示。
图4-4餐饮信息界面图
4.1.4 修改密码界面
用户使用该系统注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败。密码修改界面如下图所示。修改密码界面如下图4-5所示。
图4-5修改密码界面图
4.1.5餐饮订单界面
用户可以提交订单的详细信息,包括员工用户、餐饮名称、餐饮类型、餐饮价格、顾客用户、顾客姓名、顾客电话、下单数量、订单总价、订单备注等,可以对订单进行支付。餐饮订单界面如下图4-6所示。
图4-6餐饮订单界面图
4.2.1 系统用户界面
管理员点击“系统用户”这一菜单会显示管理员、顾客用户和员工用户这三个子菜单,管理员可以对这两个角色的信息进行增删改查操作。界面如下图4-7所示。
图4-7系统用户管理界面图
4.2.2餐饮分类管理界面
允许管理员管理餐饮的分类信息,包括添加新的分类、编辑分类信息、删除分类等操作,以确保餐饮信息的分类清晰和准确。界面如下图4-8所示。
图4-8餐饮分类管理界面图
4.2.3订单评价管理界面
提供对用户订单评价的管理功能,包括查看评价内容、回复评价、删除评价等操作,以维护用户评价的真实性和系统的服务质量。界面如下图4-9所示。
图4-9订单评价管理界面图
4.2.4系统管理界面
管理员点击“系统管理”这一菜单会显示轮播图这一个子菜单,管理员可以对前台展示的轮播图进行设置,界面如下图4-10所示。
4.2.3公告管理界面
点击“公告管理”这个菜单,可以查看到系统中所有添加的通知公告,支持通过标题对通知公告进行查询,添加、删除等操作。公告管理界面如下图4-11所示。
图4-11公告管理界面图
提供与餐饮服务相关的资讯和信息,让员工用户了解行业动态、新菜品推荐等内容,以提升员工对餐饮行业的了解和参考。在详情页面可以点赞、评论和收藏。餐饮资讯界面如下图4-12所示。
图4-12餐饮资讯界面图
员工用户点击“我的”当中的餐饮信息,输入员工用户、餐饮名称、餐饮类型、餐饮价格、餐饮评分、餐饮图片等信息提交,就可以添加新的餐饮信息。界面如下图4-13所示。
图4-13 餐饮信息界面图
餐饮管理系统测试是为了检验软件是否达到设计要求,是否存在错误,通过测试的方法来检查餐饮管理系统,以便发现餐饮管理系统中的错误。测试工作是保证餐饮管理系统质量的关键。
小程序端上用户查看餐饮资讯功能测试:
表5-1微信端上用户查看餐饮资讯功能测试用例表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
查看餐饮资讯功能模块测试 | 餐饮资讯信息正常的显示 | 浏览餐饮资讯详情信息 | 在小程序端上选择一个餐饮资讯信息将会进入该餐饮资讯的详情界面,同时可以评论、收藏、点赞。 | 进入该餐饮资讯的详情信息界面 | 正确 |
小程序端上评论功能测试:
表5-2微信端上评论功能测试用例表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
评论功能模块测试 | 评论信息正常的显示 | 浏览餐饮信息 | 点击餐饮信息底部“评论”按钮后点击填写评论内容点击提交即可。 | 评论内容提交成功 | 正确 |
web后台端上管理员发布餐饮资讯功能测试:
表5-3web后台端上管理员发布餐饮资讯功能测试用例表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
管理员发布餐饮资讯功能测试 | 添加餐饮资讯的情况 | 输入新餐饮资讯信息的基本信息 | 后台选择“资源管理”菜单后,点击“餐饮资讯”,点击添加,填写新餐饮资讯信息后点击“提交”按钮 | 新餐饮资讯发布成功 | 正确 |
通过编写了餐饮管理系统的测试用例,已经检测完毕了5.1章节中的3大模块,它为餐饮管理系统系统的后期推广运营提供了强力的技术支撑。
本次餐饮管理系统的设计与实现,功能方面,通过功能模块图区分该程序的用户端与管理端各自的功能权限;数据库方面,数据库使用口碑较好的mysql进行数据的存储,开源的mysql等技术的使用,相对来说体积较小,服务稳定,减少系统开发成本费用,通过数据库表的E-R实体关系图建立了表单与表单之间的连接,区分不同的表单之间的关系,更好的完善数据库的内容;测试方面,通过测试用例检查餐饮管理系统的设计缺陷和程序存在的错误,在系统测试阶段的过程中,出现了一些问题,例如,注册信息,没有规范用户在注册页面填写信息时输入两次密码,而导致后期登录错误,最后通过多次修改程序和测试解决了问题。最终经过不断的检测、修改,实现项目的稳定,达到了预期的设计效果。
系统整体的功能到达预期的效果,但页面的美化方面还是存在一些不足,例如:小程序中的图标过于简洁;wxss页面的渲染布局方面不够完善,人们在使用软件过程中,对某些功能不易找寻,针对此次项目产生的问题,日后将不断改进,使该项目更加完善。
[1]徐少军,李宗哲,梅杰,等.基于Springboot+Vue框架的质量检验监督管理系统研发[J].纺织标准与质量,2024,(01):11-14+21.
[2]雷欣,马宏琳,郑霖,等.基于SpringBoot的域名信息系统设计与实现[J].电脑知识与技术,2024,20(05):44-47.DOI:10.14004/j.cnki.ckt.2024.0188.
[3]Wahyudi ,Tiffany K V ,Mulyadi Y , et al.Morpho-dynamic Induced Rip Currents in Klayar Beach, Pacitan, East Java, Indonesia[J].IOP Conference Series: Earth and Environmental Science,2024,1298(1):
[4]Wardhani K M ,Sulistiyorini A D .Assessment of the Quality of Raw Water for Salt Production in Pangarengan, Sampang, East Java[J].IOP Conference Series: Earth and Environmental Science,2024,1298(1):
[5]Heliyanto B ,Murianingrum M ,Hartati S R , et al.Observation on local high-yielding stevia (Stevia rebaudiana Bertoni L.) clone specific to Bandung District, West Java[J].IOP Conference Series: Earth and Environmental Science,2024,1302(1):
[6]Lestari E ,Rusdiyana E ,Sugihardjo, et al.The role of village owned enterprises in the development and sustainability of the agrotourism sector (A case study of agrotourism in Karanganyar Regency, Central Java)[J].IOP Conference Series: Earth and Environmental Science,2024,1302(1):
[7]Purwantiningsih B ,Leksono S A ,Yanuwiyadi B , et al.Inventory of plants as food source for Apis sp. and Trigona sp. in Tlekung Batu East Java Indonesia[J].IOP Conference Series: Earth and Environmental Science,2024,1302(1):
[8]施海涛.基于Java的连锁餐饮管理系统设计[J].无线互联科技,2023,20(18):83-85.
[9]张金凤.餐饮管理系统的统计模块设计[J].福建电脑,2022,38(09):90-93.DOI:10.16707/j.cnki.fjpc.2022.09.020.
[10]唐春燕.基于微服务的智慧餐饮系统的设计与实现[D].华东师范大学,2022.DOI:10.27149/d.cnki.ghdsu.2022.002129.
[11]钟良堂,谭昊,廖瑾睿,等.基于图像识别的智慧餐饮管理系统[J].信息与电脑(理论版),2022,34(06):175-179.
[12]张健.餐饮系统的设计与实现[J].信息与电脑(理论版),2021,33(08):135-138.
[13]曾俊儒,王乐,李寒冰,等.饮食健康照护与餐饮管理:机构式高龄退休社区智能餐饮健康管理系统设计方法[J].装饰,2021,(04):42-47.DOI:10.16272/j.cnki.cn11-1392/j.2021.04.019.
[14]张银霞,郭畅.虚拟化校园食堂餐饮管理系统的设计与实现[J].现代计算机,2020,(25):90-96.
[15]孙晨熙.基于微信公众平台的餐饮管理系统的设计与实现[D].山东大学,2020.DOI:10.27272/d.cnki.gshdu.2020.000686.
[16]仇博.酒店餐饮信息管理系统的设计与实现[J].信息与电脑(理论版),2020,32(06):78-80.
[17]杨阳,徐淮东,刘柏君,等.互联网+智能餐饮管理系统的实现[J].现代营销(经营版),2020,(01):126-127.DOI:10.19921/j.cnki.1009-2994.2020.01.103.
[18]叶久峰,沈明旦.基于移动互联网的精神专科医院餐饮管理系统设计与实现[J].电脑编程技巧与维护,2019,(11):61-63.DOI:10.16184/j.cnki.comprg.2019.11.020.
[19]张光勇.餐饮管理系统的设计与优化[J].电脑知识与技术,2019,15(24):98-99.DOI:10.14004/j.cnki.ckt.2019.2829.
[20]何敏,罗云清.基于C#的酒店餐饮管理系统开发研究[J].电脑知识与技术,2019,15(12):57-59.DOI:10.14004/j.cnki.ckt.2019.1341.
至此论文结束,感谢您的阅读。首先,我要感谢我的父母对我的支持与理解,在两年的本科学习生活中,倾其所能的爱护我,使我能够心无旁骛,全心全意的投入到学习中;不断鼓励我,让我能够拥有不断前进的动力。其次还要感谢我的导师,感谢在这段时间给予我有效的建议,以至于我的毕设有了整体的设计思路,尽管我在实习期间很忙,论文撰写总是停停改改,但是导师依然十分负责,时不时的询问我的任务进展情况,跟进我的论文进度。在老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识,和经验,这些知识和经验令我受益匪浅。
此外,还要感谢我的同学,热心的解答了我在程序上遇到的问题,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测,让我受益良多。在这两年的时间里,我学会了许多专业的知识,还有老师们的谆谆教诲和同学们的帮助使我不断进步,能够做得更好;我也会不断给自己充电,不断突破,成为更好的自己。
最后向所有关心我、帮助我的老师及同学们表示衷心的感谢!
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~