餐饮管理系统的设计与实现(代码+数据库+LW)

摘  要

互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用餐饮管理系统可以有效管理,使信息管理能够更加科学和规范。

餐饮管理系统在Eclipse环境中,使用Java语言进行编码,使用Mysql创建数据表保存本系统产生的数据。系统可以提供信息显示和相应服务,其管理员增删改查菜品信息和菜品信息资料,审核菜品信息预订订单,查看订单评价和评分,通过留言功能回复用户提问。

总之,餐饮管理系统集中管理信息,有着保密性强,效率高,存储空间大,成本低等诸多优点。它可以降低信息管理成本,实现信息管理计算机化。

关键词:餐饮管理系统;Java语言;Mysql

目  录

目  录 

第1章 绪论 

1.1 课题背景 

1.2 课题意义 

1.3 研究内容 

第2章 开发环境与技术 

2.1 MYSQL数据库 

2.2 vue技术 

2.3 Spring Boot框架 

第3章 系统分析 

3.1 可行性分析 

3.1.1 技术可行性 

3.1.2 经济可行性 

3.1.3 操作可行性 

3.2 系统流程 

3.2.1 操作流程 

3.2.2 登录流程 

3.2.3 删除信息流程 

3.2.4 添加信息流程 

3.3 性能需求 

第4章 系统设计 

4.1 设计原则 

4.2 功能结构设计 

4.3 数据库设计 

4.3.2 数据库物理设计 

5.1用户信息管理 

5.2 菜品信息管理 

5.3菜品评论管理 

5.1公告信息管理 

第6章 系统测试 

6.1 功能测试 

6.1.1 登录功能测试 

6.1.2 修改密码功能测试 

6.2 测试结果 

结  论 

致  谢 

参考文献 

第1章 绪论

1.1 课题背景

互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。所以各行业,尤其是规模较大的企业和学校等都开始借助互联网和软件工具管理信息,传播信息,共享信息等等,以此可以增强自身实力,提高在同行业当中的竞争能力,并从各种激烈的竞争中获取发展的机会。针对菜品信息信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,经过分析和考虑,在目前的情况下,可以引进一款餐饮管理系统这样的现代化管理工具,这个工具就是解决上述问题的最好的解决方案。它不仅可以实时完成信息处理,还缩短菜品信息信息管理流程,使其系统化和规范化。同时还可以减少工作量,节约菜品信息信息管理需要的人力和资金。所以餐饮管理系统是信息管理环节中不可缺少的工具,它对管理者来说非常重要。

第4章 系统设计

一个成功设计的系统在内容上必定是丰富的,在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值,吸引更多的访问者访问系统,以及让来访用户可以花费更多时间停留在系统上,则表明该系统设计得比较专业。

4.1 设计原则

本系统在设计过程中需要依照一定的设计原则进行,目的就是为了让开发的系统具备高质量,齐全完备的功能,方便简单的操作,如此才可以最大限度的满足使用者的要求。系统设计原则除了基本的易操作原则外,还有安全性原则,准确性原则。

第一个设计原则:易操作原则,针对本系统设计的功能要完备齐全,编码时,设计的各个接口要具备友好性,使用者一旦使用本系统时,要能够轻松上手,操作本系统处理数据时,要具备便利性。此外,也需要设计一些必要提示,引导使用者操作系统。

第二个设计原则:安全性原则,本系统在登录模块要对各个访问者进行身份验证,系统会通过访问者输入的信息进行判断,使用提前编写的安全验证代码进行数据比对,引导匹配成功的访问者进入指定的操作界面。这样可以避免无关性访问者窃取系统的数据。

第三个设计原则:准确性原则,为了保证使用者登记的数据是正确的,需要提前设计数据纠错机制,让使用者可以通过系统的报错提示,仔细检查登记的错误信息,并及时纠正错误,填写规范正确的信息。比如设置密码时,要求密码的长度不能低于6个字符,且数据类型要求不能全部是数字等都能进行规范。

4.2 功能结构设计

在前面分析的管理员功能的基础上,进行接下来的设计工作,最终展示设计的系统总体功能结构图(见下图)。

