博主介绍:翰文编程 专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和课设项目实战、企业信息化系统建设,从业十八余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了2000+题目解决方法案例 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
文末下方有源码获取地址
4.系统设计
4.1系统主要功能模块描述
1.管理员管理模块包括对系统内管理员信息的发布,修改,查看,删除等功能。
(1)对系统管理员的发布:发布管理员的信息,按照管理员页面给出的表单进行填写,填写完毕后点击确定即可。
(2)对系统管理员的修改:修改管理员的信息,在系统管理员列表中直接点击修改,按照页面给出的表单进行填写,填写完毕后点击确定。
(3)对系统管理员的删除:删除管理员信息,在系统管理员列表中直接点击删除.
(4)对系统管理员的查看:查看管理员信息,在系统管理员列表中直接点击查看。
2.用户管理模块包括对系统内用户信息的发布,修改,查看,删除等功能。
(1)对系统用户的发布:发布用户的信息,按照用户页面给出的表单进行填写,填写完毕后点击确定即可。
(2)对系统用户的修改:修改用户的信息,在系统用户列表中直接点击修改,按照页面给出的表单进行填写,填写完毕后点击确定。
(3)对系统用户的删除:删除用户信息,在系统用户列表中直接点击删除.
(4)对系统用户的查看:查看用户信息,在系统用户列表中直接点击查看。
3.元素管理模块包括对系统内元素信息的发布,修改,查看,删除等功能。
(1)对系统元素的发布:发布元素的信息,按照元素页面给出的表单进行填写,填写完毕后点击确定即可。
(2)对系统元素的修改:修改元素的信息,在系统元素列表中直接点击修改,按照页面给出的表单进行填写,填写完毕后点击确定。
(3)对系统元素的删除:删除元素信息,在系统元素列表中直接点击删除.
(4)对系统元素的查看:查看元素信息,在系统元素列表中直接点击查看。
4.菜品分类管理模块包括对系统内菜品分类信息的发布,修改,查看,删除等功能。
(1)对系统菜品分类的发布:发布菜品分类的信息,按照菜品分类页面给出的表单进行填写,填写完毕后点击确定即可。
(2)对系统菜品分类的修改:修改菜品分类的信息,在系统菜品分类列表中直接点击修改,按照页面给出的表单进行填写,填写完毕后点击确定。
(3)对系统菜品分类的删除:删除菜品分类信息,在系统菜品分类列表中直接点击删除.
(4)对系统菜品分类的查看:查看菜品分类信息,在系统菜品分类列表中直接点击查看。
5.菜品管理模块包括对系统内菜品信息的发布,修改,查看,删除等功能。
(1)对系统菜品的发布:发布菜品的信息,按照菜品页面给出的表单进行填写,填写完毕后点击确定即可。
(2)对系统菜品的修改:修改菜品的信息,在系统菜品列表中直接点击修改,按照页面给出的表单进行填写,填写完毕后点击确定。
(3)对系统菜品的删除:删除菜品信息,在系统菜品列表中直接点击删除.
(4)对系统菜品的查看:查看菜品信息,在系统菜品列表中直接点击查看。
6.菜品元素管理模块包括对系统内菜品元素信息的发布,修改,查看,删除等功能。
(1)对系统菜品元素的发布:发布菜品元素的信息,按照菜品元素页面给出的表单进行填写,填写完毕后点击确定即可。
(2)对系统菜品元素的修改:修改菜品元素的信息,在系统菜品元素列表中直接点击修改,按照页面给出的表单进行填写,填写完毕后点击确定。
(3)对系统菜品元素的删除:删除菜品元素信息,在系统菜品元素列表中直接点击删除.
(4)对系统菜品元素的查看:查看菜品元素信息,在系统菜品元素列表中直接点击查看。
7.订单管理模块包括对系统内订单信息的发布,修改,查看,删除等功能。
(1)对系统订单的发布:发布订单的信息,按照订单页面给出的表单进行填写,填写完毕后点击确定即可。
(2)对系统订单的修改:修改订单的信息,在系统订单列表中直接点击修改,按照页面给出的表单进行填写,填写完毕后点击确定。
(3)对系统订单的删除:删除订单信息,在系统订单列表中直接点击删除.
(4)对系统订单的查看:查看订单信息,在系统订单列表中直接点击查看。
8.订单明细管理模块包括对系统内订单明细信息的发布,修改,查看,删除等功能。
(1)对系统订单明细的发布:发布订单明细的信息,按照订单明细页面给出的表单进行填写,填写完毕后点击确定即可。
(2)对系统订单明细的修改:修改订单明细的信息,在系统订单明细列表中直接点击修改,按照页面给出的表单进行填写,填写完毕后点击确定。
(3)对系统订单明细的删除:删除订单明细信息,在系统订单明细列表中直接点击删除.
(4)对系统订单明细的查看:查看订单明细信息,在系统订单明细列表中直接点击查看。
9.订单元素管理模块包括对系统内订单元素信息的发布,修改,查看,删除等功能。
(1)对系统订单元素的发布:发布订单元素的信息,按照订单元素页面给出的表单进行填写,填写完毕后点击确定即可。
(2)对系统订单元素的修改:修改订单元素的信息,在系统订单元素列表中直接点击修改,按照页面给出的表单进行填写,填写完毕后点击确定。
(3)对系统订单元素的删除:删除订单元素信息,在系统订单元素列表中直接点击删除.
(4)对系统订单元素的查看:查看订单元素信息,在系统订单元素列表中直接点击查看。
10.配置管理模块包括对系统内配置信息的发布,修改,查看,删除等功能。
(1)对系统配置的发布:发布配置的信息,按照配置页面给出的表单进行填写,填写完毕后点击确定即可。
(2)对系统配置的修改:修改配置的信息,在系统配置列表中直接点击修改,按照页面给出的表单进行填写,填写完毕后点击确定。
(3)对系统配置的删除:删除配置信息,在系统配置列表中直接点击删除.
(4)对系统配置的查看:查看配置信息,在系统配置列表中直接点击查看。
4.2 系统功能结构图
根据模块化的设计思想,将本系统划为几个不同权限,每个权限具有不同的功能,本系统的功能结构图如图4.1所示。
图 4.1 系统功能结构图
4.3 系统E-R图
智慧食堂系统主要实现从权限、用户、的一体化信息管理,涉及到了管理员实体,用户实体,元素实体,菜品分类实体,菜品实体,菜品元素实体,订单实体,订单明细实体,订单元素实体,配置实体等多个实体。下面简单介绍几个关键的实体E-R图。
(1)智慧食堂系统的E-R图,见图4-2。
图4-2 系统E-R图
4.4 数据字典
数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。针对智慧食堂系统的需求,得到系统的数据字典,其中共包括管理员(gly),用户(yonghu),元素(yuansu),菜品分类(cpfl),菜品(caipin),菜品元素(cpys),订单(dingdan),订单明细(ddmx),订单元素(ddys),配置(peizhi),等共计10张数据库表。
(1)用户信息表。
表4-1 用户表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | yhid | INTEGER | 11 | 是 | 用户编号 |
2 | yhm | VARCHAR | 40 | 否 | 用户名 |
3 | mm | VARCHAR | 40 | 否 | 密码 |
4 | xm | VARCHAR | 40 | 否 | 姓名 |
5 | lxdh | VARCHAR | 40 | 否 | 联系电话 |
6 | lxdz | VARCHAR | 40 | 否 | 联系地址 |
(2)管理员信息表。
表4-2 管理员表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | glyid | INTEGER | 11 | 是 | 管理员编号 |
2 | yhm | VARCHAR | 40 | 否 | 用户名 |
3 | mm | VARCHAR | 40 | 否 | 密码 |
4 | xm | VARCHAR | 40 | 否 | 姓名 |
(3)元素信息表。
表4-3 元素表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | ysid | INTEGER | 11 | 是 | 元素编号 |
2 | ys | VARCHAR | 40 | 否 | 元素 |
(4)菜品分类信息表。
表4-4 菜品分类表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | cpflid | INTEGER | 11 | 是 | 菜品分类编号 |
2 | fl | VARCHAR | 40 | 否 | 分类 |
(5)菜品信息表。
表4-5 菜品表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | cpid | INTEGER | 11 | 是 | 菜品编号 |
2 | cpmc | VARCHAR | 40 | 否 | 菜品名称 |
3 | fl | VARCHAR | 40 | 否 | 分类 |
4 | js | VARCHAR | 40 | 否 | 介绍 |
5 | tp | VARCHAR | 40 | 否 | 图片 |
6 | dw | VARCHAR | 40 | 否 | 单位 |
(6)菜品信息表。
表4-6 菜品表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | cpysid | INTEGER | 11 | 是 | 菜品元素编号 |
2 | cp | VARCHAR | 40 | 否 | 菜品 |
3 | ys | VARCHAR | 40 | 否 | 元素 |
4 | z | VARCHAR | 40 | 否 | 值 |
(7)订单信息表。
表4-7 订单表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | ddid | INTEGER | 11 | 是 | 订单编号 |
2 | ls | VARCHAR | 40 | 否 | 流水 |
3 | yh | VARCHAR | 40 | 否 | 用户 |
4 | tjsj | VARCHAR | 40 | 否 | 提交时间 |
5 | sm | VARCHAR | 40 | 否 | 说明 |
6 | rq | VARCHAR | 40 | 否 | 日期 |
(8)订单明细信息表。
表4-8订单明细表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | ddmxid | INTEGER | 11 | 是 | 订单明细编号 |
2 | cp | VARCHAR | 40 | 否 | 菜品 |
3 | dd | VARCHAR | 40 | 否 | 订单 |
4 | yh | VARCHAR | 40 | 否 | 用户 |
5 | sl | VARCHAR | 40 | 否 | 数量 |
(9)订单元素信息表。
表4-9 订单元素表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | ddysid | INTEGER | 11 | 是 | 订单元素编号 |
2 | dd | VARCHAR | 40 | 否 | 订单 |
3 | ys | VARCHAR | 40 | 否 | 元素 |
4 | z | VARCHAR | 40 | 否 | 值 |
(10)配置信息表。
表4-10 配置表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | pzid | INTEGER | 11 | 是 | 配置编号 |
2 | ys | VARCHAR | 40 | 否 | 元素 |
3 | ksz | VARCHAR | 40 | 否 | 开始值 |
4 | jsz | VARCHAR | 40 | 否 | 结束值 |
5 | jl | VARCHAR | 40 | 否 | 结论 |
5.系统实现
5.1 系统运行环境
为了保证系统稳定并无故障的运行,本开发环境的配置如下:
- 处理器:Inter Core i5-2430M CPU @2.40GHz
- 内存:8.00GB
- 硬件空间:640GB
- 操作系统:Windows10
- 开发软件:Idea2019
- 数据库管理系统:Mysql5.5
5.2 系统实施
系统实施是指将系统设计阶段的结果在计算机上实现,将原来纸面上的·类似于设计图式的新系统方案转换成可执行的应用软件。实施阶段的主要活动:物理系统的建立,程序的编制,系统调试,系统切换,系统维护,系统评价。
界面也称作UI(User Interface),是人机交互重要部分,也是系统给用户使用的第一印象,是整个系统的重要组成部分。所谓的用户体验大部分就是指界面设计的体验。
5.2.1 系统登陆界面
登录系统首页,出现用户名、密码的输入框,填写用户名和密码点击【提交】按钮,即可登录;也可以点击【重置】按钮,进行重新录入。具体的登录页面如图5-1所示:
图5-1 登陆界面
5.2.2管理员管理模块
管理员信息管理用于实现对系统内管理员信息的管理。系统用户可以新增管理员信息、移除管理员信息和更正管理员信息,以及管理员信息列表展现,在添加管理员信息管理员信息时,系统会自动查询系统中管理员表中的管理员编号字段,系统自动将管理员表中最大值加1作为该管理员表管理员记录的管理员编号,同时将管理员的管理员编号,管理员的用户名,管理员的密码,管理员的姓名 信息添加到管理员信息表中;在删除一条管理员记录时,先选中一条管理员记录,将该条管理员记录中的管理员编号作为查询条件在数据库中管理员信息表中进行查询,弹出“确定要删除管理员信息吗?”的对话框,若是,则执行删除管理员信息操作,否则退出删除操作;在更改管理员记录时,先选中一条管理员记录,将管理员信息显示在相应的修改管理员页面中,然后更改管理员信息表后保存到管理员信息表中;查看管理员信息记录时,选中要查看的管理员记录,系统根据用户选择管理员信息,在详细页面显示管理员信息,管理员管理如图5-2所示。
图5-2 管理员信息界面
5.2.3用户管理模块
用户信息管理用于实现对系统内用户信息的管理。系统用户可以新增用户信息、移除用户信息和更正用户信息,以及用户信息列表展现,在添加用户信息用户信息时,系统会自动查询系统中用户表中的用户编号字段,系统自动将用户表中最大值加1作为该用户表用户记录的用户编号,同时将用户的用户编号,用户的用户名,用户的密码,用户的姓名,用户的联系电话,用户的联系地址 信息添加到用户信息表中;在删除一条用户记录时,先选中一条用户记录,将该条用户记录中的用户编号作为查询条件在数据库中用户信息表中进行查询,弹出“确定要删除用户信息吗?”的对话框,若是,则执行删除用户信息操作,否则退出删除操作;在更改用户记录时,先选中一条用户记录,将用户信息显示在相应的修改用户页面中,然后更改用户信息表后保存到用户信息表中;查看用户信息记录时,选中要查看的用户记录,系统根据用户选择用户信息,在详细页面显示用户信息;用户信息如图5-3所示。
图5-3 用户管理界面
5.2.4元素管理模块
该功能用于实现对系统元素信息的管理。可以添加、删除和更改元素信息,以及元素信息列表展现,在添加元素信息时,系统会自动查询系统中元素表中的元素编号字段,系统自动将元素表中最大值加1作为该元素表元素记录的元素编号,同时将元素编号,元素 信息添加到元素信息表中;在删除一条元素记录时,先选中一条元素记录,将该条元素记录中的元素编号作为查询条件在元素信息表中进行查询,弹出“确定要删除吗?”的对话框,若是,则执行删除操作,否则退出删除操作;在更改元素记录时,先选中一条元素记录,将元素信息显示在相应的修改页面中,然后更改后保存到元素信息表中;查看元素信息记录时,选中要查看的元素记录,系统根据用户选择元素信息,在详细页面显示元素信息;元素信息界面图如图5-4所示:
图5-4 元素界面图
5.2.5配置管理模块
该功能用于实现对系统配置信息的管理。可以添加、删除和更改配置信息,以及配置信息列表展现,在添加配置信息时,系统会自动查询系统中配置表中的配置编号字段,系统自动将配置表中最大值加1作为该配置表配置记录的配置编号,同时将配置编号,元素,开始值,结束值,结论 信息添加到配置信息表中;在删除一条配置记录时,先选中一条配置记录,将该条配置记录中的配置编号作为查询条件在配置信息表中进行查询,弹出“确定要删除吗?”的对话框,若是,则执行删除操作,否则退出删除操作;在更改配置记录时,先选中一条配置记录,将配置信息显示在相应的修改页面中,然后更改后保存到配置信息表中;查看配置信息记录时,选中要查看的配置记录,系统根据用户选择配置信息,在详细页面显示配置信息,如图5-5所示。
图5-5 配置管理信息界面图
private void insertM(HttpServletRequest request, HttpServletResponse response){//配置添加 DBO db=new DBO();//初始化数据链接基础类 String sql="";//sql语句初始化 String keyid =(String)request.getParameter("keyid");//配置表主键 String ys=(String)request.getParameter("ys");//元素 String ksz=(String)request.getParameter("ksz");//开始值 String jsz=(String)request.getParameter("jsz");//结束值 String jl=(String)request.getParameter("jl");//结论 response.setCharacterEncoding("gb2312"); sql="insert into peizhi(ys,ksz,jsz,jl) values('"+ys+"','"+ksz+"','"+jsz+"','"+jl+"')"; ;//配置SQL 语句 int row=1; try { row=db.update(sql);//执行sql语句 insert语句 if(row==1){ request.setAttribute("flag", "操作成功"); }else{ request.setAttribute("flag", "操作失败"); } request.getRequestDispatcher("peizhi/peizhiadd.jsp").forward(request, response); } catch (Exception e) { e.printStackTrace(); } } private void ListM(HttpServletRequest request, HttpServletResponse response){//配置信息列表 ResultSet rs=null; String sql="select * from peizhi where 1=1 ";//查询配置 sql语句 DBO db=new DBO();//初始化数据链接基础类 db.open(); String ys=(String)request.getParameter("ys");//元素 if(ys!=null&&!ys.equals("")){ sql+=" and ys like '%"+ys+"%'";//符合条件 拼接sql 元素 } String ksz=(String)request.getParameter("ksz");//开始值 if(ksz!=null&&!ksz.equals("")){ sql+=" and ksz like '%"+ksz+"%'";//符合条件 拼接sql 开始值 } String jsz=(String)request.getParameter("jsz");//结束值 if(jsz!=null&&!jsz.equals("")){ sql+=" and jsz like '%"+jsz+"%'";//符合条件 拼接sql 结束值 } String jl=(String)request.getParameter("jl");//结论 if(jl!=null&&!jl.equals("")){ sql+=" and jl like '%"+jl+"%'";//符合条件 拼接sql 结论 } //配置信息查询 response.setCharacterEncoding("gb2312"); try{ rs=db.query(sql);//查询结果 //PrintWriter out = response.getWriter(); request.setAttribute("rs", rs); request.getRequestDispatcher("peizhi/peizhilist.jsp").forward(request, response); }catch(Exception e){ e.toString(); e.printStackTrace(); } } private void PListM(HttpServletRequest request, HttpServletResponse response){//配置分页信息列表 ResultSet rs=null; String sql="select * from peizhi where 1=1 ";//查询配置 sql语句 DBO db=new DBO();//初始化数据链接基础类 String str=(String)request.getParameter("Page"); response.setCharacterEncoding("gb2312"); try{ if(str==null){ str="0"; } rs=db.query(sql); PrintWriter out = response.getWriter(); request.setAttribute("rs", rs); request.getRequestDispatcher("peizhi/peizhiPlist.jsp?Page="+str).forward(request, response); }catch(Exception e){ e.toString(); e.printStackTrace(); } } private void modifyIndex(HttpServletRequest request, HttpServletResponse response){//配置修改首页 ResultSet rs=null; response.setCharacterEncoding("gb2312"); String keyid =(String)request.getParameter("keyid");//配置表主键 String ys=(String)request.getParameter("ys");//元素 String ksz=(String)request.getParameter("ksz");//开始值 String jsz=(String)request.getParameter("jsz");//结束值 String jl=(String)request.getParameter("jl");//结论 String sql="select * from peizhi where pzid="+keyid;//查询一条要修改的信息 DBO db=new DBO();//初始化数据链接基础类 try{ db.open();//初始化数据库链接 rs=db.query(sql);//查询sql语句 PrintWriter out = response.getWriter(); request.setAttribute("rs", rs); request.getRequestDispatcher("peizhi/peizhimodify.jsp").forward(request, response); //response.sendRedirect("peizhi/peizhimodify.jsp"); }catch(Exception e){ e.toString(); e.printStackTrace(); } } private void detailM(HttpServletRequest request, HttpServletResponse response){//配置详细信息页面 ResultSet rs=null; response.setCharacterEncoding("gb2312"); String keyid =(String)request.getParameter("keyid");//配置表主键 String ys=(String)request.getParameter("ys");//元素 String ksz=(String)request.getParameter("ksz");//开始值 String jsz=(String)request.getParameter("jsz");//结束值 String jl=(String)request.getParameter("jl");//结论 String sql="select * from peizhi where pzid="+keyid;//查询一条要修改的信息 DBO db=new DBO();//初始化数据链接基础类 try{ db.open(); rs=db.query(sql);//查询sql语句 PrintWriter out = response.getWriter(); request.setAttribute("rs", rs); request.getRequestDispatcher("peizhi/peizhidetail.jsp").forward(request, response); //response.sendRedirect("peizhi/peizhimodify.jsp"); }catch(Exception e){ e.toString(); e.printStackTrace(); } } private void deleteM(HttpServletRequest request, HttpServletResponse response){//配置删除 DBO db=new DBO(); response.setCharacterEncoding("gb2312"); int row=1; String keyid=(String)request.getParameter("keyid"); String sql=""; sql="delete from peizhi where pzid='"+keyid+"'";//删除配置 信息sql语句 try{ row=db.update(sql);// 执行sql语句 if(row==1){ request.setAttribute("flag", "删除成功"); }else{ request.setAttribute("flag", "删除失败"); } request.getRequestDispatcher("peizhiServlet?method=list").forward(request, response); //response.sendRedirect("peizhiServlet?method=list"); }catch(Exception e){ e.toString(); e.printStackTrace(); } } private void modifyM(HttpServletRequest request, HttpServletResponse response){//配置修改功能 DBO db=new DBO(); String keyid =(String)request.getParameter("keyid");//配置表主键 String ys=(String)request.getParameter("ys");//元素 String ksz=(String)request.getParameter("ksz");//开始值 String jsz=(String)request.getParameter("jsz");//结束值 String jl=(String)request.getParameter("jl");//结论 response.setCharacterEncoding("gb2312"); String sql=""; sql="update peizhi set ys='"+ys+"',ksz='"+ksz+"',jsz='"+jsz+"',jl='"+jl+"' where pzid='"+keyid+"'"; int row=1; try { row=db.update(sql); if(row==1){ request.setAttribute("flag", "操作成功"); }else{ request.setAttribute("flag", "操作失败"); } request.getRequestDispatcher("peizhiServlet?method=list").forward(request, response); //response.sendRedirect("peizhiServlet?method=list"); } catch (Exception e) { e.printStackTrace(); } }5.2.6菜品管理模块
该功能用于实现对系统菜品信息的管理。可以添加、删除和更改菜品信息,以及菜品信息列表展现,在添加菜品信息时,系统会自动查询系统中菜品表中的菜品编号字段,系统自动将菜品表中最大值加1作为该菜品表菜品记录的菜品编号,同时将菜品编号,菜品名称,分类,介绍,图片,单位 信息添加到菜品信息表中;在删除一条菜品记录时,先选中一条菜品记录,将该条菜品记录中的菜品编号作为查询条件在菜品信息表中进行查询,弹出“确定要删除吗?”的对话框,若是,则执行删除操作,否则退出删除操作;在更改菜品记录时,先选中一条菜品记录,将菜品信息显示在相应的修改页面中,然后更改后保存到菜品信息表中;查看菜品信息记录时,选中要查看的菜品记录,系统根据用户选择菜品信息,在详细页面显示菜品信息,如图5-6所示。
图5-6 菜品管理界面图
大家点赞、收藏、关注、评论啦 其他的定制服务 商务合作 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者