基于Java的订餐系统设计与实现课程设计说明书Word文件下载.docx
《基于Java的订餐系统设计与实现课程设计说明书Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于Java的订餐系统设计与实现课程设计说明书Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
订单确认
显示购物车
修改订单
不购买此商品
结束操作
登录
图1顾客下单流程图据图
删除购物车信息
提示错误
验证登陆用户id是否正确
N
Y
确认结账
返回
订单生成
通过提供食品搜索控件,为顾客提供更为方便快捷的服务。
顾客可以快速的找到自己想要下订的美食。
3.搜索流程图如图4-3所示:
判断txtSearch是否为空
开始
键入FoodSearch搜索控件
User_SearchReault页
dlSearchBind()
结束
提示输入
图2搜索模块程序流程图
数据库查找
匹配成功
提示未找到
4.Javaswing做登陆界面:
1.容器类
JFrame窗体类
JPanel面板类
JMenuBar菜单类
2.元素类
JTextField文本输入框类
JPasswordField密码输入框类
JButton按钮类
JCheckBox复选框类
JComboBox下拉列表
JLabel标签类
3.布局类
使用FlowLayout流式布局类
4.SocketAPI:
.Accept方法:
产生“阻塞”,直到接受到一个连接,并且返回一个客户端的Socket对象实例。
.getinputStream方法:
获得网络连接输入.
.getOutputStream方法:
连接的另一端将得到输入,同时返回一个OutputStream对象实例。
客户端开发原理:
使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开对话;
会话结束后,关闭Socket。
客户端不需要制定打开的端口,通常临时的、动态的分配一个1024以上的端口。
5.主要代码
1.主界面:
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("
顾客-网络订餐系统"
);
setBackground(newjava.awt.Color(255,255,255));
nearby.setText("
附近小吃"
nearby.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
nearbyMouseClicked(evt);
}
);
suggest.setText("
今日推荐"
suggest.addMouseListener(newjava.awt.event.MouseAdapter()
suggestMouseClicked(evt);
myorder.setText("
我的订单"
myorder.addMouseListener(newjava.awt.event.MouseAdapter()
myorderMouseClicked(evt);
myorder.addActionListener(newjava.awt.event.ActionListener()
publicvoidactionPerformed(java.awt.event.ActionEventevt)
myorderActionPerformed(evt);
all.setText("
全部"
all.addMouseListener(newjava.awt.event.MouseAdapter()
allMouseClicked(evt);
meat.setText("
饭类"
meat.addMouseListener(newjava.awt.event.MouseAdapter()
meatMouseClicked(evt);
noodle.setText("
面类"
noodle.addMouseListener(newjava.awt.event.MouseAdapter()
noodleMouseClicked(evt);
west.setText("
西餐"
west.addMouseListener(newjava.awt.event.MouseAdapter()
westMouseClicked(evt);
drink.setText("
饮料"
drink.addMouseListener(newjava.awt.event.MouseAdapter()
drinkMouseClicked(evt);
other.setText("
其他"
other.addMouseListener(newjava.awt.event.MouseAdapter()
otherMouseClicked(evt);
controlcenter.setText("
个人中心"
controlcenter.addActionListener(newjava.awt.event.ActionListener()
controlcenterActionPerformed(evt);
2.订单信息
jLabel1.setFont(newjava.awt.Font("
微软雅黑"
0,24));
//NOI18N
jLabel1.setText("
jLabel2.setText("
支付状况:
"
jLabel3.setText("
未支付"
jButton1.setText("
确认收货"
jButton1.addActionListener(newjava.awt.event.ActionListener()
jButton1ActionPerformed(evt);
jButton2.setText("
取消"
jButton2.addActionListener(newjava.awt.event.ActionListener()
jButton2ActionPerformed(evt);
jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jCheckBox1.setText("
COCO咖啡"
jCheckBox1.addActionListener(newjava.awt.event.ActionListener()
jCheckBox1ActionPerformed(evt);
jCheckBox2.setText("
铁板牛肉"
jCheckBox3.setText("
木须肉盖浇饭"
javax.swing.GroupLayoutjPanel1Layout=newjavax.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(
.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(newjava.awt.event.ActionListener()
jTextField1ActionPerformed(evt);
顾客界面
订单生成界面:
订单查看界面:
文件操作:
服务器管理员详细设计
1.编写目的
编写此文档的目的是为了让管理员更加便捷的管理软件及用户的信息,方便订餐系统的实现。
2.系统模块详细设计
本系统总共有两大模块,分别是顾客模块,管理员模块。
每个模块分别有不同的权限和使用功能。
3.登陆模块的流程图
用户名
密码
是否合法
1-1登陆流程图
4.管理员模块详细设计
管理员:
查看用户订单,查看用户信息,并根据用户信息和用户订单对菜品进行发派。
管理员可以通过订单管理功能来处理日常的订单。
管理员订单处理程序流程图:
管理员可以通过此功能模块添加想要添加的各种信息,比如订单处理等功能。
通过提供美食搜索控件,为顾客提供更为方便快捷的服务。
搜索流程图如图1-4所示:
5.所需要的技术
管理员登陆界面Login界面的设计:
JavaSwing做登陆界面:
3、布局类
通信使用SocketAPI
.Accept方法
服务器端使用ServerSocket监听指定的端口(大于1024的端口),等待客户连接请求,客户连接后,会产生对话,在完成对话后,关闭连接。
客户端服务器之间连接用Socket
服务器内存管理(dll)
6.主要代码:
1.登录界面
登录"
2.管理界面
jPasswordField1.addActionListener(newjava.awt.event.ActionListener()
publicvoidactionPerformed(java.awt.event.ActionEventevt)
jPasswordField1ActionPerformed(evt);
店铺信息"
.addGap(0,95,Short.MAX_VALUE)
.addGap(0,110,Short.MAX_VALUE)
scream.setAutoscrolls(true);
javax.swing.GroupLayoutscreamLayout=newjavax.swing.GroupLayout(scream);
scream.setLayout(screamLayout);
screamLayout.setHorizontalGroup(
screamLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,612,Short.MAX_VALUE)
screamLayout.setVerticalGroup(
.addGap(0,289,Short.MAX_VALUE)
店内产品管理"
结算中心"
管理员服务器端界面
管理员登录
管理员界面
Socket通信:
服务器创建成功
等待客户端
客户机:
Hello,girl!