4.3.2 数据库物理设计

本数据库是关系型数据库,因此对二维表的结构设计也比较关键。毕竟二维表格模型就是关系型数据库中的关系模型。而一些常用的关系模型中的概念也需要了解,才可以对关系模型进行设计。下面就简单介绍关系,元组,属性,域,关键字等常用概念的含义。

关系:关系就是数据库中的一张数据表,每张数据表都有命名,也就是每个关系也有名字,那就是数据表名;

元组:元组就是数据表中的一行记录;

属性:属性就是数据表中的字段,也就是数据表中的一列;

域:域就是对数据表中属性的取值进行限定;

关键字:关键字就是数据表中的主键;

在了解了表结构设计的常用概念后,接下来就需要使用前面绘制的E-R模型完成表结构的设计工作,并在数据库中创建数据表,并为各个数据表进行命名。以下就对设计的结果通过表格形式进行展示。

表4.1菜品表

序号

列名

数据类型

说明

允许空

1

id

Int

编号

否

2

caipin_uuid_number

String

菜品编号

是

3

caipin_name

String

菜品名称

是

4

caipin_photo

String

菜品照片

是

5

caipin_types

Integer

菜品类型

是

6

caipin_price

Integer

购买获得积分

是

7

caipin_kucun_number

Integer

菜品库存

是

8

caipin_old_money

BigDecimal

菜品原价

是

9

caipin_new_money

BigDecimal

现价

是

10

caipin_clicknum

Integer

点击次数

是

11

caipin_content

String

菜品介绍

是

12

shangxia_types

Integer

是否上架

是

13

caipin_delete

Integer

逻辑删除

是

14

create_time

Date

创建时间

是

表4.2菜品收藏表

序号

列名

数据类型

说明

允许空

1

id

Int

编号

否

2

caipin_id

Integer

菜品

是

3

yonghu_id

Integer

用户

是

4

caipin_collection_types

Integer

类型

是

5

insert_time

Date

收藏时间

是

6

create_time

Date

创建时间

是

表4.3菜品评价表

序号

列名

数据类型

说明

允许空

1

id

Int

编号

否

2

caipin_id

Integer

菜品

是

3

yonghu_id

Integer

用户

是

4

caipin_commentback_text

String

评价内容

是

5

insert_time

Date

评价时间

是

6

reply_text

String

回复内容

是

7

update_time

Date

回复时间

是

8

create_time

Date

创建时间

是

表4.4菜品订单表

序号

列名

数据类型

说明

允许空

1

id

Int

编号

否

2

caipin_order_uuid_number

String

订单号

是

3

caipin_id

Integer

菜品

是

4

yonghu_id

Integer

用户

是

5

buy_number

Integer

预定数量

是

6

caipin_order_time

Date

预定时间

是

7

caipin_order_true_price

BigDecimal

实付价格

是

8

caipin_order_types

Integer

订单类型

是

9

caipin_order_payment_types

Integer

支付类型

是

10

insert_time

Date

订单创建时间

是

11

create_time

Date

创建时间

是

表4.5字典表

序号

列名

数据类型

说明

允许空

1

id

Int

编号

否

2

dic_code

String

字段

是

3

dic_name

String

字段名

是

4

code_index

Integer

编码

是

5

index_name

String

编码名字

是

6

super_id

Integer

父字段编号

是

7

beizhu

String

备注

是

8

create_time

Date

创建时间

是

表4.6论坛表

序号

列名

数据类型

说明

允许空

1

id

Int

编号

否

2

forum_name

String

帖子标题

是

3

yonghu_id

Integer

用户

是

4

yuangong_id

Integer

员工

是

5

users_id

Integer

管理员

是

6

forum_content

String

发布内容

是

7

super_ids

Integer

父编号

是

8

forum_state_types

Integer

帖子状态

是

9

insert_time

Date

发帖时间

是

10

update_time

Date

修改时间

是

11

create_time

Date

创建时间

是

表4.7供应商表

序号

列名

数据类型

说明

允许空

1

id

Int

编号

否

2

gongyingshang_name

