基于JavaGUI的火锅自助点菜客户端和服务端系统

目录

  1. 项目背景介绍 1
  2. 系统功能介绍 1
  3. 系统类图 3
    主要模块的 UML 说明: 4
  4. 菜品类,其作为几个具体菜品类的基类 5
  5. 关键模块说明 8
  6. Database 模块: 8
    层次结构如下图 8
  7. Client 模块: 8
  8. Server 模块: 9
    五:知识点应用说明 9
    1.类和对象: 9
    2.超类和继承: 9
    (1) 超类: 9
    (2) 继承: 9
  9. 接口及其实现: 10
  10. 异常处理: 10
  11. 多线程: 10
  12. 文件存储: 10
  13. 网络编程: 11
  14. 拓展: 11
    六:创新点与技术难点说明 11
    创新点: 11
  15. 使用了 GUI 界面来优化整个点餐过程和后台管理 11
    技术难点说明: 11
    七: 未解决问题与难点讨论 12
    1.项目背景介绍
    互联网时代,越来越多的餐厅,饮品店提供自助点餐的系统:我们可以看到海底捞用平板+自助点餐系统的方式替代了传统的纸质点单/服务员点单,KFC,麦当 劳,各式饮品店也有提供手机上的线上点餐系统。电子点单显然能够节省人力物力, 方便管理,使用电子点单已成为餐饮行业的趋势。

2.系统功能介绍
本系统为餐厅开发的一套在线点餐管理系统,旨在合理化安排餐厅的工作,提高餐厅的管理效率,同时也提高客户的就餐体验。
本系统分为客户端和服务端,客户端的功能主要是为客户提供注册登录并实现在线点餐,将点餐后的信息发送至服务端,并等待服务端的响应。而服务端的功能则是管理餐品的库存并且接受来自客户端的订单通知,服务端可根据库存量或其他因 素,对客户发来的订单选择接受或拒绝,并将处理结果发送至客户端。
五:知识点应用说明
1.类和对象:
对于 java 来说,基本上所有的都涉及类和对象 。
2.超类和继承:
(1)超类:
菜品类 Cuisine 作为 Meat,Vegetable 等几个食物类的超类。
(2)继承:

a.DataBase 所有类中除了 HasCuisines.java 没有继承 Cuisine
外,其他类都有继承这个类(主要用于实现多种多样的菜品);
b.AlterPanel,CenterPanel,EastPanel,WestPanel,ListItemPan
el,MenuItemPanel,TopPanel 都继承了 JPanel;
c.RegisterWindow,LoginInterface,OperatorInterface,Remar
kFrame 都继承了 JFrame。
(Client 和 Server 两个 package 中都类似,Server 端不赘述)
3.接口及其实现:
主要体现在我们实现已有的接口,
MenuBarAction 实现了 FocusListener 的接口;
PageTurnListener 实现了 ActionListener 的接口;
Receive 和 Send 实现了 Runnable 的接口;
HasCuisine,PurchaseCuisine 实现了 Serializable 的接口。
4.异常处理:
在多个类的方法中 catch 了 IOException,FileNotFoundException,
ClassNotFoundException。(主要是在数据的处理上去 try 和 catch exception)
再顾客点单时,如果对于用户用餐人数为零或者点餐内容为空则会当作异常处理,返回 Jdialog 提示顾客·。
5.多线程:
在 Send 和 Receive 这两个类中实现了 Runnable 这个接口;
线程一是通过开启多个用户来调用那些类和函数来实现,二是体现在
Receive 和 Send 同步运行,实现交互的同步性。
6.文件存储:

我们分了 bill 和 OurClient 两个文件包存储,bill 存储客户点单信息,
OurClient 存储客户信息。
在用户登陆注册时需要对客户数据文件 OurClient 进行读写,再客户请求结账时,我们将用户点单信息写入新建账单文件中并储存在 bill 文件夹里。
7.网络编程:
我们采用 TCP 协议,本文转载自http://www.biyezuopin.vip/onews.asp?id=16723将网络编程分为两部分,一是服务端的 Server Socket 部分,我们对应的界面类中是实现了发送与接受的方法,二是用户端的Socket 部分,我们在 Send 和 Receive 这两个类中分别实现了用户端数据的发送与接收。
8.拓展:
(1).HashMap: 我们主要是在 WareHouse 类上使用了 HashMap 进行存储。
(2).JavaGUI: 我们在登录,注册,客户端以及服务端全都使用了基于
Swing 的图形化界面,适当地考虑了人性化的界面排版与配色。

