项目之点餐系统

article/2025/9/17 6:19:17

点餐系统

1.点餐系统的背景

随着数据时代的到来。我们去外边吃饭会发现大多数餐馆已经是使用在网页点单,对于餐馆来说网页点单省去了服务员的费用,对于顾客来说也是比较方便的,所以我自己做了一个简单的网页版点餐系统。

2.项目模块

这个项目主要分为三个模块,数据管理模块,业务逻辑模块,界面视图模块;
在这里插入图片描述
2.1 数据管理模块
数据管理模块主要是针对两个方面,
顾客:点击查看菜品信息,勾选菜品,进行下单
老板:上传菜品,修改菜品,查看订单,修改订单
在这我使用的是mysql数据库对这些信息进行管理,数据库的设计:
在这里插入图片描述
代码设计:
在这里插入图片描述
2.2 业务逻辑模块
业务逻辑模块是实现浏览器与服务器之间的网络通信,服务器针对客户端的请求进行业务处理。那么都有哪些请求:
顾客:访问页面,查看菜品信息,进行下单
老板:访问页面,上传/查看/删除/修改菜品信息,查看/修改/删除订单
并且针对网络通信这么,我使用的是httplib搭建http服务器,搭建服务器成功以后,客户端与服务端进行通信,在通信过程中我的通信格式是利用json串组织的数据。
2.2.1 菜品管理
1.新增菜品

请求: POST /dish {   "name": "红烧肉",   "price": 1800 } 响应: HTTP/1.1 200 OK {   "ok": true,   "dish_id": 1, }

2.查看菜品

请求: GET /dish 响应: HTTP/1.1 200 OK [   {     dish_id: 1,     name: "红烧肉",     price: 1800   } ] 

3.删除菜品

请求:  DELETE /dish/:dish_id 响应: HTTP/1.1 200 OK {   "ok": true }

4.修改菜品

请求: PUT /dish/:dish_id {   "name": "糖醋里脊",   "price": 1900 } 响应: HTTP/1.1 200 OK {   "ok": true }

2.2.2 订单信息管理
1.上传订单

请求: POST /order {   "table_id": "1",   "time": "2020-6-6 12:00",   
"dish_ids": [1, 2] } 响应:  HTTP/1.1 200 OK {   "ok": true }

2.修改订单

请求: PUT /order/:order_id {   "state": 0, } 响应: HTTP/1.1 200 OK {   "ok": true } 

3.查看订单

