Java实现餐厅点餐系统的实例代码

学习Java实现餐厅点餐系统,本文实现该系统的功能截图,和数据库设计SQL语句,系统功能图,功能优势等供大家参考

1.点餐管理系统背景

随着科技的发展,去饭店吃饭点餐和结账都是以线上操作的形势完成。
a.和现在有的系统比较起来,本系统有餐桌管理,菜系管理,菜名管理,订单管理,订单详情等功能。
b.和现有系统比较起来,本系统是B/S结构,一般点餐系统为C/S结构,性能方面不如B/S结构,并且C/S接口需要安装客户端,客户端压力很大,我的系统只需要电脑或者手机具有浏览器,在同一局域网就可以进行订餐。
c.从架构方面来讲,我们的系统为分布式架构,传统的点餐系统没有我们的架构合理。

2.点餐管理系统技术架构

主要技术
Spring、SpringMVC、Mybatis
JSP、JSTL、jQuery、HTML、CSS、JS
Mysql
bootstrap
开发工具和环境
Eclipse
Maven
Tomcat 7
JDK 1.8
Mysql 5.6
Win10 操作系统

3.系统架构及功能

4.数据库设计

-- 餐桌表
CREATE TABLE `dinnertable` (
 `id` int(11) NOT NULL AUTO_INCREMENT,--餐桌id
 `tableName` varchar(20) DEFAULT NULL, -- 餐桌名称
 `tableStatus` int(11) DEFAULT '0',  -- 餐桌状态  0表示空闲状态  1表示已预订状态
 `orderDate` datetime DEFAULT NULL,  -- 预定餐桌时间
 PRIMARY KEY (`id`)
)
-- 菜系表 川菜,湘菜等
CREATE TABLE `foodtype` (
 `id` int(11) NOT NULL AUTO_INCREMENT, --菜系id
 `typeName` varchar(20) DEFAULT NULL,   --菜系名称
 PRIMARY KEY (`id`)
)
-- 菜名表
CREATE TABLE `food` (
 `id` int(11) NOT NULL AUTO_INCREMENT, -- 菜名id
 `foodName` varchar(20) DEFAULT NULL,   -- 菜名
 `foodType_id` int(11) DEFAULT NULL,     -- 所属菜系
 `price` double DEFAULT NULL,           -- 价格
 `mprice` double DEFAULT NULL,         -- 会员价格
 `remark` varchar(200) DEFAULT NULL,     --菜名描述
 `img` varchar(100) DEFAULT NULL,       -- 菜名图片对应路径
 PRIMARY KEY (`id`),
 KEY `fk_food_foodType_id` (`foodType_id`),
 CONSTRAINT `fk_food_foodType_id` FOREIGN KEY (`foodType_id`) REFERENCES `foodtype` (`id`)
)

-- 订单表
CREATE TABLE `orders` (
 `id` int(11) NOT NULL AUTO_INCREMENT,  -- 订单id
 `table_id` int(11) DEFAULT NULL,         -- 餐桌id
 `orderDate` datetime DEFAULT NULL,      -- 下单时间
 `totalPrice` double DEFAULT NULL,       -- 总金额
 `orderStatus` int(11) DEFAULT '0',        --支付状态 0未支付  1已支付
 PRIMARY KEY (`id`),
 KEY `order_table_id` (`table_id`),
 CONSTRAINT `order_table_id` FOREIGN KEY (`table_id`) REFERENCES `dinnertable` (`id`)
) 

-- 订单明细表
CREATE TABLE `orderdetail` (
 `id` int(11) NOT NULL AUTO_INCREMENT,    -- 订单明细id
 `orderId` int(11) DEFAULT NULL,       -- 所属订单id
 `food_id` int(11) DEFAULT NULL,       -- 菜名id
 `foodCount` int(11) DEFAULT NULL,      -- 订餐数量
 PRIMARY KEY (`id`),
 KEY `orderDetail_order_id` (`orderId`),
 KEY `orderDetail_food_id` (`food_id`),
 CONSTRAINT `orderDetail_food_id` FOREIGN KEY (`food_id`) REFERENCES `food` (`id`),
 CONSTRAINT `orderDetail_order_id` FOREIGN KEY (`orderId`) REFERENCES `orders` (`id`)
)

-- 管理员表
CREATE TABLE `admin` (
 `id` varchar(20) NOT NULL,           -- 管理员id
 `name` varchar(20) DEFAULT NULL,        -- 管理员姓名
 `password` varchar(32) DEFAULT NULL,      -- 管理员密码
 PRIMARY KEY (`id`)
)

5.后台管理功能

登录系统首页