String

供应商名称

是

3

gongyingshang_phone

String

联系方式

是

4

gongyingshang_email

String

供应物品

是

5

gongyingshang_types

Integer

物品类型

是

6

gongyingshang_money

BigDecimal

供应价格

是

7

gongyingshang_content

String

供应物品简介

是

8

create_time

Date

创建时间

是

表4.8公告信息表

序号

列名

数据类型

说明

允许空

1

id

Int

编号

否

2

news_name

String

公告标题

是

3

news_types

Integer

公告类型

是

4

news_photo

String

公告图片

是

5

insert_time

Date

添加时间

是

6

news_content

String

公告详情

是

7

create_time

Date

创建时间

是

表4.9单页数据表

序号

列名

数据类型

说明

允许空

1

id

Int

编号

否

2

single_seach_name

String

名字

是

3

single_seach_types

Integer

数据类型

是

4

single_seach_content

String

内容

是

5

create_time

Date

创建时间

是

表4.10用户表

序号

列名

数据类型

说明

允许空

1

id

Int

编号

否

2

yonghu_name

String

用户姓名

是

3

yonghu_phone

String

用户手机号

是

4

yonghu_id_number

String

用户身份证号

是

5

yonghu_photo

String

用户头像

是

6

yonghu_email

String

电子邮箱

是

7

new_money

BigDecimal

余额

是

8

yonghu_sum_jifen

BigDecimal

总积分

是

9

yonghu_new_jifen

BigDecimal

现积分

是

10

huiyuandengji_types

Integer

会员等级

是

11

create_time

Date

创建时间

是

表4.11员工表

序号

列名

数据类型

说明

允许空

1

id

Int

编号

否

2

yuangong_name

String

员工姓名

是

3

yuangong_phone

String

员工手机号

是

4

yuangong_id_number

String

员工身份证号

是

5

yuangong_photo

String

员工头像

是

6

yuangong_email

String

电子邮箱

是

7

create_time

Date

创建时间

是

表4.12管理员表

序号

列名

数据类型

说明

允许空

1

id

Int

编号

否

2

username

String

用户名

是

3

password

String

密码

是

4

role

String

角色

是

5

addtime

Date

新增时间

是

5.1用户信息管理

如图5.1显示的就是用户信息管理页面,此页面提供给管理员的功能有:用户信息的查询管理,可以删除用户信息、修改用户信息、新增用户信息,

还进行了对用户名称的模糊查询的条件

5.2 菜品信息管理

如图5.2显示的就是菜品信息管理页面,此页面提供给管理员的功能有:查看已发布的菜品信息数据,修改菜品信息,菜品信息作废,即可删除,还进行了对菜品信息名称的模糊查询 菜品信息信息的类型查询等等一些条件。

5.3菜品评论管理

如图5.3显示的就是菜品评论管理页面,此页面提供给管理员的功能有:根据菜品评论进行条件查询,还可以对菜品评论进行新增、修改、查询操作等等。

5.1公告信息管理

如图5.4显示的就是公告信息管理页面,此页面提供给管理员的功能有:根据公告信息进行新增、修改、查询操作等等。

结  论

采用Java+Mysql的方式设计制作的餐饮管理系统,在功能上可以满足管理人员对于信息的管理需求;在界面的设计上,尽最大努力用自身的美工知识做到界面美观简洁。在操作方面上,让系统可以方便操作,同时对用户常见的误操作行为进行分析总结,并尽力在系统中避免同样的由于用户的误操作所带来的错误现象。

作为毕业设计,分配给本系统的设计与制作时间还是不足的,所以,餐饮管理系统还有许多需要完善的地方。

第一个就是本系统的编程代码问题,各个程序文件的代码存在冗余的地方非常多,导致代码不够简洁,同时对代码的注释也比较麻烦。编码期间,对于很多页面可以共享的函数与方法都没有单独列出来,而是在需要用到函数和方法的页面上都重新编写了代码,通过后期的技术学习,以及对编码过程的分析总结,发现可以把共用的函数或方法编写在同一个页面上,在之后的页面中,需要使用此函数的页面,则可以直接调用函数,无需再编写代码了,这样可以简化代码,也能节省时间和存储空间。

