您的位置:首页 > 其它

基于B-S结构的订餐管理系统的设计与实现

2011-07-11 17:49 746 查看
基于B-S结构的订餐管理系统的设计与实现

2011年6月1日
摘要:
随着我国市场经济的快速发展,各行业都呈现出生机勃勃的发展景象,其中餐饮业的发展尤为突出。近两年来已呈现出高速发展的态势。但在快速发展的同时,餐饮业在日常经营管理中仍普遍采用手工管理方式,整体科技含量低。随着餐饮企业规模和数量的不断增长,手工管理模式无论是在工作效率、人员成本还是提供决策信息方面都已难以适应现代化经营管理的要求,因此制约了整个餐饮业的规模化发展和整体服务水平的提升。有效的管理成为了一个难题,为能有效的解决这些问题提高企业的经济效益,在这些中小型饭店中采用工作流技术,结合饭店绿色管理内容,实施计算机管理信息系统视为一条有效的解决途径。
关键词: 计算机信息,管理系统,中小型饭店, 餐饮管理。

第1章 系统简介1.1 系统开发的意义
本系统属于小型的餐厅订餐管理系统,可以有效地对中小型餐厅消费进行管理,本系统应达到以下目标:
a.系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。 
b.实现对餐厅顾客登录网页、填写订单,点菜、提交等操作。对用户输入的数据,进行严格的数据检验,尽可能的避免人为错误。
c.实现对消费账目自动结算,对消费的历史记录进行查询。

1.2 系统开发环境及其技术
本系统采用浏览器/ 服务器体系结构,通过Tomcat 服务,开发工具选用Dreamweaver,Myeclipse等设计软件。表示层采用HTML 、JSP、和JavaScript 技术,利用比较成熟的MySQL数据库技术,提供了较完整的网络订餐环境。
第2章 需求分析2.1问题定义
订餐管理系统是基于实现这样一个目标:客户在登录系统后,可以浏览餐厅的所有点菜信息,并可以关键一个或多个订单,订购不同数量的各种菜,然后提交给系统,餐厅服务然登录系统后可以看到客户的订单信息,并及时根据订单通知初始做菜,做好菜后把菜送到指定的地点。餐厅管理员登录系统后可以添加或者删除菜谱上的菜。
2.2可行性分析
2.2.1技术可行性分析
本系统采用myeclipse,dreamweaver为前台开发工具,MySQL数据库作为后台数据库支持,专为中小型餐厅消费管理而设计,可以方便开发。由于采用抑制性良好的JSP开发语言,系统可在多种系统上运行。良好的交互式界面,操作简便,适合餐饮服务人员及其订餐用户使用。
2.2.2经济可行性分析
本系统能在很大程度上解决中小型餐厅的消费管理问题,方便对顾客的消费进行管理。能让客户在网上随时订餐,服务员能方便的查看到客户的请求及时做处理,省去了一系列繁琐的订餐过程,方便了客户,也能为餐厅节约一大笔资金,而且本系统开发成本小。
2.2.3市场分析
现如今餐饮业发展壮大迅速,拥有一套良好的餐饮管理系统能在很大程度上解决许多问题,方便对服务人员的管理,以及内部的一些信息变化的管理——如菜品的增删,价格的改变、人员的流动,还能很好的管理顾客的点菜、查询消费记录、结账,这将能改善传统意义上的餐厅管理,使餐厅管理变得方便而高效。同时,现代社会发展,人们普遍选择在外吃饭,餐厅越来越多,需要的有效管理也随之增多。所以本餐厅订餐管理系统有着很好的市场需求前景。
第3章 总体设计3.1项目规划
餐厅订餐管理系统主要由用户登录、界面信息管理、服务员信息管理、修改密码、订单、取消订单、点菜、消费查询和退出登录等模块组成,具体规划如下。
(1) 用户注册登录模块
该模块主要用于会员注册及其实现验证用户是否合法,只有合法用户才能有权登录,只有登录成功情况下才能进入系统功能主界面,并且在登录的同时能验证登录人员的管理权限,根据权限显示其能管理范围。
(2) 订餐会员信息管理模块
该模块主要用于员工对订餐会员的信息进行管理。员工可以查看会员资料及其所有订单。针对订单信息进行送餐处理。
(3) 服务员信息管理模块
该模块主要用于经理对餐厅服务人员的信息进行管理。可以增删改查员工信息,方便整体管理。
(4) 修改密码模块
该模块主要用于实现对登录人员的密码进行管理,长时间不更换密码是不安全的,增加此模块能增加系统的安全性。
(5) 订单管理模块
该模块主要用于实现员工对所有顾客的订单进行管理,及时处理顾客的菜。同时,会员也可以增删改查自己的订单。
(6) 菜谱管理模块
该模块主要用于员工对餐厅所提供的菜样进行管理,尽可能准确无误地提供菜谱信息,方便顾客点菜到订单中。
(7)消费查询模块
该模块主要用于实现会员能够查询自己已消费的清单情况,进行核对自己的消费。同时,员工可以查询到任何会员的消费情况。

