基于Java的订餐系统设计与实现.docx
《基于Java的订餐系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Java的订餐系统设计与实现.docx(29页珍藏版)》请在冰豆网上搜索。
基于Java的订餐系统设计与实现
基于Java的订餐系统设计与实现
客户端详细设计
1.设计分析
顾客模块的主要功能是浏览,订餐。
浏览与自己相关的食品信息,订单信息等。
用户要下订单之前临时美食车把详细信息列出,物品的单价,购买的数量,总共的价钱,可修改购买,当符合顾客要求的时候,顾客就可以下订单,下订单时首先会先到commitfood.aspx让用户确定一下订单是否付合要求,确认无误后,进入checkout.aspx填写接收信息后生成订单。
然后由AddbuyInfo,Addbuyinfo方法对数据库进行操作完成的。
顾客模块详细设计主要涉及到顾客下订单和食品搜索两大功能
顾客可以通过此功能对自己选中的东西下订单,等待服务商送货。
1.菜品浏览:
可以分页浏览菜品菜品,并将想要的菜品提交到填写订单页面。
然后系统打出此次订购的编号
2.订购菜品:
用户根据自己的编号可以在该页面定购所需要的菜品
3.查看订单:
用户根据自己的编号在该页修改已经订购的菜品。
4.修改订单:
在该页修改或删除已经订购的菜品。
5.菜品查询:
用户根据自己的订购编号可以在该页查找自己需要的菜品。
2.顾客下订单流程图:
通过提供食品搜索控件,为顾客提供更为方便快捷的服务。
顾客可以快速的找到自己想要下订的美食。
3.搜索流程图如图4-3所示:
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()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
suggestMouseClicked(evt);
}
}
);
myorder.setText("我的订单");
myorder.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
myorderMouseClicked(evt);
}
}
);
myorder.addActionListener(newjava.awt.event.ActionListener()
{
publicvoidactionPerformed(java.awt.event.ActionEventevt)
{
myorderActionPerformed(evt);
}
}
);
all.setText("全部");
all.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
allMouseClicked(evt);
}
}
);
meat.setText("饭类");
meat.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
meatMouseClicked(evt);
}
}
);
noodle.setText("面类");
noodle.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
noodleMouseClicked(evt);
}
}
);
west.setText("西餐");
west.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
westMouseClicked(evt);
}
}
);
drink.setText("饮料");
drink.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
drinkMouseClicked(evt);
}
}
);
other.setText("其他");
other.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
otherMouseClicked(evt);
}
}
);
controlcenter.setText("个人中心");
controlcenter.addActionListener(newjava.awt.event.ActionListener()
{
publicvoidactionPerformed(java.awt.event.ActionEventevt)
{
controlcenterActionPerformed(evt);
}
}
);
2.订单信息
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("我的订单");
jLabel1.setFont(newjava.awt.Font("微软雅黑",0,24));//NOI18N
jLabel1.setText("我的订单");
jLabel2.setText("支付状况:
");
jLabel3.setText("未支付");
jButton1.setText("确认收货");
jButton1.addActionListener(newjava.awt.event.ActionListener()
{
publicvoidactionPerformed(java.awt.event.ActionEventevt)
{
jButton1ActionPerformed(evt);
}
}
);
jButton2.setText("取消");
jButton2.addActionListener(newjava.awt.event.ActionListener()
{
publicvoidactionPerformed(java.awt.event.ActionEventevt)
{
jButton2ActionPerformed(evt);
}
}
);
jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jCheckBox1.setText("COCO咖啡");
jCheckBox1.addActionListener(newjava.awt.event.ActionListener()
{
publicvoidactionPerformed(java.awt.event.ActionEventevt)
{
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(
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(newjava.awt.event.ActionListener()
{
publicvoidactionPerformed(java.awt.event.ActionEventevt)
{
jTextField1ActionPerformed(evt);
}
}
);
顾客界面
订单生成界面:
订单查看界面:
文件操作:
服务器管理员详细设计
1.编写目的
编写此文档的目的是为了让管理员更加便捷的管理软件及用户的信息,方便订餐系统的实现。
2.系统模块详细设计
本系统总共有两大模块,分别是顾客模块,管理员模块。
每个模块分别有不同的权限和使用功能。
3.登陆模块的流程图
N
Y
1-1登陆流程图
4.管理员模块详细设计
管理员:
查看用户订单,查看用户信息,并根据用户信息和用户订单对菜品进行发派。
管理员可以通过订单管理功能来处理日常的订单。
管理员订单处理程序流程图:
管理员可以通过此功能模块添加想要添加的各种信息,比如订单处理等功能。
通过提供美食搜索控件,为顾客提供更为方便快捷的服务。
顾客可以快速的找到自己想要下订的美食。
搜索流程图如图1-4所示:
5.所需要的技术
管理员登陆界面Login界面的设计:
JavaSwing做登陆界面:
1.容器类
JFrame窗体类
JPanel面板类
JMenuBar菜单类
2.元素类
JTextField文本输入框类
JPasswordField密码输入框类
JButton按钮类
JCheckBox复选框类
JComboBox下拉列表
JLabel标签类
3、布局类
使用FlowLayout流式布局类
通信使用SocketAPI
.Accept方法
服务器端使用ServerSocket监听指定的端口(大于1024的端口),等待客户连接请求,客户连接后,会产生对话,在完成对话后,关闭连接。
客户端服务器之间连接用Socket
服务器内存管理(dll)
6.主要代码:
1.登录界面
jButton2.setText("登录");
jButton2.addActionListener(newjava.awt.event.ActionListener()
{
publicvoidactionPerformed(java.awt.event.ActionEventevt)
{
jButton2ActionPerformed(evt);
}
}
);
2.管理界面
jPasswordField1.addActionListener(newjava.awt.event.ActionListener()
{
publicvoidactionPerformed(java.awt.event.ActionEventevt)
{
jPasswordField1ActionPerformed(evt);
}
}
);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("店铺信息");
jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
javax.swing.GroupLayoutjPanel1Layout=newjavax.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.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(
screamLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,289,Short.MAX_VALUE)
);
other.setText("其他");
other.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
otherMouseClicked(evt);
}
}
);
drink.setText("饮料");
drink.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
drinkMouseClicked(evt);
}
}
);
noodle.setText("面类");
noodle.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
noodleMouseClicked(evt);
}
}
);
west.setText("西餐");
west.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
westMouseClicked(evt);
}
}
);
meat.setText("饭类");
meat.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
meatMouseClicked(evt);
}
}
);
myorder.setText("店内产品管理");
myorder.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
myorderMouseClicked(evt);
}
}
);
myorder.addActionListener(newjava.awt.event.ActionListener()
{
publicvoidactionPerformed(java.awt.event.ActionEventevt)
{
myorderActionPerformed(evt);
}
}
);
suggest.setText("结算中心");
suggest.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
suggestMouseClicked(evt);
}
}
);
all.setText("全部");
all.addMouseListener(newjava.awt.event.MouseAdapter()
{
publicvoidmouseClicked(java.awt.event.MouseEventevt)
{
allMouseClicked(evt);
}
}
);
管理员服务器端界面
管理员登录
管理员界面
Socket通信:
服务器创建成功
等待客户端
客户机:
Hello,girl!
论大学生写作能力
写作能力是对自己所积累的信息进行选择、提取、加工、改造并将之形成为书面文字的能力。
积累是写作的基础,积累越厚实,写作就越有基础,文章就能根深叶茂开奇葩。
没有积累,胸无点墨,怎么也不会写出作文来的。
写作能力是每个大学生必须具备的能力。
从目前高校整体情况上看,大学生的写作能力较为欠缺。
一、大学生应用文写作能力的定义
那么,大学生的写作能力究竟是指什么呢?
叶圣陶先生曾经说过,“大学毕业生不一定能写小说诗歌,但是一定要写工作和生活中实用的文章,而且非写得既通顺又扎实不可。
”对于大学生的写作能力应包含什么,可能有多种理解,但从叶圣陶先生的谈话中,我认为:
大学生写作能力应包括应用写作能力和文学写作能力,而前者是必须的,后者是“不一定”要具备,