基于SSM的餐厅点餐系统设计与实现(Java+MySQL)

目 录
第一章 绪论 1
1.1系统研究背景和意义 1
1.2研究现状 1
1.3论文结构 2
第二章 相关技术说明 3
2.1 JSP(Java Server Page)简介 3
2.2 Spring框架简介 4
2.3 Spring MVC框架简介 5
2.4 MyBatis 框架简介 5
2.4 MySql数据库简介 5
2.6 Tomcat简介 6
2.7 jQuery简介 7
2.8系统开发环境概述 7
第三章 系统分析 8
3.1可行性分析 8
3.2系统体系结构设计 9
3.3用户用例 9
3.4管理员用例 11
第四章 系统总体设计 15
4.1总体设计目标 15
4.2系统类图 15
第五章 数据库设计 22
5.1数据库需求分析 22
5.1.1系统功能分析 22
5.1.2数据库设计 22
5.2数据库表的实体E-R图 22
5.3 数据库逻辑结构设计 25
6.1 餐厅点餐系统的前台界面显示 28
第七章 系统测试 33
7.1系统的总体概述 33
7.2测试模块的名称以及测试的内容 33
7.3测试用例 34
7.4测试结果 35
结 语 36
致 谢 37
参考文献 38
在本次主要介绍的是餐厅点餐系统的设计幕后情况和设计介绍,其中包括了总体设计模块,系统详细设计模块和数据库具体情况的设计。在这个餐厅点餐系统主要分为前台顾客模块和后台管理员模块,可以通过顾客登录点餐系统的前台,通过管理员登录点餐系统的后台。在顾客登录的模块,他们可以查看各种餐品的详细的信息,例如图片信息和价格和餐品名称等。也可以将需要的餐品加入自己购物车,如果添加完毕我们就可以提交自己的订单给数据库。在管理员后台管理模块中管理员可以对餐品种类,餐品,顾客信息,订单信息进行操作。
第三章 系统分析
3.1可行性分析
3.1.1技术可行性

如今社会的发展,网络的更替导致了世界技术的进步,我们进行web类型的点餐系统的技术已经很方便了,我们很容易进行技术上的操作。在这个部分主要是为了了解在现今网络技术是否可以能够实现这个项目,现在来说是很方便的完成这个点餐系统。我的这个餐厅点餐体统是使用了Spring 和Spring MVC框架和Mybatis框架,采用了Jquery等需要的技术。就目前而言实现点餐系统的基本功能并且部署到Tomcat框架的登录是完全可以的。

3.1.2经济可行性
社会科技和经济的蓬勃向上,人们的生活已经可以很方便简洁的进行网络的使用。每个人的资金很方便的存储在支付宝这个软件上,进行网站点餐我们很容易的网上。而且网上点餐的存在也是方便人们的生活方式,不仅仅节约了时间而且带动了经济的发展。传统的点餐需要大量的人来进行电话点餐是很麻烦的,非常不适应生活节奏。于是这个点餐系统的出现正在减少这些个事情。
3.1.3操作可行性
我的这个餐厅点餐系统的界面是十分方便观看的,用户体验来说是十分方便的,就像正常的上网方式就可以进行操作。自需要看一下这个网站我们就可以了解这些个功能,使用方便明了操作简便。
3.2系统体系结构设计
在这里插入图片描述

图3-1 系统总的用例图
第四章 系统总体设计
4.1总体设计目标
餐厅点餐系统按功能主要分为顾客使用界面和管理员管理界面,顾客可以在前台的界面进行相应的操作,而管理员也可以通过后台的管理界面进行数据的操作。餐厅点餐系统是符合基础的用户体验的方便性系统,它的基本需求和良好的用户体验的来体现它是一个功能性和扩展性很强的系统。用户浏览界面十分利于用户的使用和点餐的进行。餐厅点餐系统的界面是较为简便的,顾客使用也很是方便的。在餐厅点餐系统中实现了顾客需要的浏览界面查看信息的基本的功能继而添加餐盘的功能,最后顾客是能够确认自己餐品的信息,确定信息后顾客可以将自己的餐盘中的餐品上交给数据库。本文转载自http://www.biyezuopin.vip/onews.asp?id=11033在管理员界面我们需要实现对餐品种类和餐品信息的总的管理,然后对于顾客确认的餐品的信息进行管理。
4.2系统类图
主要系统功能是: 用户的管理,管理员的餐品种类等事务的管理主要功能的类图为下面的显示:
在这里插入图片描述