第二个就是对数据库的设计不够好,在数据处理中,影响程序运行速度。因此需要对数据库的性能进行优化。通过这方面知识的学习,在某个开发技术类的博客中,发现可以用数据库连接池技术来解决数据库的性能问题,另外还需规范数据库里面的关系模式,降低数据库的冗余率,提高运行速度。

如果说平时的作业也是检查对知识的掌握情况,那么制作毕业设计,将是对自身所有知识的一个全面检测。因为系统能够制作完成则是经历了很多阶段,正如文中所展示的那样,先有可行性分析,对功能的分析,对功能的设计,对数据库的设计,对程序功能的编码实现,对完成编码程序的测试等,这些环节缺一不可,而且还都需要认真对待,大学学到的所有知识在制作系统时,才会发现不够用。所以这个项目制作,在检测自身能力的同时,也对问题分析,资料搜集,问题解决等能力进行了培养。

我通过制作本系统,熟悉了程序开发的流程,提高了对程序的编码能力,培养了独立分析与解决问题的能力;但也让我明白自身的不足之处,所以在接下来的时间,我还是要加强对技术知识的学习,去逐渐完善本系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:
http://www.tpcf.cn/diannao/74378.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C#】Winform调用NModbus实现Modbus TCP 主站通讯

一、前言 Modbus是一种串行通信协议,是工业领域全球最流行的协议之一。 1.1 环境 系统:Win11 工具:Visual Studio 2022 .Net 版本:.Net Framework4.6.0 依赖库:NModbus 3.0.81 1.2 协议类型 Modbus RTU:一…

【leetcode题解】贪心算法

目录 贪心算法 柠檬水找零 将数组和减半的最少操作次数 最大数 摆动序列 最长递增子序列 递增的三元子序列 最长连续递增序列 买卖股票的最佳时机 买卖股票的最佳时机 II K 次取反后最大化的数组和 按身高排序 优势洗牌 最长回文串 增减字符串匹配 分发饼干 最…

Langchain4J框架相关面试题

以下是关于Langchain4J框架的面试题目及答案 ### Langchain4J基础概念类 1. **Langchain4J框架是什么?它的核心功能有哪些?** Langchain4J是一个用于构建语言模型应用的Java框架,它为开发者提供了一套简洁高效的API,使得在Jav…

Apache Doris

Apache Doris介绍 Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场…

VLAN间通信

目录 第一步:配vlan 第二步:配置核心vlanif,MAC地址信息。 第三步:ospf协议 三层交换机(汇聚层): 对于交换机、路由器、防火墙等网络设备而言,接口类型一般存在两种:二层接口,三…

LeetCode热题100精讲——Top2:字母异位词分组【哈希】

你好,我是安然无虞。 文章目录 题目背景字母异位词分组C解法Python解法 题目背景 如果大家对于 哈希 类型的概念并不熟悉, 可以先看我之前为此专门写的算法详解: 蓝桥杯算法竞赛系列第九章巧解哈希题,用这3种数据类型足矣 字母异位词分组 题目链接&am…

基于python+django的图书借阅网站-图书借阅管理系统源码+运行步骤

该系统是基于pythondjango开发的在线图书借阅管理系统。系统适合场景:大学生、课程作业、系统设计、毕业设计。 演示地址 前台地址: http://book.gitapp.cn 后台地址:http://book.gitapp.cn/#/admin 后台管理帐号: 用户名&…

uni-app集成保利威直播、点播SDK经验FQ(二)|小程序直播/APP直播开发适用

通过uniapp集成保利威直播、点播SDK来开发小程序/APP的视频直播能力,在实际开发中可能会遇到的疑问和解决方案,下篇。更多疑问请咨询19924784795。 1.ios不能后台挂起uniapp插件 ios端使用后台音频播放和画中画功能,没有在 manifest.json 进…

数据库三级填空+应用题(1)

