基于Java的订餐系统设计与实现
客户端详细设计
1.设计分析
顾客模块的主要功能是浏览,订餐。浏览与自己相关的食品信息,订单信息等。用户要下订单之前临时美食车把详细信息列出,物品的单价,购买的数量,总共的价钱,可修改购买,当符合顾客要求的时候,顾客就可以下订单,下订单时首先会先到commitfood.aspx让用户确定一下订单是否付合要求,确认无误后,进入checkout.aspx填写接收信息后生成订单。然后由AddbuyInfo,Addbuyinfo方法对数据库进行操作完成的。
顾客模块详细设计主要涉及到顾客下订单和食品搜索两大功能
顾客可以通过此功能对自己选中的东西下订单,等待服务商送货。
1. 菜品浏览:可以分页浏览菜品菜品,并将想要的菜品提交到填写订单页面。然后系统打出此次订购的编号
2.订购菜品:用户根据自己的编号可以在该页面定购所需要的菜品
3.查看订单:用户根据自己的编号在该页修改已经订购的菜品。
4.修改订单:在该页修改或删除已经订购的菜品。
5.菜品查询:用户根据自己的订购编号可以在该页查找自己需要的菜品。
2.顾客下订单流程图:
顾客
顾客
订单确认
显示购物车
修改订单
不购买此商品
结束操作
登录
图1 顾客下单流程图据图
删除购物车信息
提示错误
验证登陆用户id是否正确
N
Y
确认结账
N
Y
返回
订单生成
提示错误
Y
N
通过提供食品搜索控件,为顾客提供更为方便快捷的服务。顾客可以快速的找到自己想要下订的美食。
3.搜索流程图如图4-3所示:
判断
判断txtSearch 是否为空
开始
键入FoodSearch搜索控件
User_SearchReault页
dlSearchBind()
结束
提示输入
图2 搜索模块程序流程图
数据库查找
匹配成功
提示未找到
4.Java swing做登陆界面:
容器类
JFrame窗体类
JPanel面板类
JMenuBar菜单类
元素类
JTextField文本输入框类
JPasswordField密码输入框类
JButton按钮类
JCheckBox复选框类
JComboBox下拉列表
JLabel标签类
3.布局类
使用FlowLayout流式布局类
4.Socket API:
.Accept方法:产生“阻塞”,直到接受到一个连接,并且返回一个客户端的Socket对象实例。
.getinputStream方法:获得网络连接输入.
.getOutputStream方法:连接的另一端将得到输入,同时返回一个OutputStream对象实例。
客户端开发原理:使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开对话;会话结束后,关闭Socket。客户端不需要制定打开的端口,通常临时的、动态的分配一个1024以上的端口。
主要代码
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