图4-1 管理员管理的类图

package com.kai.web.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import com.kai.bean.PageBean;
import com.kai.bean.User;
import com.kai.web.service.UserService;

public class UserManagerController implements Controller{

	@Override
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		// TODO Auto-generated method stub
		ModelAndView mv = new ModelAndView();
		HttpSession session = request.getSession();
		UserService userService = new UserService();
		String pageId = request.getParameter("id");
		int curPage = 0;
		if(pageId==null){
			curPage = 1;
		}else{
			curPage = Integer.parseInt(pageId);
		}
		System.out.println("curPage value is:"+curPage);
		
		List<User> usersList = userService.selectAll();//将查询结果存放在List集合里
		
		PageBean pageBean = new PageBean(usersList.size());//初始化PageBean对象  
		//设置当前页  
		pageBean.setCurPage(curPage);
		//这里page是从页面上获取的一个参数,代表页数  
		//获得分页大小  
		int pageSize = pageBean.getPageSize();
		//获得分页数据在list集合中的索引 
		int firstIndex = (curPage-1)*pageSize;
		int toIndex = curPage*pageSize;
		if(toIndex>usersList.size()){
			toIndex = usersList.size();
		}
		if(firstIndex>toIndex){
			firstIndex = 0;
			pageBean.setCurPage(1);
		}
		//截取数据集合,获得分页数据
		List<User> userList = usersList.subList(firstIndex, toIndex);
		
		session.setAttribute("userList", userList);
		session.setAttribute("pageBean", pageBean);
		
		mv.setViewName("manager/userManager");
		return mv;
	}

}










在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 餐厅管理系统 MySQL 数据库设计 #### 表结构设计 为了实现一个高效的餐厅管理系统,数据库的设计至关重要。以下是几个核心表及其字段说明: - **用户表 (users)** 存储系统用户的个人信息。 | 字段名 | 类型 | 描述 | |------------|-------------|-------------------| | user_id | INT(11) | 用户唯一标识 | | username | VARCHAR(50) | 登录用户名 | | password | CHAR(32) | MD5 加密后的密码 | | email | VARCHAR(100)| 用户邮箱 | ```sql CREATE TABLE users ( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50), password CHAR(32), email VARCHAR(100) ); ``` - **菜单项表 (menu_items)** 记录所有可供选择的食物条目。 | 字段名 | 类型 | 描述 | |---------------|-------------|--------------------| | item_id | INT(11) | 菜单项唯一标识 | | name | VARCHAR(100)| 名字 | | description | TEXT | 简介 | | price | DECIMAL(8,2)| 单价 | | category_id | INT(11) | 所属分类 ID | ```sql CREATE TABLE menu_items ( item_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description TEXT, price DECIMAL(8,2), category_id INT ); ``` - **订单表 (orders)** 维护顾客提交的每一个订单的信息。 | 字段名 | 类型 | 描述 | |--|---------------------| | order_id | INT(11) | 订单编号 | | user_id | INT(11) | 下单者 ID | | total_price | DECIMAL(8,2)| 总金额 | | status | ENUM('pending', 'completed') | 订单状态 | | created_at | TIMESTAMP | 创建时间戳 | ```sql CREATE TABLE orders ( order_id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, total_price DECIMAL(8,2), status ENUM('pending', 'completed'), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ``` - **订单详情表 (order_details)** 关联具体订单中的各个菜品以及数量。 | 字段名 | 类型 | 描述 | |---------------|-------------|-------------------------| | detail_id | INT(11) | 明细记录唯一标识 | | order_id | INT(11) | 对应订单 ID | | item_id | INT(11) | 商品 ID | | quantity | SMALLINT | 数量 | | sub_total | DECIMAL(8,2)| 小计 | ```sql CREATE TABLE order_details ( detail_id INT AUTO_INCREMENT PRIMARY KEY, order_id INT, item_id INT, quantity SMALLINT, sub_total DECIMAL(8,2) ); ``` 这些表格共同构成了基本的数据模型,支持了从浏览菜单到完成支付整个流程的功能需求[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值