请求:  GET /order 响应: HTTP/1.1 200 OK [  {     "order_id": 1,   "table_id": "1",   "time": "2019-05-15 12:00",     "dishes": [       {         "dish_id": 1,         "name": "红烧肉",        "price": 1800       },       {        "dish_id": 2,         "name": "糖醋里脊",        "price": 1900       }     ],    "state": 0,     "consume": 3700,  // 表示该订单的价格  },   {     "order_id": 2,    "table_id": "2",     "time": "2019-05-16 12:00",    "dishs": [      { "dish_id": 1,         "name": "红烧肉",        "price": 1800       },     ],     "state": 1,     "consume": 1800,  // 表示该订单的价格   } ] 

4.删除订单

请求:  DELETE /order/:order_id 响应: HTTP/1.1 200 OK {   "ok": true }

2.2.3 利用httplib搭建服务器

#include "httplib.h" int main() {using namespace httplib;   Server server;   server.Get("/", [](const Request& req, Response& resp) {(void)req;     resp.set_content("<html>hello</html>", "text/html");   });server.set_base_dir("./wwwroot");server.listen("0.0.0.0", 9092);   return 0; } 

2.3 前端视图模块
针对就前端我们使用的css,js,html语言,html做出前端页面,css可以是页面变好看,js是页面动起来。对于页面的制作是我自己在网上找了一个模板,然后进行修改的。


http://chatgpt.dhexx.cn/article/yqsHw4qw.shtml

相关文章

微信点餐系统的开发与实现

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

饭店点餐系统之系统工作流程

系统的工作流程 客人进入店中&#xff0c;服务员手持Pad查询空闲座位&#xff0c;带领客人进入座位&#xff0c;输入座位号&#xff0c;顾客人数进入系统&#xff0c;然后将Pad交给客人进行点餐。点餐完毕后提交发 送到系统管理端&#xff0c;再发送给后厨进行打印制作。顾客就…

springboot+Vue饭店点菜点餐管理系统

该饭店点菜系统&#xff0c;采用了Vue技术开发&#xff0c;后台数据库是mysql数据库&#xff0c;系统分为前台和后台&#xff0c;前台是一般客户登陆后进行点菜选菜&#xff0c;后台是管理员用户登录后进行点菜信息的处理以及注册会员信息的处理 网站前台&#xff1a; 在线点菜…

饭店点餐系统之系统网络结构

系统的网络结构 四个终端都通过路邮器相连起来&#xff0c;顾客终端用wifi与路由器相连。 由于无线局域网传输距离的限制, 因此若脱离其无线服务覆盖范围时通信便会中断, 为解决此一问题须构建无缝的漫游连接. 以802.11b为例以三个不重叠信道1,6,11为基础向外扩充, 如此当无线网…

mysql餐馆点餐系统_课内资源 - 基于Jsp和MySql的餐厅点餐系统

1 总体概述 本设计主要通过HTML、CSS、JavaScript网页开发技术,会话及其会话技术,过滤器技术,Java语言以及连接mysql数据库来实现一个具有登录注册功能,且登录页面使用验证码技术来实现用户验证、未登录用户仅能访问主页的餐厅点餐系统。 主要的思路是与mysql数据库建表连接…

点餐系统-----数据库设计

1.系统需求分析阶段 1.1.选题背景 随着经济不断发展,餐饮行业也随着物质生活水平逐步提高而迅速发展,人们对生活质量的要求也越来越高,享受真正自动化、人性化的服务成为了人们追求高质量生活的重要内容。在大多数的餐饮场所点菜、查看菜谱等是人工完成的,速度慢,效率低…

饭店点餐系统的设计与实现

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a;

Java实现餐厅点餐系统

学习Java实现餐厅点餐系统&#xff0c;本文实现该系统的功能截图&#xff0c;和数据库设计SQL语句&#xff0c;系统功能图&#xff0c;功能优势等供大家参考 1.点餐管理系统背景 随着科技的发展&#xff0c;去饭店吃饭点餐和结账都是以线上操作的形势完成。 a.和现在有的系统…

插入算法

插入算法是一种排序算法 在运用插入算法时一般将数据分为两组&#xff0c;有序组和无序组&#xff0c;并且将数据的第一个元素默认为有序组&#xff0c;将无序组的元素一个一个按照某种排列方式插入到有序组中。 在此我们以大小顺序的排列为例&#xff0c;进行详细讲解&#…

Oracle插入数据

1、创建表格并指定结构 CREATE TABLE DB3.STUINFO( STUID INT, STUNAME VARCHAR(10), SEX INT, AGE INT, CLASSNO VARCHAR(10), STUADDRESS VARCHAR(10), GRADE INT, ENROLDATE DATE, IDNUMBER VARCHAR(20));2、插入数据 规范用法 INSERT INTO table(col1,col2...) VALUES(v…

【数据结构】插入排序 — 直接插入排序

目录 一、概述 二、直接插入排序 1&#xff09;概述 2&#xff09;步骤 3&#xff09;示意图 4&#xff09;分析&#xff1a;不带监视哨的算法 5&#xff09;算法实现&#xff1a;不带监视哨 6&#xff09;分析&#xff1a;带监视哨的算法 7&#xff09;算法&#xff1a…

插入排序图解

七大排序之插入排序 文章目录 七大排序之插入排序前言一、直接插入排序1.1 算法图解1.2 算法稳定性1.3 插入排序和选择排序相比到底优在哪&#xff1f; 二、折半插入排序总结 前言 博主个人社区&#xff1a;开发与算法学习社区 博主个人主页&#xff1a;Killing Vibe的博客 欢迎…

Mysql中4种常见的插入方式

4种常见insert方式 准备工作 CREATE TABLE identity_table (id int(11) NOT NULL AUTO_INCREMENT COMMENT 主键id,identity_id int(11) DEFAULT NULL COMMENT 身份Id,name varchar(255) DEFAULT NULL COMMENT 姓名,PRIMARY KEY (id),UNIQUE KEY identity_idx (identity_id) C…

老生常谈:接口幂等性,防止并发插入重复数据

分布式系统中&#xff0c;接口幂等性问题&#xff0c;对于开发人员来说&#xff0c;是一个跟语言无关的公共问题。不知道你有没有遇到过这些场景&#xff1a; 有时我们在填写某些form表单时&#xff0c;保存按钮不小心快速点了两次&#xff0c;表中竟然产生了两条重复的数据&a…

c++常见面试问题总结

c和C语言的区别 C语言是面向结构性语言&#xff0c;C是面向对象语言 c语言是c的子集&#xff0c;c包含了c语言的全部词法和语法内容&#xff0c;比c语言多出了类。 程序运行的保存的五个区 堆 栈 常量 全局变量 代码区 什么是面向对象&#xff1a;注重的是对象&#xff0c;当…

SQL语句

DDL 1.DDL 库 定义库&#xff1a;创建数据库 create database 数据库名; (数据库名要求&#xff1a;区分大小写&#xff0c;唯一性 &#xff0c;不能使用关键字如create select;不能单独使用 的数字和特殊符号) 查看所有数据库&#xff1a;show databases&#xff1b; 选择/进入…

矿山尾矿库倾斜摄影三维建模

尾矿库现状调查是矿山安全生产工作的重要组成部分&#xff0c;也是监管部门关注的焦点。及时对尾矿库的现状进行调查&#xff0c;对存在的问题提出合理的整治方案&#xff0c;是控制尾矿库发生灾害的有效手段之一。本文以中维空间应用无人机倾斜摄影技术和三维激光扫描技术在某…

浙江数字孪生数字化工厂三维激光扫描建模_三维可视化管理平台_吉优赛维_三维建模解决方案_3D模型

作为工业4.0的标志之一&#xff0c;数字化工厂的建设趋势已经不可逆转了&#xff0c;而且很多企业也纷纷加入了这一行列当中。既要打造符合自己行业特色的数字化工厂&#xff0c;而且也要建造起符合自己未来盈利要求的工厂&#xff0c;于是在这种情况下三维扫描真正发挥了它的作…

那些与三维激光扫描有关的建模

文章目录 一、前言 二、正文 建模的方式 正向设计建模 参照点云数据逆向建模 粗略参照式逆向建模 精细参照式逆向建模 基于点云数据直接建模 基于照片建模 建模的目的 提升视觉及感观效果 附加属性信息 适用于承载平台 数据轻量化存储 打印输出 远离建模误区 见…

[数学建模]学习笔记1:初等建模

初等模型&#xff1a; 1.研究对象的机理比较简单 2.用静态&#xff0c;线性&#xff0c;确定性模型即可达到建模的目的 3.可以利用初等数学方法来构造和求解模型 注&#xff1a;尽量用简单的数学工具来建模 2.1 光盘的数据容量 调查和分析 经过编码的数字信息&#xff0c;以…