六:创新点与技术难点说明
创新点:
1.使用了 HashMap 来存储每一条菜品,我们以菜品编号为 Key, 简化了菜品遍历过程
2.我们使用文件的读写来模拟账单的打印,账单以打单时间命名,记录用户的用餐人数,所选菜品和消费总额。
3.使用了 GUI 界面来优化整个点餐过程和后台管理
技术难点说明:
1.在处理线程和网络编程的结合与协调上下了功夫,我们建立以了一个管理用户连接的链表,使用发送与接收双线程来处理服务端与客户端信息的传送。

package Server;import java.awt.*;
import javax.swing.*;public class WestPanel extends JPanel {JButton b1 = new JButton();JButton b2 = new JButton();JButton b3 = new JButton();JButton b4 = new JButton();JButton b5 = new JButton();JButton b6 = new JButton();JButton[] btns = { b1, b2, b3, b4, b5, b6 };WestPanel() {setLayout(new GridLayout(9, 1, 5, 5));setBackground(new Color(244, 244, 244));b1.setText("   锅 底 类   ");b1.setFont(new Font("宋体", Font.BOLD, 25));b1.setBorderPainted(false);// 不显示边框b1.setBackground(new Color(238, 238, 238));b1.addFocusListener(new MenuBarAction());b2.setText("   小 吃 类   ");b2.setFont(new Font("宋体", Font.BOLD, 25));b2.setBorderPainted(false);// 不显示边框b2.setBackground(new Color(238, 238, 238));b2.addFocusListener(new MenuBarAction());b3.setText("   荤 菜 类   ");b3.setFont(new Font("宋体", Font.BOLD, 25));b3.setBorderPainted(false);// 不显示边框b3.setBackground(new Color(238, 238, 238));b3.addFocusListener(new MenuBarAction());b4.setText("   素 菜 类   ");b4.setFont(new Font("宋体", Font.BOLD, 25));b4.setBorderPainted(false);// 不显示边框b4.setBackground(new Color(238, 238, 238));b4.addFocusListener(new MenuBarAction());b5.setText("   酒 水 类   ");b5.setFont(new Font("宋体", Font.BOLD, 25));b5.setBorderPainted(false);// 不显示边框b5.setBackground(new Color(238, 238, 238));b5.addFocusListener(new MenuBarAction());b6.setText("   主 食 类   ");b6.setFont(new Font("宋体", Font.BOLD, 25));b6.setBorderPainted(false);// 不显示边框b6.setBackground(new Color(238, 238, 238));b6.addFocusListener(new MenuBarAction());add(b1);add(b3);add(b4);add(b2);add(b5);add(b6);}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【餐厅点餐平台|二】总体设计

餐厅点餐平台导航 【餐厅点餐平台|一】项目描述需求分析 https://blog.csdn.net/weixin_46291251/article/details/126414430 【餐厅点餐平台|二】总体设计 https://blog.csdn.net/weixin_46291251/article/details/126422811 【餐厅点餐平台&#xff5…

数据库餐饮设计

第1章 系统概述 数据库系统设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据库操作…

点餐系统设计与实现

项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于java的外卖点菜系统,管理员通过后台添加菜品,用户浏览器登录,查看菜品、购买、下单等。根据需求,本系统采用的是BS(Browser Server简称浏览器服…

餐饮数据可视化实例

目录 1、创建数据库以及表结构 2、向数据库导入数据 3、从数据库中提取数据 4、数据清洗 5、PowerPivot 6、体系指标的计算 指标①:销售金额 指标②:折扣金额 指标③ :折扣率 指标④: 台数 指标⑤: 翻台…

餐饮后台管理系统

一、项目介绍: 用于每天的菜品数据分析,客户的管理,员工的管理,查看订单信息,菜品的添加或者下架管理 二、项目使用技术栈: vue2全家桶、element-ui、axios、js、es6、echarts 三、主页效果图&#xff…

点餐系统(设计模式)

同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,结合设计模式(2种以上)至少实现系统的以下功能: 正常餐品结算和找零。 基本套餐结算和找零。 使用优惠劵购买餐品结…

餐饮企业数据可视化大屏(智慧餐饮)

随着信息技术的深入发展,数据大屏的适用场景日益广泛,集工作汇报、实时监控和预测分析等功能于一身。 数据可视化的本质是视觉对话,数据可视化将数据分析技术与图形技术结合,清晰有效地将分析结果信息进行解读和传达。 当前很多餐…

163邮箱和qq邮箱如何开启pop和IMAP授权

首先是163邮箱,首先在主页上选择设置在设置里选择接下来就要开启权限,打钩就行了选择客户端授权密码,设置在第三方邮件的登录密码,这个密码就是在第三方客户端登陆的密码。 QQ邮箱同样先选择设置,然后选择账户&#xf…

在Outlook2007中设置QQ邮箱为IMAP/SMTP服务器

写Outlook设置QQ邮箱的攻略很多,但是都设置成POP3服务器。原本以为设置IMAP服务器流程一致,没想到低估了outlook和腾讯的麻烦程度。搞了一上午终于正确设置,写下来给有需要的人参考。 ——————————————————————————…

oracle qq邮箱不能用,QQ邮箱怎么不能用?QQ邮箱崩了官方公告

很久不用一次的QQ邮箱出现了大规模的崩溃,在5月6日突然有小伙伴反映,QQ邮箱PC端出现报错,就算是换了浏览器也没有用,那么这究竟是什么情况?我们可以从官方给出的公告来了解,遇到这个问题的用户一起来看看吧…

语音识别使用推荐(讯飞、百度、腾讯、云知声等)

科大讯飞 http://www.xfyun.cn/default/online_demo 百度 https://www.baidu.com/link?urlGBbcO2NttzpFelhAWOSqrjSJ7EHyuFUT_R4c3PXMfVa&wd&eqiddbc31d4600009c600000000559e45bac 腾讯 https://cloud.tencent.com/product/asr 云知声 http://dev.hivoice.cn/ 推…

科大迅飞语音听写(流式版)WebAPI,Web前端、H5调用 语音识别,语音搜索,语音听写

前言 由于公司有个Web项目需要用到语音搜索功能,找了一些第三方库都不太理想,要么语音识别速度很慢,要么不能精确识别等等,最后选择了迅飞语音(迅飞语音听写(流式版)WebAPI)。迅飞语…

安卓接入讯飞语音识别

#因为该项目不适合图形展示,所以无图 需要使用录音功能,那么虚拟机是不行的,只能使用真机测试 集成到项目中,需要将讯飞SDK里的内容搬到项目对应位置 在AndroidMainfest.xml中添加相应权限,安卓多少版本需要在代码中动…

腾讯、百度、讯飞 语音识别

一、腾讯语音识别—一句话语音识别 1、账号申请 (1)搜索腾讯云官网 https://cloud.tencent.com/?fromSourcegwzcw.2212127.2212127.2212127&utm_mediumcpd&utm_idgwzcw.2212127.2212127.2212127 (2)打开语音识别 腾…

js pink老师

JS 基础 输入和输出语法 向body输出内容 document.write("<h1>眼泪为你唱歌</h1>")窗口弹出内容 alert("将军")控制台打印内容 console.log("勇敢的面对");输入语句 prompt("蓝色的雨")输入语句输出到页面 const n…

新增WebDB和ChatGPT组件,支持对ChatGPT资产进行纳管,JumpServer堡垒机v3.5.0发布

2023年7月24日&#xff0c;JumpServer开源堡垒机正式发布v3.5.0版本。在这一版本中&#xff0c;新生代数据库连接组件——问题终结者Chen强势来袭&#xff0c;替代原有的OmniDB组件&#xff0c;在兼容旧版本的同时&#xff0c;解决了旧组件性能不足的问题&#xff0c;为用户提供…

新增 WebDB 和 ChatGPT 组件,支持对 ChatGPT 资产进行纳管,JumpServer 堡垒机 v3.5.0 发布

▲图 1 新增 Web 可视化数据库连接组件 Chen&#xff0c;替代原有的 OmniDB 组件 2. 新增 GPT 资产连接组件 Kael&#xff0c;支持纳管 ChatGPT 资产 在 JumpServer v3.5.0 版本中&#xff0c;新增 Kael 组件。该组件集成了 GPT 平台&#xff0c;支持对 ChatGPT 资产进行纳管…

毕业设计\毕业论文论文下载查询\查重降重\PPT工具合集

目录 各类工科毕业设计源码下载 论文查询\下载 广西壮族自治区图书馆 国家哲学社会科学文献中心 OALib 查重 万方免费查重&#xff08;应届生免费一次&#xff09; 降重 秘塔写作猫 火龙果写作 PDF工具 PDF Shaper 思维导图 GitMind 开题报告\答辩 PPT 第一pp …

android绑定两个ip,安卓手机模拟器如何多开切换IP防封号的最新方法介绍

原标题&#xff1a;安卓手机模拟器如何多开切换IP防封号的最新方法介绍 很多手游玩家、工作室和网吧用户想在电脑上登手机游戏&#xff0c;其实在电脑上装一个手机模拟器就可以了&#xff0c; 而且可以改不同的IP地址&#xff0c;实现游戏无限多开&#xff0c;今天小编就来为大…

手机上什么App能连接mysql_这款APP让你的手机瞬间变身服务器,php+mysql,太硬核了!...

话不多说&#xff0c;开搞。 舞剑前面介绍了两款 Web 前端编辑神器&#xff0c;一款是 HopWeb&#xff0c; 适合新手开发小型项目&#xff0c;一款是 EasyWeb&#xff0c;适合进阶开发大型项目。 不管是小型项目还是大型项目&#xff0c;最终目的都是为了上线&#xff0c;这两款…