3.2系统流程图
餐厅订餐管理系统的业务流程图如图3.1所示

顾客点菜
菜单文件程序
库存菜单主文件
订单信息
订餐报告
图3.1 餐厅订餐管理系统的业务流程图3.3数据流图
订餐管理系统

错误信息 修改菜谱结果
员工
顾客
查看菜谱请求 查看顾客订单 菜谱详单 顾客订单
添加订单 查看菜谱信息
添加详单 菜谱详单
确认信息 修改菜谱信息
完成订购
顶层流图

3.4系统功能结构
系统功能结构图如图3.2所示

图3.2 系统功能结构图1

餐厅订餐管理系统
用户
注册登录管理
guanl
密码管理
申请订单
删除
添加菜
结账管理
消费查询管理
取消订单
服务员管理
订单信息管理
修改密码
提交订单
添加
更新
删除
第4章 详细设计与编码4.1 数据库设计
本系统采用MySQL作为后台数据库。
4.1.1关系模式
员工(员工号,姓名性别,年纪,电话,照片,登录密码,职务
权限(职务,权限)
送餐(员工号,订单号
管理菜单(员工号,菜名号,操作)
管理顾客(员工号,顾客ID,操作)
顾客 (顾客ID,姓名,密码,联系电话)
菜单 (菜ID,菜名,单价,描述信息)
订单 (订单ID,订单名称,顾客ID,订单要求,地点,订单日期, 总价)
详单 (订单ID,菜ID,菜数量,单价)
4.1.2 E-R图
订单
客户
菜单
包含
订购
管理
送餐
预定
详单
服务员
经理
员工
4.1.3创建数据库代码实现
tb_customer (
IDnumber varchar(20) NOT NULL DEFAULT COMMENT 身份证号码,
name varchar(20) NOT NULL DEFAULT COMMENT 真实姓名,
password varchar(20) NOT NULL DEFAULT COMMENT 密码,
telephone varchar(20) NOT NULL DEFAULT COMMENT 电话号码,
question varchar(255) DEFAULT NULL COMMENT 问题,
answer varchar(255) DEFAULT NULL COMMENT 答案,
power varchar(10) NOT NULL DEFAULT 1 COMMENT 权限,
PRIMARY KEY (IDnumber)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COMMENT=游客信息;
CREATE TABLE tb_dish (
dishID int(11) NOT NULL AUTO_INCREMENT COMMENT 菜ID,
name varchar(20) NOT NULL DEFAULT COMMENT 菜名,
price varchar(10) DEFAULT NULL COMMENT 单价,
unit varchar(10) DEFAULT NULL COMMENT 单位,
description varchar(500) DEFAULT NULL COMMENT 菜的描述,
PRIMARY KEY (dishID)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gb2312 COMMENT=菜;

CREATE TABLE tb_manager (
IDnumber varchar(20) NOT NULL DEFAULT COMMENT 身份证号码,
name varchar(20) NOT NULL DEFAULT COMMENT 用户名,
password varchar(20) DEFAULT NULL COMMENT 密码,
telephone varchar(20) DEFAULT NULL COMMENT 电话,
power varchar(3) NOT NULL DEFAULT 3 COMMENT 权限,
PRIMARY KEY (IDnumber)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COMMENT=经理;

CREATE TABLE tb_order (
orderID int(11) NOT NULL AUTO_INCREMENT COMMENT 订单ID,
name varchar(20) DEFAULT NULL COMMENT 订单名称,
orderPerson varchar(20) NOT NULL DEFAULT COMMENT 订单人身份证号码,
requests varchar(500) DEFAULT NULL COMMENT 订单要求,
place varchar(50) DEFAULT NULL COMMENT 地点,
datetime varchar(255) DEFAULT NULL COMMENT 订单日期,
PRIMARY KEY (orderID)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=gb2312 COMMENT=订单;

CREATE TABLE tb_order_dish (
orderID int(11) NOT NULL DEFAULT 0 COMMENT 订单ID,
dishID int(11) NOT NULL DEFAULT 0 COMMENT 菜ID,
dishNumber varchar(10) DEFAULT NULL COMMENT 菜数量,
PRIMARY KEY (orderID,dishID)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COMMENT=订餐表;

CREATE TABLE tb_placard (
placardID int(11) NOT NULL AUTO_INCREMENT COMMENT ID,
title varchar(50) NOT NULL DEFAULT COMMENT 公告标题,
content varchar(255) DEFAULT NULL COMMENT 公告内容,
author varchar(20) DEFAULT NULL COMMENT 发布者,
datetime varchar(50) DEFAULT NULL COMMENT 发布时间,
PRIMARY KEY (placardID)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COMMENT=公告;

CREATE TABLE tb_waiter (
IDnumber varchar(20) NOT NULL DEFAULT COMMENT 身份证号码,
name varchar(20) DEFAULT NULL COMMENT 姓名,
password varchar(20) DEFAULT NULL COMMENT 密码,
sex varchar(2) DEFAULT NULL COMMENT 性别,
age varchar(10) DEFAULT NULL COMMENT 年纪,
salary varchar(10) DEFAULT NULL COMMENT 工资,
telephone varchar(20) DEFAULT NULL COMMENT 电话,
photo varchar(50) DEFAULT NULL COMMENT 照片,
power varchar(1) NOT NULL DEFAULT 2 COMMENT 权限,
PRIMARY KEY (IDnumber)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COMMENT=送餐员;

4.2程序详细设计
本系统采用MVC模式开发,尽可能减少代码量,增加代码的可重用行。对于数据库的连接采用JDBC连接,使操作数据库高效且使系统具有良好的平台移植性。本系统在myeclipse下的整体架构如图4.2:
图4.2

以下重点介绍几个重要文件。

4.2.1 连接数据库文件 JDBConnection.java
package com.jzm.tools;

import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

public class JDBConnection {
public Connection conn = null;
public Statement stmt = null;
public ResultSet rs = null;
private static String propFileName = "connDB.properties"; //指定资源文件保存的位置
private static Properties prop = new Properties();
private static String dbClassName =null;
private static String dbUrl =null;

public JDBConnection(){
try {
InputStream in=getClass().getResourceAsStream(propFileName);
prop.load(in); //通过输入流对象加载Properties文件
dbClassName = prop.getProperty("DB_CLASS_NAME"); //获取数据库驱动
dbUrl = prop.getProperty("DB_URL");
}
catch (Exception e) {
e.printStackTrace(); //输出异常信息
}
}
/**
*
* 静态函数 得到链接
* @return
*/
public static Connection getConnection(){
Connection conn = null;
try {
Class.forName(dbClassName).newInstance();
conn = DriverManager.getConnection(dbUrl);
}
catch (Exception ee) {
ee.printStackTrace();
}
if (conn == null) {
System.err.println(
"警告: DbConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:" +
dbClassName + "\r\n链接位置:" + dbUrl);
}
return conn;
}

/**
* 功能:执行查询语句
*/
public ResultSet executeQuery(String sql){
try {
conn = getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
return rs;
} catch (SQLException ex){
ex.printStackTrace();
return null;
}
}

/**
* 功能:执行更新操作
*/
public int executeUpdate(String sql){
int result = -1;
try {
conn = getConnection(); //调用getConnection()方法构造Connection对象的一个实例conn
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
result = stmt.executeUpdate(sql); //执行更新操作
} catch (SQLException ex) {
ex.printStackTrace();
return -1 ;
} finally{
this.close();
}
return result;
}

/**
* 功能:关闭数据库的连接
*/
public void close() {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace(System.err);
}
}
}

4.2.2万能分页MyPagination.java
package com.jzm.tools;
import java.util.ArrayList;
import java.util.List;
public class MyPagination {
public List<Object> list=null;
private int recordCount=0;
private int pagesize=0;
private int maxPage=0;
//初始化分页信息
public List getInitPage(List list,int Page,int pagesize){
List<Object> newList=new ArrayList<Object>();
this.list=list;
recordCount=list.size();
this.pagesize=pagesize;
this.maxPage=getMaxPage();
try{
for(int i=(Page-1)*pagesize;i<=Page*pagesize-1;i++){
try{
if(i>=recordCount){break;}
}catch(Exception e){}
newList.add((Object)list.get(i));
}
}catch(Exception e){
e.printStackTrace();
}
return newList;
}

//获取指定页的数据
public List<Object> getAppointPage(int Page){
List<Object> newList=new ArrayList<Object>();
try{
for(int i=(Page-1)*pagesize;i<=Page*pagesize-1;i++){
try{
if(i>=recordCount){break;}
}catch(Exception e){}
newList.add((Object)list.get(i));
}
}catch(Exception e){
e.printStackTrace();
}
return newList;
}
//获取最大记录数
public int getMaxPage(){
int maxPage=(recordCount%pagesize==0)?(recordCount/pagesize):(recordCount/pagesize+1);
return maxPage;
}

//获取总记录数
public int getRecordSize(){
return recordCount;
}
//获取当前页数
public int getPage(String str){
System.out.println("STR:"+str+"&&&&"+recordCount);
if(str==null){
str="0";
}
int Page=Integer.parseInt(str);
if(Page<1){
Page=1;
}else{
if(((Page-1)*pagesize+1)>recordCount){
Page=maxPage;
}
}
return Page;
}
public String printCtrl(int Page){
String strHtml="<table width='570' border='0' cellspacing='0' cellpadding='0'><tr> <td height='24' align='right'>当前页数:["+Page+"/"+maxPage+"]  ";
try{
if(Page>1){
strHtml=strHtml+"<a href='?Page=1'>第一页</a> ";
strHtml=strHtml+"  <a href='?Page="+(Page-1)+"'>上一页</a>";
}
if(Page<maxPage){
strHtml=strHtml+"  <a href='?Page="+(Page+1)+"'>下一页</a>" +
"  <a href='?Page="+maxPage+"'>最后一页 </a>";
}
strHtml=strHtml+"</td> </tr> </table>";
}catch(Exception e){
e.printStackTrace();
}
return strHtml;
}
public String printCtrl(int Page,String id){
id="&id="+id;
String strHtml="<table width='370' border='0' cellspacing='0' cellpadding='0'><tr> <td height='24' align='right'>当前页数:["+Page+"/"+maxPage+"]  ";
try{
if(Page>1){
strHtml=strHtml+"<a href='?Page=1"+id+"'>第一页</a> ";
strHtml=strHtml+"  <a href='?Page="+(Page-1)+id+"'>上一页</a>";
}
if(Page<maxPage){
strHtml=strHtml+"  <a href='?Page="+(Page+1)+id+"'>下一页</a>   <a href='?Page="+maxPage+id+"'>最后一页 </a>";
}
strHtml=strHtml+"</td> </tr> </table>";
}catch(Exception e){
e.printStackTrace();

}
return strHtml;
}
}
4.2.3 时间转换函数CountTime.java
package com.jzm.tools;
import java.util.Date;
import java.text.DateFormat;
public class CountTime {
public String currentlyTime(){
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);
return dateFormat.format(date);
}
}

4.2.4 javascript过滤验证 validate.js
function checkRegister(){ if(form1.name.value==""){ alert("请输入你的用户名"); form1.name.focus(); return false; } if(form1.password.value ==""){ alert("请输入你注册的密码"); form1.password.focus(); return false; } if(form1.repassword.value==""){ alert("请输入确认密码"); form1.repassword.focus(); return false; } if(form1.password.value != form1.repassword.value){ alert("你输入的两次密码不一致"); return false; } if(form1.IDnumber.value==""){ alert("请输入你的身份证号码"); form1.IDnumber.focus(); return false; } if(form1.telephone.value==""){ alert("请输入你的联系电话"); form1.telephone.focus(); return false; } if(form1.question.value==""){ alert("输入密码提示问题便于取回密码"); form1.question.focus; return false; } if(form1.answer.value==""){ alert("请输入回答问题的答案"); form1.answer.focus(); return false; }} function checkUpdate(){ if(form1.name.value==""){ alert("请输入你的用户名"); form1.name.focus(); return false; } if(form1.password.value ==""){ alert("请输入你注册的密码"); form1.password.focus(); return false; } if(form1.IDnumber.value==""){ alert("请输入你的身份证号码"); form1.IDnumber.focus(); return false; } if(form1.telephone.value==""){ alert("请输入你的联系电话"); form1.telephone.focus(); return false; } if(form1.question.value==""){ alert("输入密码提示问题便于取回密码"); form1.question.focus; return false; } if(form1.answer.value==""){ alert("请输入回答问题的答案"); form1.answer.focus(); return false; }} function check(){if(form1.IDnumber.value==""){ window.alert("请输入身份证号!"); form1.IDnumber.focus(); return false;} if(form1.password.value==""){window.alert("请输入密码!");form1.password.focus();return false;}} function checkWaiter(){ if(form1.name.value==""){ alert("请输入真实姓名"); form1.name.focus(); return false; } if(form1.password.value ==""){ alert("请输入注册密码"); form1.password.focus(); return false; } if(form1.repassword.value==""){ alert("请输入确认密码"); form1.repassword.focus(); return false; } if(form1.password.value != form1.repassword.value){ alert("你输入的两次密码不一致"); return false; } if(form1.IDnumber.value==""){ alert("请输入身份证号码"); form1.IDnumber.focus(); return false; } if(form1.telephone.value==""){ alert("请输入你的联系电话"); form1.telephone.focus(); return false; } if(form1.age.value==""){ alert("请输入年龄"); form1.age.focus; return false; } if(form1.photo.value==""){ alert("请添加照片"); form1.photo.focus(); return false; } if(form1.salary.value==""){ alert("请输入工资"); form1.salary.focus(); return false; } } 4.2.5 会员业务逻辑处理CustomerDao.java
package com.jzm.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
import com.jzm.form.CustomerForm;
import com.jzm.tools.JDBConnection;
public class CustomerDao {
private JDBConnection connection = null;
private CustomerForm customerForm = null;
public CustomerDao() {
connection = new JDBConnection();
}

/**更新学生操作
*
*/
public boolean update_CustomerForm(CustomerForm form) {
boolean flag = false;
String sql = "update tb_customer set name ='" +form.getName()
+ "',password='" + form.getPassword()
+ "',telephone='"+ form.getTelephone()
+"',question='"+form.getQuestion()
+"',answer='"+ form.getAnswer()
+ "',power='" + form.getPower()
+ "' where IDnumber = '"+form.getIDnumber()+"'";
if (connection.executeUpdate(sql)>=0) {
flag = true;
}
return flag;
}

/**
*
*
* 删除顾客信息
*/
public boolean delete_Customer(String IDnumber){
boolean flag = false;
String sql = "delete from tb_customer where IDnumber='" + IDnumber + "'";
if (connection.executeUpdate(sql)>=0) {
flag = true;
}
return flag;
}

/**
*
* 添加顾客信息
*
*/
public boolean add_CustomerForm(CustomerForm form) {
boolean flag = false;
String sql = "insert into tb_customer values('"
+ form.getIDnumber() + "','"
+ form.getName() + "','"
+ form.getPassword()+ "','"
+ form.getTelephone() + "','"
+ form.getQuestion()+"','"
+ form.getAnswer()+"','"
+ form.getPower()+ "')";
if (connection.executeUpdate(sql) >=0 ){
flag = true;
}
return flag;
}

/**
*
* 获得顾客信息
* @param name
* @return
*/
public CustomerForm get_CustomerForm(String IDnumber){
String sql = "select * from tb_customer where IDnumber ='"+ IDnumber +"'";
try {
ResultSet rs = connection.executeQuery(sql);
System.out.println("rs=="+rs);
while (rs.next()){
customerForm = new CustomerForm();
customerForm.setIDnumber(rs.getString(1));
customerForm.setName(rs.getString(2));
customerForm.setPassword(rs.getString(3));
customerForm.setTelephone(rs.getString(4));
customerForm.setQuestion(rs.getString(5));
customerForm.setAnswer(rs.getString(6));
customerForm.setPower(rs.getString(7));
}
} catch (SQLException e) {
System.out.println("得到customer实体异常");
e.printStackTrace();
}
return customerForm;
}

/**
*
* 获得所有顾客信息
* @param name
* @return
*/

public List<CustomerForm> get_WaiterList() {
List<CustomerForm> list = new ArrayList<CustomerForm>();
String sql = "select * from tb_customer";
try {
ResultSet rs = connection.executeQuery(sql);
while (rs.next()) {
customerForm = new CustomerForm();
customerForm.setIDnumber(rs.getString(1));
customerForm.setName(rs.getString(2));
customerForm.setPassword(rs.getString(3));
customerForm.setTelephone(rs.getString(4));
customerForm.setQuestion(rs.getString(5));
customerForm.setAnswer(rs.getString(6));
customerForm.setPower(rs.getString(7));
list.add(customerForm);
}
} catch (SQLException e) {
System.out.println("查询顾客列表异常");
e.printStackTrace();
}
return list;
}
}
4.2.6 订单业务逻辑处理orderDao.java
package com.jzm.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;

import com.jzm.form.OrderForm;
import com.jzm.tools.JDBConnection;
public class OrderDao {
private JDBConnection connection = null;
private OrderForm orderForm = null;
public OrderDao() {
connection = new JDBConnection();
}

/**更新订单操作
*
*/
public boolean update_OrderForm(OrderForm form) {
boolean flag = false;
String sql = "update tb_order set name='"
+ form.getName()+ "',orderPerson='"
+ form.getOrderPerson()+ "',requests='"
+ form.getRequests() +"',place='"
+ form.getPlace() + "',datetime='"
+ form.getDatetime()+"' where orderID ="+ form.getOrderID();
if (connection.executeUpdate(sql)>=0) {
flag = true;
}
return flag;
}

/**
* 删除订单信息
*/
public boolean delete_WaiterFor(Integer orderID){
boolean flag = false;
String sql = "delete from tb_order where orderID='" + orderID + "'";
if (connection.executeUpdate(sql)>=0) {
flag = true;
}
return flag;
}

/**
*
* 添加订单信息
*
*/
public boolean add_OrderForm(OrderForm form){
boolean flag = false;
String sql = "insert into tb_order(name,orderPerson,requests,place,datetime) values('"
+ form.getName() +"','"
+ form.getOrderPerson()+"','"
+ form.getRequests() + "','"
+ form.getPlace()+"','"
+ form.getDatetime() + "')";
if (connection.executeUpdate(sql)>=0) {
flag = true;
}
return flag;
}

/**
*
* 获得订单信息
* @param name
* @return
*/
public OrderForm get_OrderForm(Integer id){
String sql = "select * from tb_order where orderID='" +id+"'";
try {
ResultSet rs = connection.executeQuery(sql);
while (rs.next()) {
orderForm = new OrderForm();
orderForm.setOrderID(Integer.parseInt(rs.getString(1)));
orderForm.setName(rs.getString(2));
orderForm.setOrderPerson(rs.getString(3));
orderForm.setRequests(rs.getString(4));
orderForm.setPlace(rs.getString(5));
orderForm.setDatetime(rs.getString(6));
}
} catch (SQLException e) {
System.out.println("得到waiter实体异常");
e.printStackTrace();
}
return orderForm;
}

//根据用户账号查询所有的数据
public OrderForm get_OrderForm2(String orderPerson){
String sql = "select * from tb_order where orderPerson='" +orderPerson+"'";
try {
ResultSet rs = connection.executeQuery(sql);
while (rs.next()) {
orderForm = new OrderForm();
orderForm.setOrderID(Integer.parseInt(rs.getString(1)));
orderForm.setName(rs.getString(2));
orderForm.setOrderPerson(rs.getString(3));
orderForm.setRequests(rs.getString(4));
orderForm.setPlace(rs.getString(5));
orderForm.setDatetime(rs.getString(6));
}
} catch (SQLException e) {
System.out.println("得到orderForm实体异常");
e.printStackTrace();
}
return orderForm;
}

//查询所有的数据
public List<OrderForm> get_OrderList() {
List<OrderForm> list = new ArrayList<OrderForm>();
String sql = "select * from tb_order";
try {
ResultSet rs = connection.executeQuery(sql);
while (rs.next()) {
orderForm = new OrderForm();
orderForm.setOrderID(Integer.parseInt(rs.getString(1)));
orderForm.setName(rs.getString(2));
orderForm.setOrderPerson(rs.getString(3));
orderForm.setRequests(rs.getString(4));
orderForm.setPlace(rs.getString(5));
orderForm.setDatetime(rs.getString(6));
list.add(orderForm);
}
} catch (SQLException e) {
System.out.println("查询列表异常");
e.printStackTrace();
}
return list;
}

//根据用户账号查询所有的数据
public List<OrderForm>get_OrderList(String IDnumber) {
List<OrderForm> list = new ArrayList<OrderForm>();
String sql = "select * from tb_order where orderPerson="+IDnumber;
try {
ResultSet rs = connection.executeQuery(sql);
while (rs.next()) {
orderForm = new OrderForm();
orderForm.setOrderID(Integer.parseInt(rs.getString(1)));
orderForm.setName(rs.getString(2));
orderForm.setOrderPerson(rs.getString(3));
orderForm.setRequests(rs.getString(4));
orderForm.setPlace(rs.getString(5));
orderForm.setDatetime(rs.getString(6));
list.add(orderForm);
}
} catch (SQLException e) {
System.out.println("查询列表异常");
e.printStackTrace();
}
return list;
}
}

第5章 测试与总结

5.1.测试:
5.1.1 会员注册测试。

注册页面。
注册数据不完整,前后密码不一致。
Javascript会提示前后密码不一致。
密码问题和答案没有填写
Javascript会提示要求输入问题及其答案

注册合法数据。

注册成功提示。
5.1.2 会员登录测试

登录页面输入错误数据
Javascript会提示用户名不存在

Javascript提示登录成功

登录成功会员主页面

5.13 员工登录
员工登录页面
员工登录成功主页
5.1.4经理登录
经理登录
经理登录成功主页

5.2.1查看所有菜

所有菜的数据

5.2.2会员查看个人信息

5.2.3员工查看所有订单信息
5.2.4经理查看所有员工信息

5.3 结束语
B/S 结构的订餐管理系统采用MVC模式,结构合理、可扩展性好,而且开发成本和实现技术难度都比较低、交互性好,使用操作方便。非常适合中小型餐厅,在未来一定非常有使用价值和发展前景。

参考文献
[1] 祝智庭. 网络教育应用教程[M]. 北京:北京师范大学出版社,
2006.
[2] 刘成新,王焕景. 网络教育应用教程[M]. 北京:电子工业出版
社,2009.
[3] 坝村忠. 现代远程教育技术导论[M]. 天津:天津教育出版社,
2000.
[4] 王燕. 基于ASP 的在线教学系统的设计与开发[J]. [出版地不
详]:中国科技信息,2008(7):121-122.
[5] 肖梅. 基于网络数据库的在线教学系统的构建[J]. 济南:科技
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: