(附源码)springboot美食分享系统 毕业设计 612231

美食分享系统

摘 要

随着人们生活水平的提高,人们对美食的要求也越来越高,对各类美食信息需求越来越大。因此,结合计算机快速发展、普及,在此基础上制作一个页面简单、美观,功能实用的美食分享网站势在必行,满足用户分享美食的需求。

美食分享系统采用Java技术,Mysql数据库存储数据,基于Springboot框架开发。系统采用了模块化设计方法,根据用户的需求开发功能模块,方便了程序扩展维护,以便后期的更新。整个开发过程首先对系统进行需求分析,得出系统主要功能模块。接着对系统进行总体设计和详细设计。最后对系统进行了功能测试,并对测试结果进行了分析总结,得出系统的不足及需要改进的地方,为以后的系统维护提供了方便,同时也为以后开发类似系统提供了借鉴和帮助。

本系统对美食从发布到展示进行科学化管理,实现了美食信息的最广泛共享,使美食信息可以通过计算机网络高效地完成发布,方便用户查询、发布美食信息,提高美食分享效率。

关键词:美食分享;Springboot框架;Mysql数据库

Food sharing system

 Abstract

With the improvement of people's living standards,people have higher and higher requirements for food,and there is an increasing demand for all kinds of food information. Therefore,combined with the rapid development and popularization of computers,it is imperative to make a food sharing website with simple,beautiful pages and practical functions on this basis,so as to meet the needs of users to share food.

The food sharing system adopts Java technology and MySQL database to store data,which is developed based on springboot framework. The system adopts modular design method and develops functional modules according to the needs of users,which facilitates the expansion and maintenance of the program for later update. The whole development process first analyzes the requirements of the system and obtains the main functional modules of the system. Then the overall design and detailed design of the system are carried out. Finally,the function test of the system is carried out,and the test results are analyzed and summarized. The shortcomings of the system and the areas that need to be improved are obtained,which not only provides convenience for the future system maintenance,but also provides reference and help for the future development of similar systems.

The system scientifically manages the food from release to display,and realizes the most extensive sharing of food information,so that the food information can be published efficiently through the computer network,which is convenient for users to query and publish food information and improve the efficiency of food sharing.

Key Words:Food sharing;  Springboot framework;  Mysql database

目  录

 

Abstract

  

1 绪论

1.1开发背景与意义

1.2开发现状

1.3论文结构

2 主要技术和工具介绍

2.1 J2EE技术

2.2 MySQL 数据库

2.3 B/S结构

2.4 Springboot框架

2.5 MVVM模式

2.6 B/S体系工作原理

3 系统分析

3.1可行性分析

3.1.1经济可行性

3.1.2技术可行性

3.1.3操作可行性

3.2需求分析

3.3业务流程分析

3.4数据流程分析

4 系统设计

4.1开发环境

4.2系统结构设计

4.3主要功能模块设计

4.4数据库设计

4.4.1数据库设计概述

4.4.2概念设计

4.4.3表设计

5  系统实现

5.1登录模块的实现

5.2用户子系统模块的实现

5.2.1用户首页的实现

5.2.2注册模块的实现

5.2.3评论模块的实现

5.3管理员子系统模块的实现

5.3.1用户管理模块的实现

5.3.2密码修改模块的实现

5.3.3美食分类管理模块的实现

5.3.4美食分享管理模块的实现

6  系统测试

6.1软件测试

6.2功能测试

6.3测试结果

7  总结

  

参考文献

第1章 绪论

1.1开发背景与意义

迅猛发展并日益成熟的网络已经彻底的影响了我们的方方面面。人们也确实真切的体会到了网络带给我们的便捷。本网站的设计理念在于作为一个美食网站,就是能够尽可能详细地展示、介绍各种美食信息,同时为广大美食爱好者提供一个良好的区域性美食主题网站。目的旨在涉及一种基于asp,net 及数据库网站的设计及实现,方便广大美食家及美食爱好者浏览。近两年来,一大批网站正吸引着人们的眼球。然而,除了有很少数的网站受到了投资者的青睐并且实现了进一步的发展之外,有很大得一部分网站正处于摸索甚至是挣扎的状态。在餐饮这一个与老百姓息息相关的传统领域,各种各样的网站呈现出了不同的风格。

随着生活质量的提高,对于饮食消费理性化,经营特色化和市场细分化的特点日益突现出来。越来越的年轻人成为消费的主力军,包括70后等年代的人们,而他们的选择也越来越主体化,希望可以品尝到一些有特色美食,那么在区域性美食主题网站里面,人们可以看到各种不同的美食,以及对于这些美食的评论,是否值得去试一试,而商家也可以在这个网站上分享自己餐厅的推荐美食,可以更新餐厅的地址,价格。让更多的惇人们了解到一份美食的详细信息,做到信息共享,丰富人们的闲暇时光。

网络信息时代在21世纪到来了,现代社会传播信息都是利用快速高效率的Internet。而且传播的信息量非常大,也是非常迅速的,人们通过浏览器来浏览信息,这种方式是最常用的,所以在这种方式的需求下形成了电子商务。它是指利用快捷、低成本、简单的电子通讯方式,买卖双方不出面也可以进行各种各样的商贸活动。电子商务真正的发展将是建立在Internet技术上。

1.2开发现状