填空 35【答案】TOP 3 WITH TIES 【解析】希望选出商品数量最多的前3类商品,并获得相应的商品类别和数量。with ties一般是和Top 、 order by相结合使用,表示包括与最后一行order by后面的参数取值并列的结果。 36在SQL Server 2008中,每个数据页可存储8…

前端(vue)学习笔记(CLASS 5):自定义指令插槽路由

1、自定义指令 内置指令:内部提供的,每个指令都有自己各自独立的功能 自定义指令:自己定义的指令,可以封装一些dom操作,扩展额外功能 全局注册-语法 例如,当页面加载时,让元素获得焦点 Vue.…

【redis】事务详解,相关命令multi、exec、discard 与 watch 的原理

文章目录 什么是事务原子性一致性持久性隔离性 优势与 MySQL 对比用处 事务相关命令开启事务——MULTI执行事务——EXEC放弃当前事务——DISCARD监控某个 key——WATCH作用场景使用方法实现原理 事务总结 什么是事务 MySQL 事务: 原子性:把多个操作&am…

【Java SE】单例设计模式

参考笔记:深入理解Java设计模式:单例模式及其饿汉式与懒汉式的对比,-CSDN博客 目录 1.什么是设计模式 2.经典设计模式 3.单例设计模式(static属性/方法经典使用场景 ) 3.1 饿汉式单例模式 3.2 懒汉式单例模式 4.补充 1.什么…

【day2】数据结构刷题 栈

一 有效的括号 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的…

蓝桥杯 劲舞团

问题描述 小蓝最近迷上了一款名为 “劲舞团” 的游戏。 在游戏中,只要按照给出的键位提示依次按出对应的键位,游戏人物便可以跟随节奏跳舞。 对于连续的 K 次正确敲击,如果任意连续两次敲击之间的时间间隔都小于等于 1 秒(即 1…

数据库数值函数详解

各类资料学习下载合集 ​​https://pan.quark.cn/s/8c91ccb5a474​​ 数值函数是数据库中用于处理数值数据的函数,可以用于执行各种数学运算、统计计算等。数值函数在数据分析及处理时非常重要,能够帮助我们进行数据的聚合、计算和转换。在本篇博客中,我们将详细介绍常用的…

关于金融开发领域的一些专业知识总结

目录 1. 交易生命周期 1.1 证券交易所 1.1.1 交易前 1) 订单生成(Order Generation) 2) 订单管理(Order Management) 1.1.2 交易执行 3) 交易匹配(Trade Matching) 1.1.3 交易后 4) 交易确认&…

Leetcode 3495. Minimum Operations to Make Array Elements Zero

Leetcode 3495. Minimum Operations to Make Array Elements Zero 1. 解题思路2. 代码实现 题目链接:3495. Minimum Operations to Make Array Elements Zero 1. 解题思路 这一题的话核心就是统计对任意自然数 n n n,从 1 1 1到 n n n当中所有的数字对…

Vue 3 + TypeScript 实现视频播放与字幕功能:集成西瓜播放器 XGPlayer

文章目录 1. 前言:视频播放器的重要性2. 准备工作2.1 安装 Vue 3 项目2.2 安装 XGPlayer 和相关依赖 3. 实现视频播放3.1 初始化 XGPlayer 4. 添加字幕功能4.1 配置字幕 4.2 字幕文件格式5. 增加交互性完整的代码,仅供参考6. 总结 在现代 Web 开发中&…

MacOS安装 nextcloud 的 Virtual File System

需求 在Mac上安装next cloud实现类似 OneDrive 那样,文件直接保存在服务器,需要再下载到本地。 方法 在 官网下载Download for desktop,注意要下对版本,千万别下 Mac OS默认的那个。 安装了登录在配置过程中千万不要设置任何同…

.NET 9 彻底改变了 API 文档:从 Swashbuckle(Swagger) 到 Scalar

示例代码下载:https://download.csdn.net/download/hefeng_aspnet/90404652 摘要 API 文档是现代软件开发的支柱。随着 .NET 9 从 Swashbuckle 转向 Microsoft.AspNetCore.OpenApi,开发人员需要新的策略来保持高效。本文探讨了这些变化,并介…