餐桌列表:显示餐桌详情,可以通过上面搜索按钮搜索类似餐桌,也可以删除餐桌

添加新餐桌功能

菜系列表:显示菜系详情,可以通过上面搜索按钮搜索类似菜系,也可以删除菜系

修改菜系名称功能

添加菜系功能

菜品列表:显示菜品列表,可以通过上面搜索按钮搜索类似菜品,也可以删除菜系

修改菜品功能:可以修改菜系所属菜系、菜品名称、价格、简介、图片等属性。

添加菜品功能

订单列表管理:显示已有餐桌订单情况,如果未结账的,用户点击结账付款后可以进行结账。

订单详情:可以查看用户都点了哪些菜,每个菜单价多少,数量多少

6.前台用户点餐功能

用户点餐时进入菜单页,选择没有预定的餐桌,这里只显示未预定餐桌

选择餐桌后会进入餐桌首页,可以查看到所有菜品信息

用户可以根据菜系列表和关键字搜索对应的菜品

点击菜品进入菜详情页面,用户可以将菜加入餐车中

放入购物车后会进入清单列表,在这里我们可以返回继续点餐,也可以修改已加入菜品数量,或者移除菜品

点击下单后后端会受到这个消息,开始做菜;如果用户结束吃饭可以点击结账按钮,通知服务员进行结账

总结