近年来,互联网技术飞速发展,我们通过互联网可以了解到很多的信息,真正做到了“秀才不出门,尽知天下事”。而现在,80后,90后是互联网的使用的主力军,他们通过网络获取自己想要的消息,查阅仔细需要的信息,是非常便捷的一项技术,现在有很多的网站用于发布自己了解到的消息,例如:堆糖,same等一些主题网站,用于发现生活中的美好事物。而且企业对信息进行网络化管理的条件已经日趋成熟,而传统的通过电话和传真来处理信息的传统方式已经越来越难以满足企业的需求。建立基于网络的管理和销售信息系统,成为企业提高效率、降低成本、完善服务的有力保证。现在有很多的网站都是广泛的,很少有针对某一方面的主题网站,而对于餐饮业,由于一个行业本身的特性,它的流通性是非常高的,人们越来越要求可以实时的了解到自己想要的信息,可以随时随地的分享美食,也可以随时随地的了解到其他人用户分享到的美食信息,对于吃货的我们来说是很便捷的,而且现在的年轻人讲究的快捷,不需要花费很多的时间和精力去查找自己想要的信息,只求一步到位,开发这个网站,真是满足很多人的需求,使更多的可以方便的去了解信息。所以更对企业的效率提出了更高的要求。

微软的NET平台作为新一代的互联网平台,提供了支持未来计算的高效的Web服务开发工具。利用NET平台进行管理系统的开发成为此类系统未来开发的趋势。随着社会的进步,人们对食物的要求越来越高,不仅仅局限于吃饱,越来越多人追求的是好吃、美味的美食。迅猛发展并日益成熟的网络已经彻底的影响了我们的生活。人们真切的体会到了网络带给我们的诸多方便。现在各种团购美食的网站层出不穷。开发这个网站,是想在详细的展示和介绍各地方的美食信息,为中国的美食爱好者提供一个很好交流平台,使中国的美食文化可以得到更好地推广。

1.3论文结构

第一章是论文的绪论部分,主要介绍了课题的研究背景以及研究目的和意义。

第二章研究了美食分享系统所采用的开发技术和开发工具。

第三章研究了美食分享系统的需求分析,根据系统的特点,分析系统采用的体系结构及开发方法,以及该系统的运行环境,并分析了业务流程,绘制了业务流程以及数据流程。

第四章是对系统的详细设计进行说明。

第五章是系统的具体实现,介绍系统的各个模块的具体实现。

第六章在前几章的基础上对系统进行测试和运行。

最后对系统进行了认真的总结,以此对未来有一个新的展望。

第2章 主要技术和工具介绍

2.1J2EE技术

人可以掌握多门外语,而一个计算机科学家精通的大多是编程语言,它不是人类的自然语言,比如C语言、Java、Perl等等。由于不同的公司开发出的“中间件”不够规范,所以Sun公司推出J2EE,用这个标准来解决弊病。它提供了良好的机制,让每个层次允许与之相对的服务器、组件运行,使得系统的搭建稳定可用、开发高效、维护方便。

2.2 MySQL 数据库

MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。因为其自身的功能相当强大,目前已成为最为流行的数据库软件之一]。

MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

2.3 B/S结构

系统计划采用BS模式,是因为比传统的C/S结构具有明显的优越性。B/S模式也就是浏览器/服务器模式,它的界面部分是在浏览器端展示,而主要工作是由服务器端进行实现的,用户的请求由浏览器端提交给服务器端进行处理,而服务器将处理结果反馈给浏览器端,在浏览器端界面描画给用户查看。采用B/S模式不仅可以避免用户必须安装专业软件才能开发系统或者访问系统的局限性,而且更加便利。

2.4Spring boot框架

Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。

2.5 MVVM模式

MVVM模式是常用的开发模式,主要是在代码实现上将其分为M层、V层和C层。

视图(View)代表用户交互界面,一个 Web 应用就可能有很多的界面,在 MVVM 模式中,视图仅仅处理的只有数据采集、处理,还有用户的请求, 并不包括业务流程的处理,业务流程由模型(Model)来处理。

模型(Model)就是业务流程/状态的处理及业务规则的制定。模型处理业务流程的过程其它层是无法看见了的,它就像黑箱子,在接受视图请求的数据之后,然后返回最终的处理结果。MVVM 最主要的核心就是业务模型的设计,一个典型的应用例子就是目前流行的 EJB 模型,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但是它不能作为应用设计模型的框架。

控制器(Controller)可以理解为接收用户的请求,然后视图和模型匹配在一起,一起再完成用户请求。它有非常明显的作用在划分控制层上,可以很清晰地告诉你,它就是一个分发器,选择什么样的模型、视图,可以完成用户的什么样的请求。控制层不做所有的数据处理,比如说:用户点击一个连接,控制层接受到请求之后,并不处理业务信息,它只是向模型传递用户的信息,同时告诉模型做什么,然后选择符合需求的视图返回给用户。

2.6 B/S体系工作原理

B/S架构采取浏览器请求,服务器响应的工作模式。

用户可以通过浏览器去访问Internet上由Web服务器产生的文本、数据、图片、动画、视频点播和声音等信息;

而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中;

Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上建立自己的Internet。

在 B/S 模式中,用户是通过浏览器针对许多分布于网络上的服务器进行请求访问的,浏览器的请求通过服务器进行处理,并将处理结果以及相应的信息返回给浏览器,其他的数据加工、请求全部都是由Web Server完成的。通过该框架结构以及植入于操作系统内部的浏览器,该结构已经成为了当今软件应用的主流结构模式。

 

第3章 系统分析

3.1可行性分析

分析用户需求和数据需求,得到一个方案,然后设定系统的开发方案,为每个功能模块设计出物理设计方案,开发本系统的是否可行?本文从技术上、操作上和经济上对本系统的开发进行可行性分析。

3.1.1经济可行性

