博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,博客中有上百套程序可供参考,欢迎共同交流学习。
🍅文末点击卡片获取联系🍅
技术:ssm+mysql+vue+tomcat
目录
1 系统介绍
网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此餐厅点菜信息的管理计算机化,系统化是必要的。设计开发餐厅点菜管理系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于餐厅点菜信息的维护和检索也不需要花费很多时间,非常的便利。
餐厅点菜管理系统是在MySQL中建立数据表保存信息,运用Vue框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。其管理员管理食物库存,菜品信息,管理预订和未预定餐桌,管理店内订单流水以及外卖订单。用户查看餐厅资讯,收藏菜品,下单购买菜品,查看外卖订单,用户也可以在餐厅内预订餐桌,对菜品进行点餐,查看店内订单记录。
餐厅点菜管理系统在让餐厅点菜信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升餐厅点菜管理系统提供的数据的可靠性,让系统数据的错误率降至最低。
2 系统背景
2.1 选题背景
网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。计算机软件可以针对不同行业的营业特点以及管理需求,设置不同的功能,可以符合各个行业的实际运营要求,其快速便捷的信息处理模式已经可以让信息的管理者从繁琐的工作中得到解脱,还可以实现数据的易维护和安全性。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此信息化管理模式也是当今的管理趋势。对于餐厅点菜信息,如果仍使用旧办法进行,将会影响其在行业中的竞争力,也很容易被时代淘汰,所以餐厅点菜信息的管理计算机化,系统化是必要的。设计开发餐厅点菜管理系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于餐厅点菜信息的维护和检索也不需要花费很多时间,非常的便利。
2.2 选题意义
餐厅点菜管理系统在实际运用中,对管理员的综合素质的提升也有帮助。因为餐厅点菜管理系统在减轻了餐厅点菜信息管理人员的工作量的同时,还可以让他们把节省出来的时间用来充实自己,提升个人能力,这样才可以充分发挥餐厅点菜管理系统提供的服务,让餐厅点菜管理系统显示数据信息的同时,也可以快速完成数据处理,提升服务水平。而且餐厅点菜管理系统开发需要投入的成本较低,但是后期运用中,会产生大量效益,尤其是餐厅点菜管理系统在进行高负荷运转时,还可以保证数据处理的质量与数据安全,通过对处理工作的流程的优化,可以节省传统模式需要投入的人力和资金,从而降低信息管理的成本。另外,餐厅点菜管理系统在让餐厅点菜信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升餐厅点菜管理系统提供的数据的可靠性,让系统数据的错误率降至最低。
3 系统功能结构
3.1 管理员
3.2 用户
4 数据库结构
为了设计出结构合理,性能优良的数据库,在设计数据库时,需要遵循三大范式:
第一范式:确保数据表当中的每列所代表的字段值都不能再进行分解了;
第二范式:在满足第一范式基础上,让数据表中每列与主键相关;
第三范式:在满足第二范式基础上,确保每列数据直接与主键相关,不是间接相关。
从上面的表述中可以看出,这三大范式,在等级上还是有区分的,最低等级的就数第一范式,最高等级的就是第三范式,趋于两者中间的是第二范式。总之,数据库设计按照这三大范式进行,可以简化设计过程,并且还会减少数据冗余,对于数据检索效率的提升也很有帮助。
表4.1 地址信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
userid | bigint(20) | 否 | 用户id | |
address | varchar(200) | 否 | 地址 | |
name | varchar(200) | 否 | 收货人 | |
phone | varchar(200) | 否 | 电话 | |
isdefault | varchar(200) | 否 | 是否默认地址[是/否] |
表4.2 菜品信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | int(20) | 否 | 主键 | |
hx_types | tinyint(4) | 是 | NULL | 菜品名称 |
money | decimal(10,2) | 是 | NULL | 菜品单价 |
img_photo | varchar(200) | 是 | NULL | 菜品图片 |
caipin_content | varchar(200) | 是 | NULL | 菜品描述 |
clicknum | int(11) | 是 | 0 | 点击次数 |
表4.3 餐桌信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | int(20) | 否 | 主键 | |
name | varchar(200) | 是 | NULL | 餐桌名称 |
tableLocation | varchar(200) | 是 | NULL | 餐桌位置 |
sf_types | tinyint(4) | 是 | NULL | 是否预定 |
表4.4 购物车信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
tablename | varchar(200) | 是 | shangpinxinxi | 商品表名 |
userid | int(20) | 否 | 用户id | |
goodid | bigint(20) | 否 | 商品id | |
goodname | varchar(200) | 是 | NULL | 商品名称 |
picture | varchar(200) | 是 | NULL | 图片 |
buynumber | int(11) | 否 | 购买数量 | |
price | float | 是 | NULL | 单价 |
discountprice | float | 是 | NULL | 会员价 |
表4.5 客服聊天信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
userid | int(123) | 否 | 用户id | |
adminid | bigint(20) | 是 | NULL | 管理员id |
ask | longtext | 是 | NULL | 提问 |
reply | longtext | 是 | NULL | 回复 |
isreply | int(11) | 是 | NULL | 是否回复 |
表4.6 订单详情信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | int(20) | 否 | 主键 | |
odd | varchar(200) | 是 | NULL | 订单号 |
hx_types | tinyint(4) | 是 | NULL | 海鲜名称 |
number | int(4) | 是 | NULL | 数量 |
money | decimal(10,2) | 是 | NULL | 单价 |
表4.7 库存信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | int(20) | 否 | 主键 | |
name | varchar(200) | 是 | NULL | 菜品名称 |
number | int(4) | 是 | NULL | 库存数量 |
表4.8 流水信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | int(20) | 否 | 主键 | |
odd | varchar(200) | 是 | NULL | 订单号 |
cz_types | tinyint(4) | 是 | NULL | 餐桌名称 |
yh_types | tinyint(4) | 是 | NULL | 预定用户 |
sf_types | tinyint(4) | 是 | NULL | 是否支付 |
maxMoney | decimal(10,2) | 是 | NULL | 总价 |
create_time | timestamp | 是 | NULL | 支付时间 |
表4.9 商品资讯信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
title | varchar(200) | 否 | 标题 | |
introduction | longtext | 是 | NULL | 简介 |
picture | varchar(200) | 否 | 图片 | |
content | longtext | 否 | 内容 |
表4.10 订单信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
orderid | varchar(200) | 否 | 订单编号 | |
tablename | varchar(200) | 是 | shangpinxinxi | 商品表名 |
userid | int(20) | 否 | 用户id | |
goodid | bigint(20) | 否 | 商品id | |
goodname | varchar(200) | 是 | NULL | 商品名称 |
picture | varchar(200) | 是 | NULL | 商品图片 |
buynumber | int(11) | 否 | 购买数量 | |
price | float | 否 | 0 | 价格/积分 |
discountprice | float | 是 | 0 | 折扣价格 |
total | float | 否 | 0 | 总价格/总积分 |
discounttotal | float | 是 | 0 | 折扣总价格 |
type | int(11) | 是 | 1 | 支付类型 |
status | varchar(200) | 是 | NULL | 状态 |
address | varchar(200) | 是 | NULL | 地址 |
表4.11 收藏信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
userid | int(20) | 否 | 用户id | |
refid | bigint(20) | 是 | NULL | 收藏id |
tablename | varchar(200) | 是 | NULL | 表名 |
name | varchar(200) | 否 | 收藏名称 | |
picture | varchar(200) | 否 | 收藏图片 |
表4.12 管理员信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | int(20) | 否 | 主键 | |
username | varchar(100) | 否 | 用户名 | |
password | varchar(100) | 否 | 密码 | |
role | varchar(100) | 否 | 管理员 | 角色 |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 新增时间 |
表4.13 用户信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | int(20) | 否 | 主键 | |
name | varchar(200) | 是 | NULL | 名称 |
username | varchar(255) | 是 | NULL | 账号 |
password | varchar(255) | 是 | NULL | 密码 |
img_photo | varchar(255) | 是 | NULL | 头像 |
sex_types | tinyint(4) | 是 | NULL | 性别 |
phone | varchar(200) | 是 | NULL | 手机号 |
role | varchar(255) | 是 | NULL | 身份 |
表4.14 预定餐桌信息表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | int(20) | 否 | 主键 | |
cz_types | tinyint(4) | 是 | NULL | 餐桌名称 |
yh_types | tinyint(4) | 是 | NULL | 预定用户 |
create_time | timestamp | 是 | NULL | 预定时间 |
5 系统功能
在此部分内容中,主要通过系统功能的运行效果图展示前面设计的最终结果。系统实现对编制人员的技术能力有较高要求,因为需要他们使用编程的方式去实现系统设计的方案。
5.1 管理员功能实现
5.1.1 食物库存管理
管理员权限中的食物库存管理,其运行效果见下图。管理员查看各种菜品的库存数量,可以根据菜品名称查询菜品库存,能够修改菜品库存,删除菜品库存信息。
图5.1 食物库存管理页面
5.1.2 菜品展示管理
管理员权限中的菜品展示管理,其运行效果见下图。管理员新增菜品信息,可以修改菜品名称,菜品图片,菜品单价等信息,可以删除菜品信息。
图5.2 菜品展示管理页面
5.1.3 未预定餐桌管理
管理员权限中的未预定餐桌管理,其运行效果见下图。管理员根据餐桌名称查询未预定餐桌信息,可以对未预定餐桌信息进行修改,删除。
图5.3 未预定餐桌管理页面
5.1.4 店内流水管理
管理员权限中的店内流水管理,其运行效果见下图。管理员查询店内流水信息,设置用户已支付的订单为已支付状态。
图5.4 店内流水管理页面
5.1.5 已支付订单
管理员权限中的已支付订单管理,其运行效果见下图。用户在前台下单购买的菜品,管理员需要在当前页面对已支付的菜品订单进行派送。
图5.5 已支付订单页面
5.2 用户功能实现
5.2.1 菜品信息
用户权限中的菜品信息,其运行效果见下图。用户在本页面可以操作的功能比较多,可以收藏本页面显示的菜品,可以直接购买,也能暂时加入购物车保存菜品。
图5.6 菜品信息页面
5.2.2 购物车
用户权限中的购物车,其运行效果见下图。购物车帮助用户暂时保存购买的菜品,方便用户一次性下单购买多种菜品。
图5.7 购物车页面
5.2.3 提交订单
用户权限中的提交订单,其运行效果见下图。用户下单支付前,收货地址和购买的菜品需要再次核对清楚,最后支付订单。
图5.8 提交订单页面
5.2.4 已支付订单
用户权限中的已支付订单,其运行效果见下图。用户对订单明细进行查看,可以选择对某些误购买的菜品进行退款。
图5.9 已支付订单页面
5.2.5 联系客服
用户权限中的联系客服,其运行效果见下图。用户在操作餐厅点菜管理系统过程中,遇到任何问题可以咨询客服,客服就负责回答用户咨询的问题。
图5.10 联系客服页面
5.2.6 菜品点餐
用户权限中的菜品点餐,其运行效果见下图。用户在已经预订餐桌的情况下,在本页面对需要的菜品登记点餐数量,最后提交点餐订单即可。
图5.11 菜品点餐页面
5.2.7 未预定餐桌
用户权限中的未预定餐桌,其运行效果见下图。用户选择未预定状态的餐桌进行预订。
图5.12 未预定餐桌页面
5.2.8 已预订餐桌
用户权限中的已预订餐桌,其运行效果见下图。用户可以查看已预订餐桌信息,可以取消已经预订的餐桌。
图5.13 已预订餐桌页面
5.2.9 订单记录
用户权限中的订单记录,其运行效果见下图。用户查看在该餐厅消费的订单明细。
图5.14 订单记录页面
6 系统测试
这部分内容主要是把前期编码完成的系统,当成是计算机系统的一部分,并结合一些数据,计算机硬件和支持的软件进行集成测试和确认测试。之所以要进行最后的测试步骤,原因在于检查制作的系统与需求说明书的比较中,存在的差异问题。进一步确认制作的系统在功能与性能上跟需求说明书当中的要求相符。
6.1 系统测试的类型
检测系统是否合格,需要用到很多的测试类型。接下来就对这部分内容进行描述。
功能测试:这是系统测试中,首先进行的测试内容,其属于黑盒测试。主要检验制作的系统与需求说明文档的相符程度,还有它们之间存在的差异问题。
性能测试:主要测试制作的系统,在同时面对很多的用户请求时,该系统的应对能力。同时也是检查制作的系统跟事先预定的系统性能存在的差距问题。这样的方法通常在实时系统中,或者是嵌入式系统中运用得比较多。
容量测试:这种方法针对数据。检查正常运行的系统对数据处理的容量值。
安全性测试:这种方法常用于检验系统中设置的安全保护机制对来自非法用户的攻击时是否有效。而检测系统中的信息保护机制就需要使用常见安全测试中的保护测试来验证。
健壮性测试:这种测试还有一个别称是容错测试,通常运用故障插入法来检测系统的容错能力,看系统是否可以忽略故障保持继续运行,或者是检测系统应对故障时的自动恢复能力。
兼容性测试:面对计算机的各种软硬件环境,检测本系统是否可以兼容。
易用性测试:这种方法主要是面向用户,检测用户是否很容易理解和使用系统。
6.2 功能测试
餐厅点菜管理系统在经历最后的测试环节,需要检验本系统的功能安全性,功能适用性等内容,最终得出测试结论。
表6.1 功能测试数据表
测试结果 | |
符合要求 | |
符合要求 | |
符合要求 | |
符合要求 | |
符合要求 |
6.3 可用性测试
通常来说,一个布局合理,显示的内容无错别字,并具备合理正常的操作逻辑的系统往往很受欢迎,而且可以提升访问者的使用时间以及访问率。
表6.2 可用性测试数据表
测试内容 | 测试结果 |
合理 | |
合理 | |
能 | |
无 | |
检查系统功能有无友好性 | 有 |
能 | |
无 | |
检查系统有无提供帮助信息 | 有 |
6.4 测试结果分析
餐厅点菜管理系统经过了编码阶段的单元测试,和最后的系统整体测试等测试后,对于用户要求的功能,本系统都进行了实现,各个模块都运行正常。在面对一些故障性问题时,本系统也有相应的应对办法,并且本系统可以保持24小时正常运转。因此,餐厅点菜管理系统可以交付用户使用。
7 总结
餐厅点菜管理系统的开发设计并不是一件轻松事,因为毕设制作都是依照一定流程进行的。最开始是选择题目,然后通过各种方式查阅资料,以及对使用用户的需求进行调研,确定本系统的功能,为了降低系统编码的出错率,在设计阶段也需要下功夫,认真设计功能模块,使用大学所学的数据库知识,设计数据库。这样一来,对系统编码时,就会根据设计方案进行。编码完成,进行测试就能对合格的系统进行验收了。
借助身边同学还有导师提供的帮助,本人也顺利完成本系统的制作工作。对餐厅点菜管理系统的分析与总结,发现餐厅点菜管理系统具有如下特点:
(1)餐厅点菜管理系统有着详细的功能设计,所以编码时,基本依照设计的功能进行开发,因此具备较完善的功能;
(2)餐厅点菜管理系统在界面设计与布局时,参考了很多系统的界面设计风格,也从图书馆查阅了关于系统界面设计方面的资料,并把对本系统有用的知识做好笔记,有了这些知识积累,所以我在开发系统时,注重页面文字的排版,以及精确定位各页面元素,合理使用颜色搭配技巧,让本系统在不影响浏览效果的同时,让访问者产生一种简洁干净的视觉效果;
(3)餐厅点菜管理系统为了让用户易于使用,在能够直观表达系统内容的同时,也把页面的导航放在了页面中最关键的位置,这个位置也是充分考虑了用户的浏览习惯。所以用户操作系统,可以在短时间内找到需要的内容。
由于本人并不是专门从事开发工作的技术人员,目前在校学习的开发类知识处于初级阶段,只是对开发类技术有着简单了解和使用,加上日常完成的作业,也只是局限在某个系统的某个功能模块上,因此,完成一个功能完善的整个系统,对于我来说,还是有一定的压力。所以这也确定了我开发的系统具有缺陷。
(1)对于餐厅点菜管理系统的编码并没有完全依照编码规范,整个系统存在代码冗余的缺陷;
(2)餐厅点菜管理系统在数据输入上,对数据有效性检测还不够严格;
(3)对餐厅点菜管理系统的误操作提示,只是对部分功能进行了设计,还有很多功能都没有设计报错提示。
综上所述,本人仍需花费时间去学习编程知识,在后期,我将会学习代码模块化,将一些通用的函数,变量等进行单独设置,然后直接在需要的页面上进行调用,这样可以降低代码冗余率,同时也会多学习针对程序易出错地方的解决方案等知识。学习这些知识除了完善本系统之外,也是弥补自身编程能力不足的缺陷。