到此这篇关于Java实现餐厅点餐系统的文章就介绍到这了,更多相关java 餐厅点餐系统内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java实现可视化界面肯德基(KFC)点餐系统代码实例

    一.题目 使用java实现可视化KFC点餐系统. 二.题目分析 根据java中的用户图形界面包中的各个类设计界面.利用JFrame提供最大的容器,然后设计各个面板,各个面板中添加所需要的组件,本程序中需要对按钮组件添加监听者,当按下按钮之后做出相应的相应. 对于程序运行显示的第一个界面由一个继承于JFrame的类run类在构造函数中设计并通过函数setVisible(true)显示在界面上,界面上有一个按钮"点餐饮",当此按钮按下时触发响应函数,进入点餐界面,然后通过点击点餐界面各食物

  • Java点餐小程序之黑心商人

    很久以前,有一个女人,开了一家酒店,她的名字叫孙二娘.下面是她找人做的点餐小程序.代码如下: import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.ArrayList; import java.util.Scanner; import java.util.Set; public class MyDianCai { sta

  • java Gui实现肯德基点餐收银系统

    大家应该都去麦当劳或肯德基吃过快餐,参考肯德基官网的信息模拟肯德基快餐店的收银系统,简单的java Gui模拟的肯德基收银系统. 1.系统介绍 同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠劵购买餐品结算和找零. 4.可在一定时间段参与店内活动(自行设计或参考官网信息). 5.模拟打印小票的功能

  • java实现KFC点餐小程序

    本文实例为大家分享了java实现KFC点餐系统的具体代码,供大家参考,具体内容如下 package KFC点餐系统; //food 类 public class Kfcfood { private String fname ; private int fnumb=1; private float fPrice; public Kfcfood() { super(); } public Kfcfood(String fname, int fnumb, float fPrice) { super()

  • java实现KFC点餐系统

    同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠劵购买餐品结算和找零. 4.可在一定时间段参与店内活动(自行设计或参考官网信息). 5.模拟打印小票的功能(写到文件中). 类图: 建立IFood接口实现各类食物信息的打印: public interface IFood { /** * 打印输出食物

  • java实现微信点餐申请微信退款

    应用场景: 当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退给买家,微信支付将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家账号上. 注意事项: 1.交易时间超过一年的订单无法提交退款 2.微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单好和设置不同的退款单号.申请退款总金额不能超过订单金额.一笔退款失败后重新提交,请不要更换退款单号,请使用原商户退款单号. 3.请求频率限制,150qps,即每秒钟正常的申请退

  • Java实现餐厅点餐系统的实例代码

    学习Java实现餐厅点餐系统,本文实现该系统的功能截图,和数据库设计SQL语句,系统功能图,功能优势等供大家参考 1.点餐管理系统背景 随着科技的发展,去饭店吃饭点餐和结账都是以线上操作的形势完成. a.和现在有的系统比较起来,本系统有餐桌管理,菜系管理,菜名管理,订单管理,订单详情等功能. b.和现有系统比较起来,本系统是B/S结构,一般点餐系统为C/S结构,性能方面不如B/S结构,并且C/S接口需要安装客户端,客户端压力很大,我的系统只需要电脑或者手机具有浏览器,在同一局域网就可以进行订餐.

  • C语言实现餐厅点餐系统

    本文实例为大家分享了C语言实现餐厅点餐系统的具体代码,供大家参考,具体内容如下 这应该是比较简单的c语言程序了,因为学校c语言结课结的早,我当时才学到结构体指针,所以我就把我当时能运用的知识点全用在这个程序上了.虽说这个程序对当时的我来说是天花板,但是当我继续学习,我逐渐发现这个程序能升级的点实在是太多了.但我也一直没去完善.所以就硬着头皮把他发出来了. 代码涉及的知识点:顺序结构,选择分支结构,循环结构,数组,自定义函数,指针和结构体. 主要思路: 定义的一个结构体数组,包含了三个成员,分别是

  • Java Swing实现餐厅点餐系统源码(收藏版)

    本文适合Java初级选手,主要技术是Java和MySQL.主要功能如下: (1)注册功能 (2)管理员可以新增套餐 (3)管理员可以管理套餐 (4)管理员可以处理订单 (5)管理员可以修改密码 (6)顾客可以点餐 (7)顾客可以查看订单信息 (8)顾客可以修改个人信息 下面是项目目录 源码有点多,不太好贴,如果需要源码,可以关注公众号[Java技术迷]回复[2021]编号03即是该系统的源码. 即可获取整套源码,也可以直接扫码关注 下面是系统运行图 如果需要源码,可以关注公众号回复[2021]即

  • Java实现简单点餐系统

    用Java实现简单点餐系统,供大家参考,具体内容如下 程序控制分析: 1.欢迎页循环:do-while2.Scanner 控制输入3.选择页循环:switch-case 要求: 订单信息:String 二维数组序号.姓名.餐品名称.份数.价格.总价.地址.时间(10-20).状态(已预定.已完成).热度(int型) 签收订单:改变订单状态,已预定可以签收,如果已经完成则不能再次签收. 删除订单:不能删除未完成订单,序号要随之改变. 我要点赞:对相应的餐品点赞,并展示. package Pract

  • Java实现KFC点餐系统过程解析

    这篇文章主要为大家详细介绍了java实现KFC点餐系统,模拟肯德基快餐店的收银系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠劵购买餐品结算和找零. 4.可在一定时间段参与店内活动(自行设计或参考官网信息). 5.模拟打印小票的功能(写到文件

  • Java文件上传下载、邮件收发实例代码

    文件上传下载 前台: 1. 提交方式:post 2. 表单中有文件上传的表单项: <input type="file" /> 3. 指定表单类型: 默认类型:enctype="application/x-www-form-urlencoded" 文件上传类型:multipart/form-data FileUpload 文件上传功能开发中比较常用,apache也提供了文件上传组件! FileUpload组件: 1. 下载源码 2. 项目中引入jar文件

  • Java 数据类型及类型转换的互相转换实例代码

    一.基本数据类型 java的数据类型可以分为两大类:基本类型和复合类型. 基本类型:整型(int,short,long,byte).浮点型(float,double).布尔型(boolean).和字符型(char) 复合类型:数组,类,接口 1.整型 各种整型数据所占空间及数的范围 数据类型 所占内存空间/位 数的范围 byte 8 -128~127 short 16 -32768~32767 int 32 -2^31~2^31-1 long 64 -2^63~2^63-1 整型以补码的形式存放

  • java 实现计数排序和桶排序实例代码

    java 实现计数排序和桶排序实例代码 目录 比较和非比较的区别 常见的快速排序.归并排序.堆排序.冒泡排序等属于比较排序.在排序的最终结果里,元素之间的次序依赖于它们之间的比较.每个数都必须和其他数进行比较,才能确定自己的位置. 在 冒泡排序 之类的排序中,问题规模为n,又因为需要比较n次,所以平均时间复杂度为O(n²).在 归并排序.快速排序 之类的排序中,问题规模通过分治法消减为logN次,所以时间复杂度平均 O(nlogn) . 比较排序的优势是,适用于各种规模的数据,也不在乎数据的分布

  • java读取http请求中的body实例代码

    在http请求中,有Header和Body之分,读取header使用request.getHeader("..."); 读取Body使用request.getReader(),但getReader获取的是BufferedReader,需要把它转换成字符串, 下面是转换的方法. public static String getBodyString(BufferedReader br) { String inputLine; String str = ""; try {

  • java 数值类型分秒时间格式化的实例代码

    java 数值类型分秒时间格式化的实例代码 java 实例代码: import java.util.concurrent.TimeUnit; public class DateUtils { private static final String[] UNIT_DESC = new String[]{"天", "小时", "分钟", "秒"}; /** * 格式化持续时间<br/> * 将持续时间,格式化为 xx天

随机推荐