美食分享交流系统属于一个工具型的系统,它可以节省工作人员大量数据收集、方便快捷,能够极大地提高工作效率,最大限度的降低管理员的工作量,使管理尽量简便,同时促进电影管理的信息化、现代化,及时提供必要的信息统计。因为整个系统采用Springboot+MVVM+Mysql组合,这几个软件都是免费开源的,系统开发所需的费用是比较低的,由于系统并不复杂,其运行与培训费用也不会占用很多资金,可以预见系统完成后可以带来较大的经济效益。

3.1.2技术可行性

本系统采用Windows10作为操作平台。数据库开发平台选用MySQL,该数据库管理系统在Windows7和Windows8/10上都能运行,并提供数据库之间的数据复制功能,可代替现有系统单据数据的手工传递工作.

3.1.3操作可行性

本系统使用的是现流行的开发语言,即Springboot框架。同时所有的信息都是以网页的形式展示,系统中的信息都可以在后台操作数据库达到数据更新的效果。用户只需要会计算机的基本操作或者会上网就可以使用本系统。系统布局较简单,功能操作不复杂,完全符合现代市场需求。

3.2需求分析

针对现存的问题和需要,通过功能需求的分析,特建立了数字化、信息化的影视推荐与交流系统。

本系统主要包含了用户管理、美食分类、美食推荐管理、公告栏管理、美食资讯管理、美食交流等多个功能模块。下面分别简单阐述一下这几个功能模块需求。

表3-1功能需求表

编号

功能名称

功能描述

用户登录

保证用户通过身份验证进入系统进行操作

用户注册

没有账号并想使用系统的用户可以使用用户注册,检测用户的注册内容,信息通过检测之后成为本系统的用户

美食搜索

用户可以通过各种各样的关键字模糊搜索美食信息

评论添加

普通用户选择要评论的信息进行添加评论

评论管理

管理员对用户的评论信息进行管理,包括删除、修改

修改个人信息

用户可以根据自己当前的情况修改个人的信息

后台登录

仅管理员能够登录后台

添加美食信息

管理员添加美食信息

编辑美食信息

管理员修改美食信息

删除美食信息

管理员删除美食信息

添加资讯信息

管理员添加资讯信息

编辑资讯信息

管理员修改资讯信息

删除资讯信息

管理员删除资讯信息

论坛交流

论坛提供用户一个互相交流的论坛,管理员管理论坛版块,用户发布帖子、查看他人帖子、回复他人帖子

3.3业务流程分析

经过对系统功能的分析,调查,研究,总结出美食分享系统主要实现的是对¥留言信息、用户信息等管理功能。这样,可以对该系统绘制业务流程图。

系统的业务流程如下图所示。

 

图3-2系统业务流程图

3.4数据流程分析

根据上文所述的业务流程特点,首先对各个方面总的数据处理环节和外部实体进行了描述,根据自顶向下原则,逐层分解功能,这个过程产生DFD图。

零层数据流程是流程中最抽象的一层,它包括了注册与登录管理、用户功能管理和检索维护管理等功能模块,在登录注册模块使用到的数据存储有用户账户信息文档、用户信息文档,用户功能管理模块需要的存储是用户动态信息文档、留言信息文档、电影信息文档,检索维护是通过以上这些文档信息通过关键词进行搜索。

系统的0层数据流图如下图所示。

 

图3-4系统数据流图(0层)

一层数据流程图是对零层数据流程图的细化,将登录与注册细分为¥填制登录注册信息和完善信息,用户功能管理细分为用户基本功能管理和用户特色功能管理。

系统的1层数据流图如下图所示。

 

图3-5系统数据流图(1层)

二层数据流程是对一层数据流层图中填写登录注册信息、用户基本功能和用户特色功能的细化。即:填写登录注册信息细化为填制信息、后台审核,用户基本功能细化为美食推荐、在线评论,用户特色功能细化为美食资讯浏览、美食点评、收藏美食、美食推荐、发表评论、美食交流。

第4章 系统设计

4.1系统结构设计

本系统使用的角色主要有系统管理员、普通用户,本系统分为系统前台和系统后台,首先在系统前台,游客用户可以经过账号注册,管理员审核通过后,用账号密码登录系统前台,进行美食资讯浏览、美食推荐、美食点评、收藏、发表评论、美食交流,在前台用户可以通过标题和类别进行前台信息的搜索,普通用户可以登录个人中心进行个人资料管等功能。

后台主要由管理员使用,以管理员的身份在登录页面输入账号和密码,经过数据库身份验证,验证成功后登录系统主页,可以使用用户管理、美食分类管理、美食资讯管理、收藏评论管理、美食交流管理等功能操作。同时管理员可以通过关键字搜索可以搜索相应的信息,打印各种详细信息,导出各类信息列表至excel中。

系统的功能结构图如下图所示。

 

图4-1系统功能结构图

4.2主要功能模块设计

  1. 用户管理模块

该模块包括普通用户管理和系统用户管理,系统用户主要是普通管理员,对用户信息进行管理,只有普通用户才可在该系统上进行相应的操作。用户对个人信息可进行修改;管理员可对自己的个人信息进行维护,同时可对用户的密码信息进行修改,也可删除系统中的用户

  1. 登录模块

根据用户输入的 Id 和密码到数据库中查找该用户,如果未能找到该用户则做出 提醒“用户名或密码错误”,如果找到该用户,则要判断用户的类别然后根据用户类别进入相应的页面。

  1. 注册模块

当新用户第一次登陆时,要求注册账号。在登陆页点击注册后进入用户注册界面,新用户需要填写本人的手机号、用户名、设置登录密码,之后单击注册,则完成了初步信息的填写

  1. 美食资讯管理模块

