项目实践(一)点餐系统概述

  • 项目名称:

点餐系统

项目实践(二)点餐系统——数据管理模块基础操作

项目实践(三)点餐系统——业务逻辑模块

  • 项目背景:

点餐系统实际上来源于一个商品出货/进货管理系统的延伸项目,商品出货/进货管理系统是导师送给师母的礼物,当时由我协助几个本科生一起完成,在这个项目经历下,一次偶然机会给发小的奶茶店定制了一款点单系统,也就是这个项目的最终版

  • 项目描述:

使用户可以通过浏览器访问服务器获取菜品信息并进行点餐;以及可以使管理员通过浏览访问服务器实现订单以及菜品管理

  • 技术调研:

线程,socket,http ,json序列化,mysql,STL

  • 框架设计:

MVC

M-model-数据管理
V-view-界面管理
C-controller-业务逻辑管理

数据管理模块:

  • 数据存储:mysql
  • 数据库表的设计   

菜品信息表菜品ID菜品名称菜品单价添加时间
订单学习表订单ID订单菜品订单状态下单时间
  • 数据库管理模块设计   菜品数据类(添加,删除,修改,获取(所有,单个))    订单数据类(添加,删除,修改订单状态,查看(所有,指定)),封装数据库操作,提供调用接口

业务逻辑模块:

  1. 搭建服务器:HTTP服务器(套接字,HTTP,TCP)采用httplib库进行搭建
  2. 通信接口设计:什么样的请求对应什么样的业务处理和响应

静态页面请求:html静态页面

动态数据请求:菜品数据,订单数据

通信接口采用restful风格:

基于http协议:使用xml或json格式定义正文序列化方式

json序列化:

  • json::value类:json数据与外界数据进行中转的一个对象类,重载大量操作符,包含大量类型转换函数

  • json::Reader类:实现反序列化,将json格式字符串转化为多个数据对象,存储在json::value类中

  • json::Writer类:实现序列化,将json::value中对象转换为json格式字符串

定义操作类型:POST添加  DELETE删除 PUT修改   GET获取

界面识图模块:html+css+js

html:页面布局

css:样式语言  度标签容器进行样式修饰

js:JavaScript脚本语言  动态渲染

项目总结:

项目名称:点餐系统

项目描述:完成功能:用户通过浏览器与后台服务器进行交互,实现用户对菜品信息查看与下单功能,以及管理员对菜品和订单管理功能

项目实现:采用一个不太严谨的MVC框架,总体分为三个模块,数据模块,业务处理,前端页面

数据模块:基于mysql数据库实现数据存储管理,并且封装数据库访问类向外提供业务分离的数据信息

业务处理:基于http协议采用RESTFUL风格使用httplib库搭建http服务器与前端进行交互进行菜品以及订单的数据业务处理功能

前端页面:基于简单的html与css和vue.js以及ajax实现前端界面的静态页面展示以及动态数据获取渲染功能

难点:

1,mysql查询与保存结果的线程安全问题

查阅mysql开发手册,mysql所提供的接口都是线程安全的,但这两个接口之间还是存在线程安全,需要加锁保护

2,http服务器搭建

http自行搭建,过于粗糙,干不够完善,httplib库提供接口,完善安全,流程也符合整个项目要求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HT . WANG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值