🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。
- 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹
- 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
- 赠送开题报告模板,帮助书写开题报告。
作者完整代码目录供你选择:
⬇️文章末尾可以获取联系方式,需要源码或者演示视频可以联系⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目展示






1 绪论
1.1 课题研究的背景
随着电子技术的普及和快速发展,线上管理系统被广泛的使用,有很多事业单位和商业机构都在实现电子信息化管理,社区共享食堂信息系统也不例外,由比较传统的人工管理转向了电子化、信息化、系统化的管理。
传统的社区共享食堂信息管理,一开始都是手工记录,然后将手工记录的文档进行存档;随着电脑的普及,社区共享食堂信息管理演变成了手工记录后,输入电脑进行存档。传统的管理方式,对管理者来说工作量大。而且这种社区共享食堂信息管理的方式,容易出现遗失或因为失误输入错误的信息等等。在这些基础上,我把用ssm为框架的社区共享食堂信息系统作为我的毕业设计,希望可以解决传统社区共享食堂信息系统管理中出现的问题,简化工作人员的压力,也可以方便管理员进行系统化、电子化的管理。
1.2 课题研究的内容
研究的基本内容:本设计主要是实现一个社区共享食堂信息系统,实现社区共享食堂信息管理的自动化、信息化管理。系统的主要的设计原则是:以实际应用为核心,重点突出“实用、易用、简洁、稳定”的优点。既能够注重到实效,满足现实用户的实际需要,也能够为系统以后的升级和扩展留有一定的余地。在技术设计的实现上,突出“实现合理、结构清晰、简单易懂”的特点。
本系统的主要目的在于加速信息化进程,充分利用计算机技术和现代通讯的手段面向国家、或其他地区的服务。建立信息交流平台,方便信息资源的共享,加强各个部门之间的交流。提高整体的办公效率,为管理员以及用户提供辅助的社区共享食堂信息管理服务。本系统将最大程度地提高整体的工作效率和工作质量,降低管理和工作的成本,改善工作的环境和条件,提高管理和决策的自动化和科学化水平。帮助管理者节省费用,减少中间环节,优化业务流程,提高整体效率,促进管理的进步。
1.3 系统开发的意义
随着互联网技术的发展,人们的生活无处不在的受到互联网技术影响,而互联网技术给人们生活带来的便利是不言而喻的。对于现代化的社区共享食堂信息系统而言,它的目的并不是减少管理者的工作量,而是让用户们从繁琐的社区共享食堂信息管理过程中解脱出来,这样就可以提高社区共享食堂信息管理的工作效率,服务于更多的群众,所以开发本系统是十分有意义的。
1.4 初步设计方法与实施方案
软件体系结构方案:由于本系统需要在不同设备上都能运行,而且电脑配置要求也要越低越好,为了实现这一要求,经过考虑B/S结构成为最佳之选。使用B/S结构的系统可以几乎在任何电脑上运行,只要浏览器可以正常工作就可以正常运行该系统,而且后期维护及二次修改较为容易,符合要求。
操作系统方案:Windows10操作系统,该系统是目前微软公司推出的最新系统,目前大多数市面上的电脑都使用该系统,并且该系统功能完善,兼容性好。开发工具:选用My Eclipse、Java开发技术。
1.5论文结构
本论文主要划分成七大章节,具体内容如下:
第一部分为绪论,对系统的主要内容,主要介绍了目前电脑技术发展背景、社区共享食堂信息管理发展意义和初步设计方法与实施方案。
第二部分为相关技术简介,系统主要使用了java技术, b/s模式和myspl数据库,并对此做了介绍。
第三部分为系统分析,主要分析了软件设计所需要的功能。
第四部分为系统设计,主要进行了系统的架构设计、数据库设计等。
第五部分为系统详细设计。
第六部分为系统调试与测试,利用测试方法进行可行性测试、性能测试、系统测试等。
第七部分为总结与致谢,主要总结了程序设计的完成过程及完成情况,比对完成设计过程中施以援手的同学和老师表达中心的感谢和祝愿。
2相关技术介绍
2.1 Java介绍
Java是由Sun公司推出的一门跨平台的面向对象的程序设计语言。因为Java 技术具有卓越的通用性、高效性、健壮的安全性和平台移植性的特点,而且Java是开源的,拥有全世界最大的开发者专业社群,所以Java的发展迅速。
2.2 B/S架构
B/S的系统是通过能上网的电脑就可以使用,它最大的优点是不需要安装专门的软件,首先浏览器向服务器发出请求,然后服务器处理请求把信息再返回给浏览器。不需要再次对数据进行存取与计算数据,只要负责显示数据来降低要求,如果说客户端像个“瘦子”,而服务器会越来越“胖”。B/S体系结构与C/S体系结构相比,最大的不同是:B/S体系的应用软件使用网络浏览器作为与用户交互的平台,而C/S则需要开发专用的应用程序。
图2-1 B/S结构图
2.3 MySQL介绍
在软件项目,通过经营性数据的数据库,可以保证其安全,独立和数据一致,访问数据的系统来提供,所以有效减少时间程序员开发应用程序。
MySQL可以支持多线程,可以方便使用系统的资源,提高运行的速度。并提供odbc、jdbc和tcp/ ip,以各种形式连接到MySQL; 功能方面表现欠缺,规模小,但对于这个系统就足够了。
因为MySQL是源代码对外开放的,所以任何人都可以通过相应的方法下载,并根据个性化需求进行修改。 由于MySQL的速度,可靠性和适应性,MySQL受到重视。
MySQL虽然功能可能不是很强大,但由于其开源,广泛传播,导致很多人都意识到这个数据库。
2.4 JSP技术
JSP(JAVA SERVER PAGES,java服务器页面)自面世以来就被大家所广泛使用,JSP是一种基于文本的程序,同时也是是一种动态网页技术标准。为了简化Servlet的工作(Servlet输出HTML非常困难,JSP就是替代Servlet输出HTML的),而JSP的诞生并不是由一家公司完成,而是经过多家企业的共同研究开发出来的(在SUN MICROSYSTEMS公司领头下)。
JSP具有跨平台,分离静态内容和动态内容,可重复使用组件,预编译,沿用java Servlet所有功能等技术特征。跨平台指JSP是运用java来开发的动态网页技术,JSP继承了Java具有的大部分性质(JSP是JAVA WEB应用的主要视图,但不是唯一的)。分离静态内容和动态内容:无论是javabean、servlet以及嵌入在html代码之间的JSP代码都与html静态页面相分离,如javabean封装一些业务逻辑。可重复使用的组件:这里还是要提一下javabean,无论是值bean还是工具bean都是可重复使用,大大的提高了工作的效率。预编译:JSP页面在被服务器执行前就已经被编译好了,并且只在JSP页面第一次请求时进行编译,后续请求JSP未被修改时则直接掉用之前编译好的代码。JSP沿用了java Servlet的所有功能,并在servlet的额基础上做了很大改进,比如在分离静态内容和动态内容上,servlet所有内容都要在java代码中完成,JSP弥补了这个缺点,服务器先将JSP文件转化为servlet代码然后在进行编译。
2.5 SSM框架
开发信息管理系统的主流框架是SSM(Spring + Spring MVC + MyBatis),SSM框架web层使用Spring MVC框架,使传输前后端数据变得简单;对于业务层使用Spring作为轻量级控制反转和面向切面的容器框架;对于相关SQL操作,采用Mybatis作为持久层框架,对JDBC进行封装,使得数据库的底层面向开发者操作处于一种透明状态。
3系统需求分析
3.1 可行性分析
可行性分析是系统开发过程中的重要的一步,可行性研究是指在开发系统时,先对整体系统的所有的需求,所需要使用的技术和在开发时候需要用到的方法,以及开发所需要的人员,资金等各方面的综合考虑之后,再对该系统是否符合实际开发的要求进行评估,满足实际要求之后再进行实际的开发工作。一般的可行性分析包括:技术可行性、经济可行性可行性等;
研究的目的就是使用最小的代价和最短的时间来确定问题是否能够完善解决。该系统的可行性分析主要包括以下几个方面的内容。
3.1.1 经济可行性分析
社区共享食堂信息系统,主要面向的是电脑用户,成本并不高,对于系统的维护和调试,只需要一个人就可以完成,所以在人力方面,投入的也很少。虽然说人力和资金的投入并不多,但是面临的收益是十分可观的,在21世纪,很多企业、公司等都会将管理的目标转移到线上管理,知识是无价的。在未来,很多企业投入的人力资源和资金不会太多,但却又能保证企业运转继续进行。这对整个企业的发展是非常有利的。
3.1.2 技术可行性分析
社区共享食堂信息系统的开发使用了比较成熟的企业级项目开发的模式。使用MyEclipse作为开发工具,数据库使用MySQL。以Java技术为基本,使用ssm框架搭建工程环境,结合自身的实际项目开发能力,完全可以开发出比较完善的社区共享食堂信息系统。
3.2 需求分析
3.2.1 功能需求分析
根据一般社区共享食堂信息系统的功能需求分析,本系统的功能模块如下:
(1)在个人中心,管理员可以修改自己的用户名和登录密码。
(2)在用户模块中,可以实现首页、菜品信息、食堂公告、个人中心、购物车等功能。
(3)在管理员模块中,管理员可以主页、个人中心、用户管理、美食分类管理、食堂管理、菜品信息管理、系统管理、订单管理等功能进行相应的操作管理。
3.2.2 系统性能需求分析
对系统性能进行分析,可对系统反应度、界面简洁清晰度、储存能性、易学性和稳定性进行分析;
系统反应度:同时上万人在线时反应时间应该在两三秒以内。
界面简洁清晰:系统界面要求简单明了,操作简单,用户操作容易上手。
储存性能高:社区共享食堂信息系统中需要存储的信息有很多,所以对系统的存储量要求很高,因此数据库就应该很强大,才能保证信息能安全稳定的进行存储;
易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。
稳定性:要求社区共享食堂信息系统运行要稳定,界面清楚、字体清晰等。
3.3系统流程的分析
由于不同的系统实际使用用户角色的不同,他们的业务分析也会变得有所不一样,为了论述方便接下来都将以用户功能权限下的系统业务流程来分析,如下图所展示:
图3-1 用户管理流程
3.3.1个人中心管理流程
图3-2 个人中心管理流程
3.3.2 登录流程
图3-3 登录流程
3.4 系统现状分析
系统使用用户的数量直接决定了用户信息管理者的工作量,毫无疑问,系统管理者的工作量较大较繁琐。通过前期的调研总结出系统现有的对用户管理工作状况如下分析:
缺少统筹规划,如果一个系统在信息化管理中缺少综合性、系统性、整体性,那不可避免的需要投入大量人力物力来规划整理信息。引入信息化管理方式无疑可以达到节省信息管理成本的目的不仅减少资源浪费还可以使社区共享食堂信息的管理变得井井有条,成为市场竞争中的一大优势。
要循序渐进,心急吃不了热豆腐,任何事情都不可能一蹴而就,就算信息管理系统也一样,要让系统发挥最大效率还是应该多调研,多听取用户和管理者的意见,并进行必要的统筹规划,有组织有目的地设计系统功能,团结各个部门发挥主观能动性。
(3)信息安全措施不到位
隐私权神圣不可侵犯,这是中华人民共和国宪法赋予我们的权利,人和人都不能侵犯我们的正当权益,而网络用户信息管理存在极大安全隐患,信息泄露的案列不在少数,加强信息安全措施是完善网络信息管理过程中不可避免的一环。
(4)资源不能充分共享
资源共享是网络的一大特点,没有共享就没有社交,网络也就失去了他应有的魅力,如果能够实现用户信息共享,无疑对于今后的发展存在不可或缺的帮助。
(5)现有系统可扩展性不高。
如今科学技术发展飞速,随着而来的就是技术更新,那势必会给软件更新带来挑战,因此,系统必须具备良好的开放性和可扩充性,为了不落后于时代,这是必备特色之一。
基于上述分析,社区共享食堂信息系统应该切合实际,做到确实有效,集体表现为:一是系统能够整理并集合归类用户信息,防止用户信息混乱,难以整理;二是系统要安全稳定,不能泄露用户信息,造成隐私泄露,不仅伤害用户利益更是对经营者名誉的损毁;三是系统要具有良好的开放性,不仅要方便定期的维护维修,更要方便及时增加新功能,保证先进的时代契合性。经过详细的讨论论证,确定系统的总体要求。
4系统总体设计与实现
4.1 总体设计
社区共享食堂信息系统采用了结构化开发的方法。这种开发方法的优点是控制性比较强,开发过程中采用了结构化和模块化的设计思想,自顶向下,从总体到部分,合理划分系统的结构和模块。结构化开发时使用模块式开发,各模块之间互不影响,方便系统的开发与管理。
本系统的设计是基于 B/S架构的三层体系结构,也就是浏览器和服务器结构。计算机技术发展的速度非常快,以前的设计结构都以C/S的模式为主,也就是前台和后台模式。但随着网页技术的发展,越来越多的用户习惯于使用浏览器。现在的网页技术可以在浏览器中实现非常漂亮的效果,以前的单一低调的客户端页面已经无法满足用户的需求。在B/S这种结构下,技术人员可以很轻松的设计出用户所需要的工作界面,页面代码通过浏览器进行解析展示,在浏览器中不做过多的事务逻辑的处理。主要的事务逻辑放在服务端进行处理。这样用户的电脑就不会承载过多的东西,只需要浏览器展示即可。对于开发人员也很方便进行系统的维护和升级。开发人员只需要在服务端进行系统的维护就可以了。使用Java这样的跨平台性非常好的语言,这样的开发模式更加的方便,高效。本系统合理的进行了模块划分和组合,因此由于各个模块之间基本上是相互独立的,所以每个模块都可以独立的被解释、执行、调试和修改,让繁琐的系统设计工作简单化。系统总体设计图如下图4-1所示:
图4-1系统总体设计图
4.2 数据库设计
4.2.1概念模型设计
数据可设计要遵循职责分离原则,即在设计时应该要考虑系统独立性,即每个系统之间互不干预不能混乱数据表和系统关系。
数据库命名也要遵循一定规范,否则容易混淆,数据库字段名要尽量做到与表名类似,多使用小写英文字母和下划线来命名并尽量使用简单单词。
概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。
菜品信息实体图如图4-2所示:
图4-2菜品信息实体图
购物车实体图如图4-3所示:
图4-3购物车实体图
食堂实体图如图4-4所示:
图4-4食堂实体图
4.2.2物理模型设计
根据上诉的逻辑模型设计,下面给出物理模型的设计,如下表:
表4-1:地址
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
address | varchar | 200 | 地址 | ||
name | varchar | 200 | 收货人 | ||
phone | varchar | 200 | 电话 | ||
isdefault | varchar | 200 | 是否默认地址[是/否] |
表4-2:token表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
userid | bigint | 用户id | |||
username | varchar | 100 | 用户名 | ||
tablename | varchar | 100 | 表名 | ||
role | varchar | 100 | 角色 | ||
token | varchar | 200 | 密码 | ||
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP | ||
expiratedtime | timestamp | 过期时间 | CURRENT_TIMESTAMP |
表4-3:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
refid | bigint | 收藏id | |||
tablename | varchar | 200 | 表名 | ||
name | varchar | 200 | 收藏名称 | ||
picture | varchar | 200 | 收藏图片 | ||
type | varchar | 200 | 类型(1:收藏,21:赞,22:踩) | 1 | |
inteltype | varchar | 200 | 推荐类型 |
表4-4:食堂
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shitangmingcheng | varchar | 200 | 食堂名称 | ||
jingyingfanwei | varchar | 200 | 经营范围 | ||
shangjiadizhi | varchar | 200 | 商家地址 | ||
fuzeren | varchar | 200 | 负责人 | ||
lianxidianhua | varchar | 200 | 联系电话 |
表4-5:订单
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
orderid | varchar | 200 | 订单编号 | ||
tablename | varchar | 200 | 商品表名 | caipinxinxi | |
userid | bigint | 用户id | |||
goodid | bigint | 商品id | |||
goodname | varchar | 200 | 商品名称 | ||
picture | varchar | 200 | 商品图片 | ||
buynumber | int | 购买数量 | |||
price | float | 价格 | 0 | ||
discountprice | float | 折扣价格 | 0 | ||
total | float | 总价格 | 0 | ||
discounttotal | float | 折扣总价格 | 0 | ||
type | int | 支付类型 | 1 | ||
status | varchar | 200 | 状态 | ||
address | varchar | 200 | 地址 | ||
tel | varchar | 200 | 电话 | ||
consignee | varchar | 200 | 收货人 | ||
logistics | longtext | 4294967295 | 物流 |
表4-6:食堂公告
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
introduction | longtext | 4294967295 | 简介 | ||
picture | varchar | 200 | 图片 | ||
content | longtext | 4294967295 | 内容 |
表4-7:美食分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
meishifenlei | varchar | 200 | 美食分类 |
表4-8:菜品信息评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-9:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 |
表4-10:购物车表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
tablename | varchar | 200 | 商品表名 | caipinxinxi | |
userid | bigint | 用户id | |||
goodid | bigint | 商品id | |||
goodname | varchar | 200 | 商品名称 | ||
picture | varchar | 200 | 图片 | ||
buynumber | int | 购买数量 | |||
price | float | 单价 | |||
discountprice | float | 会员价 |
表4-11:用户
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yonghuming | varchar | 200 | 用户名 | ||
xingming | varchar | 200 | 姓名 | ||
mima | varchar | 200 | 密码 | ||
xingbie | varchar | 200 | 性别 | ||
nianling | int | 年龄 | |||
shoujihao | varchar | 200 | 手机号 | ||
shenfen | varchar | 200 | 身份 | ||
money | float | 余额 | 0 |
表4-12:菜品信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
caipinbianhao | varchar | 200 | 菜品编号 | ||
caipinmingcheng | varchar | 200 | 菜品名称 | ||
meishifenlei | varchar | 200 | 美食分类 | ||
yongcanshijian | varchar | 200 | 用餐时间 | ||
chuangkoubianhao | varchar | 200 | 窗口编号 | ||
shitangmingcheng | varchar | 200 | 食堂名称 | ||
tupian | varchar | 200 | 图片 | ||
yuancailiao | longtext | 4294967295 | 原材料 | ||
caipinjieshao | longtext | 4294967295 | 菜品介绍 | ||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 | ||
price | float | 价格 | |||
onelimittimes | int | 单限 | -1 | ||
alllimittimes | int | 库存 | -1 |
表4-13:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
5 系统功能的详细设计与实现
5.1系统功能模块
社区共享食堂信息系统,在系统首页可以查看首页、菜品信息、食堂公告、个人中心、购物车等内容进行详细操作,如图5-1所示。
图5-1系统首页界面图
用户注册,在用户注册页面通过填写用户名、姓名、密码、确认密码、年龄、手机号等内容完成用户注册,如图5-2所示。
图5-2用户注册界面图
菜品信息,在菜品信息页面可以查看菜品名称、图片、价格、单次购买、库存、菜品编号、美食分类、用餐时间、窗口编号、食堂名称、原材料、菜品介绍等详细内容,根据需要进行添加到购物车,立即购买,评论等操作,如图5-3所示。
图5-3菜品信息界面图
食堂公告,在食堂公告页面可以查看标题、简介、图片等详细内容,如图5-4所示。
图5-4食堂公告界面图
个人中心,在个人中心页面通过填写用户名、姓名、密码、性别、年龄、手机号、身份、余额等信息进行更新信息,根据需要对我的订单,我的收藏进行相应操作,如图5-5所示。
购物车,在购物车页面可以查看购买商品、价格、数量、总价等详细内容,并进行购买操作,如图5-6所示。
图5-6购物车界面图
5.2管理员功能模块
管理员进行登录,进入系统前在登录页面根据要求填写用户名、密码,选择角色等信息,点击登录进行登录操作,如图5-7所示。
图5-7管理员登录界面图
管理员登录系统后,可以对主页、个人中心、用户管理、美食分类管理、食堂管理、菜品信息管理、系统管理、订单管理等进行相应的操作管理,如图5-8所示。
图5-8管理员功能界面图
用户管理,在用户管理页面可以对用户名、姓名、性别、年龄、手机号、身份等内容进行查看,修改或删除等操作,如图5-9所示。
图5-9用户管理界面图
食堂管理,在食堂管理页面可以对美食名称、经营范围、商家地址、负责人、联系电话等内容进行查看,修改或删除等操作,如图5-10所示。
菜品信息管理,在菜品信息管理页面可以对菜品编号、菜品名称、美食分类、用餐时间、窗口编号、食堂名称、图片、原材料、价格、单限、库存等内容进行查看,查看评论,修改或删除等操作,如图5-11所示。
图5-11菜品信息管理界面图
系统管理,在食堂公告页面可以对标题、简介、图片等内容进行查看,修改或删除等操作,还可对轮播图管理进行详细操作,如图5-12所示。
图5-12系统管理界面图
订单管理,在已支付订单页面可以对订单编号、商品名称、商品图片、购买数量、价格、折扣价格、总价格、折扣总价格、支付类型、状态等内容进行查看,核销或删除等操作,还可对已退款订单、已完成订单、未支付订单、已取消订单进行相应操作,如图5-13所示。
6 系统测试
系统测试是软件开发过程中最后一步,但也是不可或缺的重要的一步,没有人可以保证一次性编写完成的系统不会出错,而系统测试就是将自己开发的系统成为成品前的最后一步。在测试过程中需要进行严谨细致的测试,要尽可能全面地在不同情况下运行该系统,排除一切出现错误的可能。该系统的系统测试主要包括功能测试,可用性测试,维护测试,性能测试等部分,测试结果如下:
6.1 功能测试
功能测试主要包括五项内容,分别是适用性,准确性,可操作性,依从性和安全性。系统的功能测试表如下所示:
6.2 可用性测试
可用性测试用于检测系统的可操作性、可理解性、可学习性等方面内容。具体测试方面如下所示。表6-2系统可用性测试
6.3 维护测试
由于篇幅的原因,本节给出系统部分功能的维护测试用例。具体测试方面如表6-3所示。
表6-3系统用例测试
6.4 性能测试
性能测试:通过模拟系统运行环境来测试系统能否能达到预期效果。性能测试的主要技术方针是对系统运行速度,网络反应时间和支持并发节点数。
1)系统运行速度:得益于B/S架构,该系统能在不同配置电脑上运行并无明显卡顿,滞后,完全符合客户要求。
2)网络反应时间:网络反应时间主要包括网络最小反应时间,平均反应时间和最大反应时间三个参数值。经过测试,在正常网络运营状态下,局域网内反应时间三参数为:1/2/5s,外网反应时间三参数为3/7/12s,符合客户需求,属于用户心理可承受范围。
3)支持并发节点数:经过模拟环境测试,本系统在并发节点达45个时,网络运营速度会发生较大波动,延迟时间10秒左右,符合客户需求。
6.5 测试结果分析
经过对上述测试结果分析,本系统能够在不同电脑上使用运行,具备一定安全性,用户信息不易泄露,能够日后再增删功能,能够实现所有功能,产品运行性能良好,能达到毕业设计要求。
到此为止,社区共享食堂信息系统已经基本完成,本系统主要使用了Java技术、ssm框架,结合JBPM工作流引擎以及功能强大的MySQL数据库管理工具。系统实现了主页、个人中心、用户管理、美食分类管理、食堂管理、菜品信息管理、系统管理、订单管理等功能的管理,完成了系统设计任务的所有要求。
在这次毕业设计的过程中,我理解了更多的关于社区共享食堂信息管理的内容,学会了如何将现实中需求转化成系统的功能,在摸索学习过程中不断的提高自己的代码能力,以前开发都只开发一些业务逻辑的功能,从未接触过一个整体系统的设计与实现,这次毕业设计,我一边学习一边思考设计,最终既学会了一般的系统功能设计也完成了毕业设计。当然,在这次毕业设计的过程中我遇到了很多的困难,很多的问题。在遇到困难的时候我没有逃避,自觉的查找相关资料加强学习,自己解决的不了的问题就咨询身边的同学和老师。身边的同学和老师都非常的热情,友好,对待我的问题都很热情帮我解决,所以在此,我非常的感谢他们。是他们的支持与帮助,才使我顺利的完成这次毕业设计。
时光这个沙漏,一转眼就流完了,转眼之间大学四年就接近尾声,曾经觉得大学的时光好久,然而现在离校日期即将来临,随着毕业论文的完成,我的大学生活已经开始倒计时。回想这次毕业设计的开发过程,有许多我需要感谢的人。从一开始的选课开始,我的指导老师就给予了我非常大的帮助。一开始,我的选题选错了,是在老师的帮助下我才顺利的改了选题。对待系统功能设计上,老师兢兢业业的给我指导,帮助我修改任务中不合理的地方,给我提出了很多宝贵的意见。在此我想真诚的说一声:老师,谢谢你,没有你的帮助我不可能这么顺利的完成毕业设计。
当然,与此同时我想向我所有的授课老师表示衷心的感谢,当年刚刚步入大学校园的我并不懂得你们对我们的教导,整天无所事事,对学习的兴趣不大。现在我知道了,没有知识是很难在现实的社会中生存的,还有你们上课时讲给我们的道理,现在我都清晰的记得。非常的感谢你们。你们给我的不仅仅是专业的知识技能,更多的是在教授我做人的道理。在此,我还要感谢我身边的同学和朋友,大学四年以来,我们朝夕相处,一起学习,一起努力,相互支持,相互陪伴,正是因为有了你们,我的大学生活才会如此的美好。
最后感谢我的父母,我的父母没有很高的学历,他们不会给我知识上的指导,但他们教育了我很多做人的道理,在毕业设计的过程中,他们给予了我很多的支持和鼓励,他们把所有的爱都给了我。在此,我也想大声的说一声:爸妈,谢谢您们!
[1] 张伟.Java程序设计详解:东南大学出版社,2014.3
[2] 杨卫兵,王伟,崔毅. JavaWeb编程详解:东南大学出版社,2014.3
[3] 陈雄华,林开雄.Spring3.0就这么简单:人民邮电出版社,2013.1
[4] 李刚.轻量级Java EE企业应用实践(第3版) [M]. 电子工业出版社. 2011.3
[5] 蔡剑,景楠.Java Web应用开发[M].高等教育出版社.2005.1
[6] 常建功.Java Web典型模块与项目实战大全[M].北京:清华大学出版社,2011.1
[7] 韩京宇.Web技术教程.人民邮电出版社.2014.12
[8] 张海,黄建昌.Java Web主流框架整合[M].清华大学出版社.2010.2
[9] 刘增杰,张少军.MySQL 5.5从零开始学.清华大学出版社.2012.1
[10] 霍斯特曼, 科内尔.Java核心技术(卷1): 基础知识(原书第9版) [M]. 人民邮电出版社, 2014.
[11] 林龙. JSP+Servlet+Tomcat应用开发从零开始学[M]. 机械工业出版社, 2015.
[12] 栾颖.Java高级编程与应用 .清华大学出版社.2014.12
[13] 张志锋, 朱颢东.Java Web技术整合应用与项目实战[M]. 清华大学出版社,2013.
[14] 王剑南. 软件B/S前台开发[M]. 清华大学出版社, 2012.
[15] 西尔伯沙茨. 数据库系统概念[M]. 机械工业出版社,2012.
[16] 常建功.Java Web典型模块与项目实战大全[M]. 人民邮电出版社, 2011.
[17] 杨晓军, 秦方.MVC Web开发学习实录[M]. 机械工业出版社, 2011.
[18] 伊雯雯. 基于MVC的Java Web开发项目式教程[M]. 人民邮电出版社, 2014.
[19] 高洪岩. Java EE核心框架实战[M]. 机械工业出版社[M]. 清华大学出版社, 2014.
[20] 陈丹丹, 卢瀚. 学通Java Web的24堂课[M]. 机械工业出版社, 2011.
[21] 丁旭. 基于B/S架构的软件项目实训:JSP [M]. 清华大学出版社, 2011.
核心代码展示
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
项目推荐
【计算机毕业设计】基于Springboot的网上购物商城销售系统
⬇️文章末尾可以获取联系方式,需要源码,高清图片,演示视频可以联系(不开源)⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