(1)美食添加:必须填写美食名称、美食类型、海报、导演、主演、制片地区、语言、片长,美食编号必须是唯一的,提交后判断某一项是否为填写,如果是则做出提醒,填写符合规则后方可添加到数据库。

(2)美食查询:可以根据美食编号等信息对美食进 行查询,查询结果可能有多个。

(3)美食修改:除了美食编号外,其他信息均可以修改。

(4)美食删除:首先找到要删除的美食(一个或多个),然后删除即可。

  1. 美食推荐管理模块

(1)美食推荐添加:必须填写标题、内容,且编号必须是唯一的,各项都不能为空。

(2)美食推荐查询:该功能能够显示美食推荐的基本信息,可以根据美食推荐的编号等信息对美食推荐做出查询。

(3)美食推荐修改:如果美食推荐需要被修改,可修改的信息包括美食推荐内容等基本信息,但是编号是唯一、固定 的,不能被修改。

(4)美食推荐删除:首先找到要删除的美食推荐(一个或多个),然后删除即可。

  1. 美食分享交流模块

用户可以选中某一部美食进行线上分享交流,提交美食信息,管理员在后台可以查看或搜索用户发表,同时审核发表内容信息。

  1. 评论信息管理模块

评论模块分为用户评论和管理员管理评论信息,用户登录系统后,选择想要评论的美食,添加评论,管理员查询该评论信息,并有权对其管理,包括删除。

4.3数据库设计

4.3.1数据库设计概述

为了实现系统的功能设计,就要有相应的数据库表设计。根据系统的功能设计要求为各个数据库表设计字段、数据类型、是否为空等的相关信息。在实际调研和需求分析的基础上,对该系统设计数据库。再有系统的需求分析可以看出,本系统有两个角色:普通用户和管理员,他们分别在系统的运行和使用中起着不同的作用。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。数据库中表的设计主要考虑两个方面:一是整个管理系统的所有表中的数据要共享性高、冗余度小、占用最可能小的存储空间。

4.3.2概念设计

概念设计是整个数据库设计的关键,在概念设计阶段,由需求分析得到了E-R模型。E-R图是识别功能模型与数据模型间关联关系的,在主题数据库的抽取和规范化的过程中,采用的是简化的E-R图表示方法,从而避免过繁过细的E-R图表示影响规划的直观和可用性。是对现实世界的抽象和概括,是数据库设计人员进行数据可设计的有力工具,能够方便直接地表达应用中的各种语义知识,令一方面它简单、清晰、易于用户理解。

系统总体ER图如下图所示。

 

图4-10系统总体ER图

4.3.3表设计

概念模型是独立于任何一种数据模型的信息结构。将概念模型转换成逻辑模型,转换的一般原则如下:

(1)一个实体性转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。

(2)一个1:1联系可以转化为一个独立的关系模式,也可以与任意一端对应的关系模式合并。

(3)一个1:n联系可以转化为一个独立的关系模式,也可以与n端对应的关系模式合并。

(4)一个m:n联系转化为一个关系模式。

本系统设计如下多个表,包括电影表、资讯表、评论表、论坛表。

group表:

名称

类型

长度

不是null

主键

注释

group_id

mediumint

8

用户组ID

display

smallint

4

显示顺序

name

varchar

16

名称

description

varchar

255

描述

source_table

varchar

255

来源表:

source_field

varchar

255

来源字段:

source_id

int

10

来源ID:

register

smallint

1

注册位置:

create_time

timestamp

0

创建时间:

update_time

timestamp

0

更新时间:

registered_user表:

名称

类型

长度

不是null

主键

注释

registered_user_id

int

11

注册用户ID

user_number

varchar

64

用户编号

age

varchar

64

年龄

gender

varchar

64

性别

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

sharing_classification表:

名称

类型

长度

不是null

主键

注释

sharing_classification_id

int

11

分享分类ID

sharing_type

varchar

64

分享类型

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

food_sharing表:

名称

类型

长度

不是null

主键

注释

food_sharing_id

int

11

美食分享ID

title

varchar

64

标题

sharing_type

varchar

64

分享类型

user_number

int

11

用户编号

cover

varchar

255

封面

share_content

longtext

0

分享内容

hits

int

11

点击数

praise_len

int

11

点赞数

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

comment表:

名称

类型

长度

不是null

主键

注释

comment_id

int

11

评论ID:

user_id

int

11

评论人ID:

reply_to_id

int

11

回复评论ID

content

longtext

0

内容:

nickname

varchar

255

昵称:

avatar

varchar

255

头像地址

create_time

timestamp

0

创建时间:

update_time

timestamp

0

更新时间:

source_table

varchar

255

来源表:

source_field

varchar

255

来源字段:

source_id

int

10

来源ID:

第5章  系统实现

5.1登录模块的实现

美食分享系统的平台入口就是用户登录功能,在浏览器输系统地址跳转至系统前台首页,系统前台的登录窗口在首页左面,包括用户名、密码、权限、验证码,除了权限框使用下拉列表,其他使用文本框,验证码下方为登录和重置两个按钮,用户点击登录按钮,则进行登录验证。

登录流程图如下所示。

 

图5-1登录流程图

系统登录界面如下所示。

 

图5-2系统登录

