基于java的订餐系统设计(含源文件)
欢迎添加微信互相交流学习哦!
项目源码:https://gitee.com/oklongmm/biye
基于Java的订餐系统设计与实现
客户端详细设计
1.设计分析
顾客模块的主要功能是浏览,订餐。浏览与自己相关的食品信息,订单信息等。用户要下订单之前临时美食车把详细信息列出,物品的单价,购买的数量,总共的价钱,可修改购买,当符合顾客要求的时候,顾客就可以下订单,下订单时首先会先到commitfood.aspx让用户确定一下订单是否付合要求,确认无误后,进入checkout.aspx填写接收信息后生成订单。然后由AddbuyInfo,Addbuyinfo方法对数据库进行操作完成的。
顾客模块详细设计主要涉及到顾客下订单和食品搜索两大功能
顾客可以通过此功能对自己选中的东西下订单,等待服务商送货。
1. 菜品浏览:可以分页浏览菜品菜品,并将想要的菜品提交到填写订单页面。然后系统打出此次订购的编号
2.订购菜品:用户根据自己的编号可以在该页面定购所需要的菜品
3.查看订单:用户根据自己的编号在该页修改已经订购的菜品。
4.修改订单:在该页修改或删除已经订购的菜品。
5.菜品查询:用户根据自己的订购编号可以在该页查找自己需要的菜品。
2.顾客下订单流程图:
通过提供食品搜索控件,为顾客提供更为方便快捷的服务。顾客可以快速的找到自己想要下订的美食。
3.搜索流程图如图4-3所示:
4.Java swing做登陆界面:
1.容器类
JFrame窗体类
JPanel面板类
JMenuBar菜单类
2.元素类
JTextField文本输入框类
JPasswordField密码输入框类
JButton按钮类
JCheckBox复选框类
JComboBox下拉列表
JLabel标签类
3.布局类
使用FlowLayout流式布局类
4.Socket API:
.Accept方法:产生“阻塞”,直到接受到一个连接,并且返回一个客户端的Socket对象实例。
.getinputStream方法:获得网络连接输入.
.getOutputStream方法:连接的另一端将得到输入,同时返回一个OutputStream对象实例。
客户端开发原理:使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开对话;会话结束后,关闭Socket。客户端不需要制定打开的端口,通常临时的、动态的分配一个1024以上的端口。
5.主要代码
1.主界面:
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("顾客-网络订餐系统");
setBackground(new java.awt.Color(255, 255, 255));
nearby.setText("附近小吃");
nearby.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
nearbyMouseClicked(evt);
}
}
);
suggest.setText("今日推荐");
suggest.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
suggestMouseClicked(evt);
}
}
);
myorder.setText("我的订单");
myorder.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
myorderMouseClicked(evt);
}
}
);
myorder.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
myorderActionPerformed(evt);
}
}
);
all.setText("全部");
all.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
allMouseClicked(evt);
}
}
);
meat.setText("饭类");
meat.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
meatMouseClicked(evt);
}
}
);
noodle.setText("面类");
noodle.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
noodleMouseClicked(evt);
}
}
);
west.setText("西餐");
west.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
westMouseClicked(evt);
}
}
);
drink.setText("饮料");
drink.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
drinkMouseClicked(evt);
}
}
);
other.setText("其他");
other.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
otherMouseClicked(evt);
}
}
);
controlcenter.setText("个人中心");
controlcenter.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
controlcenterActionPerformed(evt);
}
}
);
2.订单信息
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("我的订单");
jLabel1.setFont(new java.awt.Font("微软雅黑", 0, 24)); // NOI18N
jLabel1.setText("我的订单");
jLabel2.setText("支付状况:");
jLabel3.setText("未支付");
jButton1.setText("确认收货");
jButton1.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
jButton1ActionPerformed(evt);
}
}
);
jButton2.setText("取消");
jButton2.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
jButton2ActionPerformed(evt);
}
}
);
jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jCheckBox1.setText("COCO咖啡");
jCheckBox1.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
jCheckBox1ActionPerformed(evt);
}
}
);
jCheckBox2.setText("铁板牛肉");
jCheckBox3.setText("木须肉盖浇饭");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jCheckBox1)
.addComponent(jCheckBox2)
.addComponent(jCheckBox3))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jCheckBox1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jCheckBox2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jCheckBox3)
.addContainerGap(207, Short.MAX_VALUE))
);
jButton3.setText("删除选中");
jLabel4.setText("总价:");
jTextField1.setEditable(false);
jTextField1.setText("48");
jTextField1.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
jTextField1ActionPerformed(evt);
}
}
);
顾客界面
订单生成界面:
订单查看界面:
文件操作:
服务器管理员详细设计
1.编写目的
编写此文档的目的是为了让管理员更加便捷的管理软件及用户的信息,方便订餐系统的实现。
2.系统模块详细设计
本系统总共有两大模块,分别是顾客模块,管理员模块。每个模块分别有不同的权限和使用功能。
3.登陆模块的流程图
N
Y
1-1登陆流程图
4.管理员模块详细设计
管理员:查看用户订单,查看用户信息,并根据用户信息和用户订单对菜 品进行发派。
管理员可以通过订单管理功能来处理日常的订单。
管理员订单处理程序流程图:
管理员可以通过此功能模块添加想要添加的各种信息,比如订单处理等功能。
通过提供美食搜索控件,为顾客提供更为方便快捷的服务。顾客可以快速的找到自己想要下订的美食。
搜索流程图如图1-4所示:
5.所需要的技术
管理员登陆界面Login界面的设计:
Java Swing做登陆界面:
1.容器类
JFrame窗体类
JPanel面板类
JMenuBar菜单类
2.元素类
JTextField文本输入框类
JPasswordField密码输入框类
JButton按钮类
JCheckBox复选框类
JComboBox下拉列表
JLabel标签类
3、 布局类
使用FlowLayout流式布局类
通信使用Socket API
.Accept方法
服务器端使用ServerSocket监听指定的端口(大于1024的端口),等待客户连接请求,客户连接后,会产生对话,在完成对话后,关闭连接。
客户端服务器之间连接用Socket
服务器内存管理(dll)
6.主要代码:
1.登录界面
jButton2.setText("登录");
jButton2.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
jButton2ActionPerformed(evt);
}
}
);
2.管理界面
jPasswordField1.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
jPasswordField1ActionPerformed(evt);
}
}
);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("店铺信息");
jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 95, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 110, Short.MAX_VALUE)
);
scream.setAutoscrolls(true);
javax.swing.GroupLayout screamLayout = new javax.swing.GroupLayout(scream);
scream.setLayout(screamLayout);
screamLayout.setHorizontalGroup(
screamLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 612, Short.MAX_VALUE)
);
screamLayout.setVerticalGroup(
screamLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 289, Short.MAX_VALUE)
);
other.setText("其他");
other.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
otherMouseClicked(evt);
}
}
);
drink.setText("饮料");
drink.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
drinkMouseClicked(evt);
}
}
);
noodle.setText("面类");
noodle.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
noodleMouseClicked(evt);
}
}
);
west.setText("西餐");
west.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
westMouseClicked(evt);
}
}
);
meat.setText("饭类");
meat.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
meatMouseClicked(evt);
}
}
);
myorder.setText("店内产品管理");
myorder.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
myorderMouseClicked(evt);
}
}
);
myorder.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
myorderActionPerformed(evt);
}
}
);
suggest.setText("结算中心");
suggest.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
suggestMouseClicked(evt);
}
}
);
all.setText("全部");
all.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseClicked(java.awt.event.MouseEvent evt)
{
allMouseClicked(evt);
}
}
);
管理员服务器端界面
管理员登录
管理员界面
Socket通信:
服务器创建成功
等待客户端
客户机:Hello,girl !
基于java的订餐系统设计(含源文件)相关推荐
- 基于java教学管理系统设计(含源文件)
欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 目录 1. 系统概述 1 1.1 系统目标 1 1.2 系统主要功能 1 2. ...
- 基于java物业管理信息系统设计(含源文件)
欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 基于B/S模式的物业管理信息系统设计 摘 要 随着市场经济的发展和人们生活水平的提高,大量的住 ...
- 基于java会议管理系统设计(含源文件)
欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 一 绪论 1.1 本课题的开发背景及意义 当今社会竞争日益激烈,企事业单位内部会议也不断增多,会 ...
- 基于java员工管理系统设计(含源文件)
欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 需 求 文 档 软件名称:员工管理系统 一.概述: 在人才过剩的今天,企 ...
- 基于php的网上订餐系统设计(含源文件)
欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 摘 要 二十一世纪是一个集数字化.网络化.信息化为特征的时代.在这个以网络为核心的社会里,越来越 ...
- 基于php的选课系统设计(含源文件)
欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 摘要:本文以一个具体的应用系统-学生选课信息系统的设计与实现来说明如何利用b/s技术和php技术 ...
- 基于JAVA点餐系统设计计算机毕业设计源码+系统+lw文档+部署
基于JAVA点餐系统设计计算机毕业设计源码+系统+lw文档+部署 基于JAVA点餐系统设计计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软 ...
- 基于JAVA的问卷调查系统设计与实现计算机毕业设计源码+系统+mysql数据库+lw文档+部署
基于JAVA的问卷调查系统设计与实现计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA的问卷调查系统设计与实现计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技 ...
- 快递管理系统 java_快递管理基于java物流快递管理系统设计.doc
快递管理基于java物流快递管理系统设计 快递管理系统 毕业设计论文 题 目 快递管理系统 姓 名 王敏雪 所 属 系 数学与计算机科学 专 业 计算机科学与技术 班 级 07级计科三班 指导教师 张 ...
最新文章
- 3D相机的数据处理方式
- win8网速怎么测试软件,Windows8小技巧:查看当前网速
- C#与Javascript变量、函数之间的相互调用2008年11月28日 星期五 05:28 P.M.1.如何在JavaScript访问C#函数?
- Socket心跳包异常检测的C语言实现,服务器与客户端代码案例
- 前端学HTTP之字符集
- HTML特殊字符大全2
- 初探语音识别ASR算法
- Linux学习笔记012---Centos7修改环境变量
- 【Hadoop】用web查看hadoop运行状态
- JBOSS7 学习 一 只能127.0.0.1 访问控制台
- 我的家庭私有云计划-19
- 中国重点流域已实现休禁渔制度全覆盖
- Frida cmd常用命令
- 【Cicadaplayer】基于FFmpeg 计算缓存队列duration:av_rescale_q 、av_get_time_base_q、av_q2d
- linux ipp,Get Started with Intel® Integrated Performance Primitives
- 微信记录怎么恢复?恢复已删除微信历史记录的4种方式
- U盘文件变成快捷方式的解决方案
- 工厂供电综合自动化实验QY-PGD11
- 20230503 Javascript下载页面pdf的高质量代码
- 传统特征提取方法总结
热门文章
- Eclipse/myeclipse中*.xml 配置文件添加长名字的类的简单方式
- Elasticsearch-mapper 基于注解方式生成mapping(2.0以上)
- mac 下基于firebreath 开发多浏览器支持的浏览器插件
- 无需SherlockActionbar的SlidingMenu使用详解(二)——向Fragment中添加ViewPager和Tab
- 10篇写给Git初学者的最佳教程
- Android的listview滚动时背景不让变黑解决办法
- 做一个中国式站长必须知道的五十个问题
- 这个工具秒杀市面上各种可视化,可惜90%的人都没用过!
- p2psearcher怎么用
- 突然听到一只公鸡的局域网聊天软件