登录关键代码如下。

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String,Object> login(@RequestBody Map<String,String> data,HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String,String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username",username);

            resultList = service.select(map,new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email",email);

            resultList = service.select(map,new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone",phone);

            resultList = service.select(map,new HashMap<>()).getResultList();

        }else{

            return error(30000,"账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000,"账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String,String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.select(groupMap,new HashMap<>()).getResultList();

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-",""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token",accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000,"账号或密码不正确");

        }

}

5.2用户子系统模块的实现

5.2.1用户首页的实现

在美食分享的用户首页,主要有用户登录页面,以及¥的展示等,在首页的导航栏中可看出,该系统主要有¥等主要模块。

如下图所示为系统的用户首页界面。

 

图5-3用户首页

5.2.2注册模块的实现

这块程序首先根据所取得的表单中的用户名查询数据库中是否有相同用户名的记录,如果数据库存在相同的用户名,则提示用户名已存在,否则,打开记录集并添加一条新的记录,然后系统默认要给用户发送注册成功的提醒。

用户注册流程图如下所示。

 

图5-4用户注册流程图

用户注册界面如下图所示。

 

图5-5用户注册

用户注册关键代码如下。

/**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String,Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String,String> query = new HashMap<>();

        query.put("username",user.getUsername());

        List list = service.select(query,new HashMap<>()).getResultList();

        if (list.size()>0){

            return error(30000,"用户已存在");

        }

        user.setUserId(null);

        user.setPassword(service.encryption(user.getPassword()));

        service.save(user);

        return success(1);

}

/**

     * 用户ID:[0,8388607]用户获取其他与用户相关的数据

     */

    @Id

    @GeneratedValue(strategy = GenerationType.IDENTITY)

    @Column(name = "user_id")

    private Integer userId;

    /**

     * 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

     */

    @Basic

    @Column(name = "state")

    private Integer state;

    /**

     * 所在用户组:[0,32767]决定用户身份和权限

     */

    @Basic

    @Column(name = "user_group")

    private String userGroup;

    /**

     * 上次登录时间:

     */

    @Basic

    @Column(name = "login_time")

    private Timestamp loginTime;

    /**

     * 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

     */

    @Basic

    @Column(name = "phone")

    private String phone;

    /**

     * 手机认证:[0,1](0未认证|1审核中|2已认证)

     */

    @Basic

    @Column(name = "phone_state")

    private Integer phoneState;

    /**

     * 用户名:[0,16]用户登录时所用的账户名称

     */

    @Basic

    @Column(name = "username")

    private String username;

    /**

     * 昵称:[0,16]

     */

    @Basic

    @Column(name = "nickname")

    private String nickname;

    /**

     * 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

     */

    @Basic

    @Column(name = "password")

    private String password;

    /**

     * 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

     */

    @Basic

    @Column(name = "email")

    private String email;

    /**

     * 邮箱认证:[0,1](0未认证|1审核中|2已认证)

     */

    @Basic

    @Column(name = "email_state")

    private Integer emailState;

    /**

     * 头像地址:[0,255]

     */

    @Basic

    @Column(name = "avatar")

    private String avatar;

    /**

     * 创建时间:

     */

    @Basic

    @Column(name = "create_time")

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

    private Timestamp createTime;

    @Basic

    @Transient

    private String code;

}

5.2.3评论模块的实现

用户点击某个美食点进入美食详细页,点击评论按钮进入评论页,提交评论信息,成功发布评论,管理员管理用户的评论信息。

用户评论流程图如下所示。

 

图5-6用户评论流程图

用户评论界面如图所示。

 

图5-6用户评论

5.3管理员子系统模块的实现

5.3.1用户管理模块的实现

系统用户管理主要是对新用户的添加和旧用户的删除。新用户的添加主要是指添加用户名称并确定其密码;旧用户的删除也是从下拉菜单中找到对应的用户名称将其删除。不论是新用户添加还是旧用户的删除,这个权限只有管理员具有。

系统用户管理界面如下图所示。

 

图5-7系统用户管理

5.3.2密码修改模块的实现

密码修改是对当前登录用户的密码进行修改,在用户登录后右上方也能进行密码修改。

密码修改流程图如下所示。

 

图5-8密码修改流程图

密码修改界面如图所示。

 

图5-9修改密码

5.3.3美食分类管理模块的实现

美食信息添加功能主要指对其美食名称、描述、美食类型、美食图片、分享内容等一些基本信息的添加、删除和修改。美食查询能根据美食id、名称、标题等多种条件对美食信息进行查询。

美食分类管理流程图如下所示。

 

图5-10美食分类管理流程图

美食分类如下图所示:

 

图5-11美食分类

美食分类管理关键代码如下所示。

@PostMapping("/add")

    @Transactional

    public Map<String,Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

    @Transactional

    public Map<String,Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json,Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

}

    public void insert(Map<String,Object> body){

        StringBuffer sql = new StringBuffer("INSERT INTO ");

        sql.append("`").append(table).append("`").append(" (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(") VALUES (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("'").append(entry.getValue()).append("'").append(",");

            }else {

                sql.append(entry.getValue()).append(",");

            }

        }

        sql.deleteCharAt(sql.length() - 1);

        sql.append(")");

        log.info("[{}] - 插入操作:{}",table,sql);

        Query query = runCountSql(sql.toString());

        query.executeUpdate();

    }

5.3.4美食分享管理模块的实现

用户根据自己兴趣搜索美食类型,前台显示美食信息,信息添加功能主要指对其标题、内容等一些基本信息的添加、删除和修改。用户可以在线进行美食分享,做法等操作等,流程图如下所示。

 

图5-13资讯管理流程图

美食分享表如下图所示:

 

图5-14美食分享表

美食分享表关键代码如下所示。

@RequestMapping("/get_list")

    public Map<String,Object> getList(HttpServletRequest request) {

        Map<String,Object> map = service.selectToPage(service.readQuery(request),service.readConfig(request));

        return success(map);

第6  系统测试

6.1软件测试

在设计系统的过程中,存在一些错误是不可避免的。For语句语法错误,运行的提示,并要求立即纠正,因此,容易发现和纠正错误等。但另一种类型的错误是程序执行时由于不正确的操作或对某些数据计算公式的逻辑错误导致错误的结果。这种错误的隐蔽性强,有时会出现,有时不出现,这种误差动态屏幕耗时。

6.2功能测试

功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项检测,检查产品是否达到用户要求的功能。下面列出的测试用例是基于需求分析阶段的用例描述而进行的设计。

下面将通过表格的形式介绍针对本系统每个功能模块所进行的功能测试。

1.注册模块功能测试,如下表所示。

表6-1注册测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

用户注册

用户打开注册界面

输入合适的用户名,密码为空

无法注册

提示密码不得为空,无法注册

正常

用户注册

用户打开注册界面

输入不合适的用户名、2次相同的密码

无法注册

提示用户注册失败

正常

用户注册

用户打开注册界面

输入合适的用户名,两次密码不一致

无法注册

提示用户名不得为空,无法注册

正常

用户注册

用户打开注册界面

输入的用户名为空

无法注册

提示用户名不能为空

正常

用户注册

用户打开注册界面

输入合适的用户名和两次相同的密码

正常注册

注册成功

正常

2.登录模块功能测试,如下表所示。

表6-2登录测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

登录系统

用户打开登录界面

输入正确的用户名,密码为空

无法登录

提示密码不得为空,无法登录

正常

登录系统

用户打开登录界面

输入正确的用户名,输入错误密码

无法登录

提示密码不正确,无法登录

正常

登录系统

用户打开登录界面

输入正确的密码,用户名为空

无法登录

提示用户名不得为空,无法登录

正常

登录系统

用户打开登录界面

输入正确的密码,错误的用户名

无法登陆

提示用户名不正确,无法登录

正常

登录系统

用户打开登录界面

用户名及密码都为空

无法登录

提示用户名和密码不得为空,无法登录

正常

登录系统

用户打开登录界面

用户名及密码都输入错误

无法登录

提示用户名和密码正确,无法登录

正常

登录系统

用户打开登录界面

输入正确的用户名和密码

正常登录

进入主界面

正常

3.修改密码模块功能测试,如下表所示。

表6-3修改密码测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

修改密码

用户打开修改密码界面

输入正确初始密码和2次相同的新密码

密码修改成功

密码修改成功

正常

修改密码

用户打开修改密码界面

输入错误的原始密码

密码修改失败

密码修改失败

正常

修改密码

用户打开修改密码界面

输入正确初始密码和2次不相同的新密码

密码修改失败

密码修改失败

正常

4.评论功能测试,如下表所示。

表6-4评论测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

在线评论

用户已登录,打开评论界面

输入评论标题、内容等信息

评论成功

评论成功,新评论成功显示

正常

在线评论

用户已登录,打开评论界面

用户未输入评论标题和内容

评论失败

评论失败

正常

5.个人中心功能测试,如下表所示。

表6-5个人中心测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

用户信息修改

用户已登录,进入个人中心,且打开个人信息界面

输入内容不合法或必填项为空

修改失败

提示输入内容非法

正常

用户信息修改

用户已登录,进入个人中心,且打开个人信息界面

输入内容合法

修改成功

提示修改成功

正常

6.资讯管理功能测试,如下表所示。

表6-6资讯管理测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

资讯信息添加

用户已登录,打开资讯添加界面

输入资讯标题、内容等信息

资讯添加成功

资讯添加成功,新资讯成功显示

正常

资讯信息添加

用户已登录,打开资讯添加界面

用户未输入资讯标题和内容

资讯添加失败

资讯添加失败

正常

7.美食分类管理功能测试,如下表所示。

表6-7美食分类管理测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

美食分类信息添加

用户已登录,打开美食分类添加界面

输入美食分类标题、内容等信息

美食分类添加成功

美食分类添加成功,新美食分类成功显示

正常

美食分类信息添加

用户已登录,打开美食分类添加界面

用户未输入美食分类标题和内容

美食分类添加失败

美食分类添加失败

正常

7.美食点评功能测试,如下表所示。

表6-8美食点评测试

测试用例编号

测试用例描述

前提条件

测试步骤

预期结果

实际结果

状态

美食点评

用户已登录,打开美食点评界面

输入美食标题、内容等信息

美食点评成功

美食点评成功

正常

美食点评

用户已登录,打开美食点评界面

用户未输入美食标题和内容

美食点评失败

美食点评失败

正常

6.3测试结果

通过对美食分享整个系统功能的测试,发现了许多无法实现的功能并及时得到改正和实现,为美食推荐与交流系统的发布奠定了基础。此系统中各模块的功能都基本实现,不过还存在着许多不足,在以后的学习中通过测试还需加强和完善。

第7章  总结

本文主要研究了美食分享系统的设计与实现。本次论文主要研究的内容主要包括:

(1)分析研究了本课题的开发背景和课题的研究意义。

(2)对此次毕业设计进行了详尽的需求分析,并根据实际需求,分析了其数据字典。

(3)概要设计了系统的功能模块,详细设计了系统所使用的数据库表,并研究了该系统的ER图。

(4)详细介绍了该平台要实现的功能,构建了此系统。

从技术上来说,整个系统的基本实现环境是Win10操作系统,数据库的建立使用MySQL软件,系统开发使用Springboot框架,用Java语言进行系统的设计和开发,图片采用Photoshop CS6处理,使整个系统在视觉上和功能上尽量做到完整和美观。系统界面设计美观大方,功能较为完整,技术较先进且具有一定现实意义。

在摸索中前进。对MySQL数据库的使用,如何设计后台表结构,使得系统更加合理,健壮,是面临的又一个难题,通过查找相关资料,以及在充分的需求分析基础上,解决了以上问题。若条件允许,系统的功能模块能够更丰富,某些模块的功能也能更完善,用户之间权限的处理逻辑性也能更强。今后在改善客观条件的情况下,本系统还需要进一步进行研究开发。

致  谢

经历了几个月的毕业设计之旅,遭遇了无数难题与挑战,几经波折后,近乎要摧毁我当初选择这个题目的信心。好在我的导师一直坚持对我悉心支持,并对此套系统提出了诸多改善意见,解决了我所遇到的众多难题,电影点评平台也得以在这样的境况下圆满完成。老师给予了我正确的指导和极大的帮助,这不仅仅使我获得了足够多的开发经验,更使我在系统设计过程中少走了许多的弯路,巩固了以前所学的知识,提高了应用能力,这使我对以后的工作也信心满满。

敬业的工作态度都给予了我极大的鼓励与帮助。对于提出的问题和遇到的困难都给予细心的解答和真诚的帮助,再次表示衷心的感谢。我还要对学院及系里的各位领导、老师们表示谢意,在这次毕业论文期间给我们提供了良好的学习和生活环境,并给予软硬件的支持,使得我的系统设计工作及论文撰写工作更加顺畅、便利。最后我还要感谢所有为我的毕业设计提出指导意见的各位老师、同学。

参考文献

[1]姜广秀.中华美食是国际青年交流柔软且强大的力量[J].国际人才交流,2021(12):58-60.

[2]袁江琛.基于ASP.NET+三层架构的美食分享网站的设计与实现[J].信息与电脑(理论版),2021,33(18):164-166.

[3]依力·吐尔孙,艾孜尔古丽.基于Python的美食数据爬取及可视化研究[J].电脑知识与技术,17(10):19-20+29.

[4]鲜易洲,杨蕊,吴蓉,巩培桢,吴丽丽.时食美食分享系统的设计与分析[J].电脑知识与技术,17(09):85-87.

[5]吴晨,毛玉萃,张乐.一款基于SSM的中华美食网站的设计与实现[J].电脑知识与技术,2020,16(19):70-72.

[6]顾捷.舟山紫菜“海味”美食分享[J].农村百事通,2020(01):42-43.

[7]黄安.基于PHP+Mysql技术的网站设计与实现——以美食网站系统的设计为例[J].轻纺工业与技术,2019,48(07):168-170.

[8]Ma Yide,Peng Xue.Video Sharing Sites' Fault Identification in Indirect Copyright Infringements[J].Contemporary Social Sciences,2019(03):109-127.

[9]夏菁. 移动互联网时代青年的美食社交[D].安徽大学,2019.

[10]闫薇.美食网站的设计与实现[J].数码世界,2019(07):107-108.

[11]于文强. 面向B2C商业模式的美食推荐系统设计与实现[D].哈尔滨工业大学,2018.

[12]刘琼宇,刘擎业,宋易欣,朱磊,宋雪瑶.互联网美食平台发展现状及对策——以菜谱类美食应用为例[J].现代食品,2018(01):31-35.

[13]卢红霞,方晓亮.社会化顾客价值在美食分享网站的应用研究[J].物流工程与管理,2018,37(11):230-233.

[14]宗英健. 基于LBS应用的美食推荐类互联网产品设计[D].扬州大学,2018.

[15]李彤.基于PHP和MySQL的小型应用设计——以Android的美食和出行信息分享平台为例[J].计算机光盘软件与应用,17(10):263+265.

     免费领取本源代码,请关注点赞+私信

原文地址:https://blog.csdn.net/WeiXin_DZbishe/article/details/126658483

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读8.4k次,点赞8次,收藏7次。SourceCodester Online Tours & Travels Management System pay.php sql injectionLine 16 of pay.php invokes a SQL query built using unvalidated input. This call could allow an attacker to modify the statement’s meaning or to execute arbitrary SQL commands.SQL
文章浏览阅读3.4k次,点赞46次,收藏51次。本文为大家介绍在windwos系统搭建typecho博客+cpolar内网穿透工具将博客发布到公共网络环境,实现远程也可以访问和操作。_windows搭建typecho
文章浏览阅读1.1k次。- php是最优秀, 最原生的模板语言, 替代语法,让php更加的优雅的与html生活在一起 -->请放心, 最终生成的,或者说用户最终看到的,仍然是一个html文档, php代码中的内容不会被泄漏的。-- 将php与html代码混编的时候,大括号很容易造成配对错误,最好杜绝它 -->php标签内部代码由php.exe解释, php标签之外的代码原样输出,仍由web服务器解析。-- 所以php的流程控制语句, 都提供了替代语法,用冒号代替大括号 -->php echo '百变鹏仔'?_利用php将静态页面修改为动态页面
文章浏览阅读1.1k次,点赞18次,收藏15次。整理K8s网络相关笔记博文内容涉及 Linux network namespace 认知以及彼此通信Demo,实际中的应用理解不足小伙伴帮忙指正不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村上春树。_linux network namespace 多端通信 模式认知
文章浏览阅读1.2k次,点赞22次,收藏19次。此网络模型提供了一个逻辑二层(L2)网络,该网络封装在跨 Kubernetes 集群节点的现有三层(L3)网络拓扑上。使用此模型,可以为容器提供一个隔离的 L2 网络,而无需分发路由。封装网络带来了少量的处理开销以及由于覆盖封装生成 IP header 造成的 IP 包大小增加。封装信息由 Kubernetes worker 之间的 UDP 端口分发,交换如何访问 MAC 地址的网络控制平面信息。此类网络模型中常用的封装是 VXLAN、Internet 协议安全性 (IPSec) 和 IP-in-IP。_k8s网络组件对比
文章浏览阅读1.1k次,点赞14次,收藏19次。当我们谈论网络安全时,我们正在讨论的是保护我们的在线空间,这是我们所有人的共享责任。网络安全涉及保护我们的信息,防止被未经授权的人访问、披露、破坏或修改。
文章浏览阅读1.3w次,点赞3次,收藏7次。尽管您可以通过 ping 命令解析出网站的 IP 地址,但是可能在浏览器中访问时仍然遇到问题,这可能是因为浏览器使用的 DNS 解析结果不同于 ping 命令使用的解析结果。可能是因为您的网络或设备上设置了防火墙,阻止了对特定网站的访问。有些国家或组织可能会对特定的域名进行屏蔽,从而阻止访问相关网站。如果您的网络使用代理服务器进行访问控制,可能会由于代理服务器的配置问题导致无法访问某些网站。即使您的网络和设备一切正常,目标网站本身可能也存在问题,例如服务器故障、维护或过载,导致无法访问。_能ping通打不开网页
文章浏览阅读839次,点赞22次,收藏19次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。
文章浏览阅读2.1k次,点赞31次,收藏22次。基于微信小程序奶茶点餐外卖系统设计与实现(PHP后台+Mysql)可行性分析毕设源代码毕业设计,数据安全和系统稳定性以及团队能力和资源配备方面都具备较好的条件。因此,该项目的可行性较高。:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;微信小程序作为一种快捷、方便的移动应用形式,成为很多用户点餐外卖的首选。项目的界面和功能都可以定制,包安装运行!项目配有对应开发文档、开题报告、任务书、PPT、论文模版等。
文章浏览阅读1.8k次,点赞52次,收藏38次。本文主要通过对系统的前台系统和后台管理系统进行了功能性需求分析,对系统的安全性和可扩展性进行了非功能性需求分析。在详细的需求分析的基础上,根据系统的功能设计确定了数据库结构,实现完整的代码编写。Lucky+Baby母婴用品网站使用 Dreamweaver、HBuilder代码编辑器、Apache服务器等开发工具,完成了系统的主要模块的页面设计和功能实现。本文展示了首页页面的实现效果图,并通过代码和页面介绍了用户注册功能、商品搜索功能、生成订单和查看我的订单功能、在线付款功能功能的实现过程。
文章浏览阅读1.5k次,点赞45次,收藏40次。本设计主要实现集人性化、高效率、便捷等优点于一身的人事信息管理系统,完成首页、系统用户、通知公告、部门信息、员工薪资、考勤签到、员工请假、招聘信息、应聘信息等功能模块。
文章浏览阅读1k次。该错误通常出现在数据库读取结果集数据时,比如当我们写好SQL语句从数据库读取数据时,本身应该返回结果集,再给结果集中读取数据。解决思路:这种错误一般是因为echo后面输出了一个数组导致的,或者是数组作为字符串进行拼接运算时导致的。该错误直译为:警告:mysqli_fetch_assoc函数期望参数1是mysqli的结果集,但是给了一个布尔值。这种错误是PHP解析器在解析时遇到了语法错误,直译为:解析错误:语法错误,意料之外的...该错误直译为:提示:未定义的索引:username。_array to string conversion in
文章浏览阅读2.7w次。解决http请求报错context deadline exceeded (Client.Timeout exceeded while awaiting headers)_context deadline exceeded (client.timeout exceeded while awaiting headers)
文章浏览阅读1.3k次,点赞26次,收藏24次。复杂网络是一种由大量相互连接的元素(节点或顶点)组成的网络结构,这些连接通常是非常复杂和动态的。这些网络可以在各种领域中发现,包括社交网络、生物学系统、信息技术和交通系统等。_代理建模
文章浏览阅读2.6k次,点赞76次,收藏71次。epoll详解,事件模型,ET/LT模式,并通过三个示例进行代码实现。
文章浏览阅读3.3k次。罗拉ROLA-IP是一家来自纽约的代理IP提供商,由李嘉诚先生投资建设,韩国人工智能、自动驾驶、虚拟现实方面的领军企业World IT Show投资入股,由美国纽约大学IT管理教授团队研究开发,进入中国市场6年多,全世界设有多个分子公司。接下来,我们要检查代理和防火墙的设置,因为在绝大多数情况下,它们是导致这个错误的原因,尤其是当用户使用免费代理时。对网站的访问受阻实际上是一个非常常见的错误,它既可能是由于物理原因(硬件问题)造成的,也可能是由于软件错误引起的。检查代理设置,并确保其正确配置。_无法访问此网站,检查代理服务器和防火墙
文章浏览阅读1.1k次,点赞14次,收藏20次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。_php洗车服务预约管理系统php源码
文章浏览阅读1.1k次。桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。同时,对于桶中元素的排序,选择何种比较排序算法对于性能的影响至关重要。
文章浏览阅读936次,点赞22次,收藏17次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。
文章浏览阅读822次,点赞15次,收藏14次。在整个设计过程中,要确定可能的具体解决方案,以实现每一个小的最终目标,对于每一个小目标,我们首先必须了解一些相关的需求分析信息。除了以上作品下面是2023-2024年最新100套计算机专业原创的毕业设计源码+数据库,是近期作品,如果你的题目刚好在下面可以文末领取java源码参考。springboot基于springboot的在线考试系统。springboot基于springboot的商城购物系统。springboot基于微信小程序的智慧校园设计与实现。springboot基于用户的协同过滤算法的话题推荐。