小组成员:李靖 李凤莲

课程设计报告

学        号           201610411111

姓        名           李  靖

班        级           2016计科1班

题        目           小郡肝点餐系统

授课 老师            袁  飞

目录

第1章 概述  1

1.1 课程设计的核心任务   1

1.2 课程设计工作进程       1

1.3 系统简单介绍  1

第2章 需求分析  1

2.1 用户需求       1

2.1.1 业务需求    2

2.1.2 商业需求    2

2.1.3 特殊需求    2

2.2 可行性分析   2

2.2.1 技术可行性 2

2.2.2 经济可行性 2

2.3 系统功能       2

第3章 概要设计  3

3.1 系统设计思想       3

3.2 系统(或网络)总体结构   5

3.3 数据库设计

第4章 详细设计7

第5章 课程设计总结  9

第1章概述

1.1课程设计的核心任务

(1)     需求分析、可行性分析、E-R图、关系图、系统架构图等的编写

(2)     总体设计、详细设计、代码实现

(3)     代码测试

1.2课程设计工作进程

总体阶段时间分布:4月15号——6月19号

第一阶段(4月15号——5月8号):

编写项目文档其中包括:需求分析、可行性分析、E-R图、实体图、关系图、用例图、系统架构图。

第二阶段(5月8号——5月29号):

编写代码,实现基本功能

第三阶段(5月29——6月19):

测试代码以及发布代码于服务器和博客上;提交整体项目于老师邮箱。

1.3系统简单介绍

小郡肝点餐系统是实现用户在线进行用户注册、用户登录、用户根据自身需求进行在线点餐、网上结账等功能;采用Java语言实现功能,使用mysql实现数据库管理。

第2章需求分析

2.1用户需求

2.1.1业务需求

点餐业务

点餐管理是餐饮企业经营活动的及其重要的一环,它关系到是否能为用户提供可靠的点餐环境、点餐是否能够顺利进行以及菜品的时效性。 将传统的人工点餐转为使用餐厅点餐系统,系统可以为顾客提供以下服务:浏览最新菜谱、自助点菜(下单)、进行催单、查询订单的排队情况以及结账申请。

2.1.2特殊需求

菜谱是以网页形式显示并且及时的更新,顾客通过自己的联网设备查看菜谱。必须使用户能准确快速地进行信息输入,从而使得用户与系统之间的通信时间尽可能地缩短。系统必须能准确快速地打印出各类清单。

2.2可行性分析

2.2.1技术可行性

  基于相对成熟的前台开发工具eclipse,使用java 语言进行后台编码,运用面向对象的思想和设计模式进行开发,后台使用简捷的mysql数据库,运用tomcatglassfish来部署整个程序。这些技术在当今时代都趋与=于成熟,并且运用广泛,所以,本系统的实现在技术上是可行的。

2.2.2经济可行性

由于开发设备于人员都已聚齐,开发所用的成本主要是人力资源的支出。并且系统所发挥的作用是科学地管理数据,大大的提高了管理效率,降低了工作人员的负担,节省了管理时间,所以,本系统的实现在经济方面是可行的。

2.3系统功能

  本系统的主要功能分为:餐厅前台端系统(客户端)、服务器后台端系统(服务端)。以下分别对各个端的系统功能做一个功能概述。

  餐厅前台端系统:

  1.从服务端获取最新的菜谱;

  2.在本地系统中进行点单,并将订单传送到服务器后台系统;

  3.催单,向服务器后台端系统发送信息,要求系统尽快处理本订单;

  4. 结账,向服务器后台端系统发送结账请求。

  服务器后台端系统:

  1. 更新本地系统中的菜谱信息;

  2.接收订单,并保存订单信息;

  3.将订单传送到厨房端系统;

  4.对催单请求进行处理;

  5.对订单进行结账处理,并将信息反馈到餐厅前台端系统;

  6.管理当前系统中等待厨房处理的订单队列;

  7.处理订单信息队列;

8.将已处理的订单进行处理(写入数据库),以便日后做账;

第3章概要设计

3.1系统设计模式

流程图

关系图

E-R图:

3.2系统总体结构:

系统功能图:

前台功能图:

系统架构图:

用例图:

3.3持久层设计

第4章
详细设计与系统实现

4.1业务逻辑设计与实现

顾客注册后需要登录系统才能进行点餐服务;点餐之后提交订单,订单由后台管理员确认后上菜。

4.2表现层设计与实现

首页是登录注册页面,首先注册之后跳转到登录页面进入主页,进行点餐,并提交订单。

主要采用html和css

界面展示如下:

登录注册页面

  

点餐页面

订单页面

  

  

4.3项目难点及解决方案

难点:将数据从后台提取实现前后台交互,以及菜品的上传到后台.

解决:在慢慢学习ajax和json后一步步实现

4.4典型代码片段与设计过程

访问数据库部分代码

先建立数据库的连接,将查询的数据封装到List对象中,在通过主键id或其他进行查找

Dao层

  

package dao.daoImpl;import bean.Food;import util.C3P0Util;import dao.FoodDao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;public class FoodDaoImpl implements FoodDao{@Overridepublic void addFood(Food food) throws Exception{String sql = "INSERT INTO `xiaojungan`.`t_food`(`foodname`,`type_id`,`descript`,`price`,`saling`,`img`) VALUES (?,?,?,?,?,?)";try(Connection conn = C3P0Util.getConnection();PreparedStatement ps = conn.prepareStatement(sql);) {ps.setString(1,food.getFoodname());ps.setInt(2, food.getType_id());ps.setString(3,food.getDescript());ps.setBigDecimal(4, food.getPrice());ps.setInt(5,food.getSaling());ps.setString(6, food.getImg());ps.executeUpdate();} catch (Exception e) {e.printStackTrace();throw new RuntimeException("添加失败!");}}@Overridepublic List<Food> findSalingFoods() throws Exception{String sql = "select * from t_food where saling=?";List<Food> foodList = new ArrayList<>();try(Connection conn = C3P0Util.getConnection();PreparedStatement ps = conn.prepareStatement(sql)) {ps.setInt(1, 1);try (ResultSet rs = ps.executeQuery()) {//将查询出的结果数据封装到List对象中while(rs.next()){Food b = new Food();b.setId(rs.getInt("id"));b.setFoodname(rs.getString("foodname"));b.setType_id(rs.getInt("type_id"));b.setDescript(rs.getString("descript"));b.setPrice(rs.getBigDecimal("price"));b.setImg(rs.getString("img"));b.setSaling(rs.getInt("saling"));foodList.add(b);}} catch (Exception e) {e.printStackTrace();}}catch (Exception e){e.printStackTrace();}return foodList;}@Overridepublic  Food findFood_id(int id) throws Exception {String sql = "select * from t_food where id=?";Food b = null;try(Connection conn = C3P0Util.getConnection();PreparedStatement ps = conn.prepareStatement(sql)) {ps.setInt(1, id);try (ResultSet rs = ps.executeQuery()) {//将查询出的结果数据封装到Food对象中if(rs.next()){b = new Food();b.setId(rs.getInt("id"));b.setFoodname(rs.getString("foodname"));b.setType_id(rs.getInt("type_id"));b.setDescript(rs.getString("descript"));b.setPrice(rs.getBigDecimal("price"));b.setSaling(rs.getInt("saling"));b.setImg(rs.getString("img"));return b;}} catch (Exception e) {e.printStackTrace();}}catch (Exception e){e.printStackTrace();}return b;}}

  终于大功告成了,我们的点餐系统,不过做的功能比较简陋,但是都是自己慢慢一步一步做的,以后还会来完善它。

  下面是我组的服务器地址:http://47.101.175.159:8080/  欢迎访问哦!

测试与部署

5.1系统测试

我们做了以下测试

        对功能的测试:是系统测试中最基本的测试。功能上基本可行,可用性一般,后期会加强并且改善系统功能。

        数据转换测试:目标是验证已存在数据的转换并载入一个新的数据库是否有效。用户输入的数据可以保存到后台,载入新的数据库也有效。

5.2系统部署

部署javaweb环境

我们组用的jdk1.8;mysql8.0和tomcat8.5;所以先安装和配置这三个的环境变量。

将三个下载安装后配置其环境变量

Jdk1.8配置请参考:https://blog.csdn.net/crossing2012/article/details/81292547

Tomcat配置参考:https://blog.csdn.net/qq_34197553/article/details/77597196

Mysql8.0安装配置参考:https://blog.csdn.net/qq_33144861/article/details/80267462

项目打包成war包并上传运行:

项目打包参考:https://blog.csdn.net/pporyy/article/details/87526807

War包上传到服务器,这个war包直接放在tomcat安装目录下的webapp下就可以直接访问了; 其中遇到的问题是云服务器无法复制文件进去,百度各个方法安装其他软件,花了很久时间发现自己白费功夫,也有很多人遇到和我一样的坑。最后发现用自己电脑远程桌面连接到自己的云服务器上就可以直接复制上去。

电脑远程桌面连接参考:https://blog.csdn.net/ZhenMing_Ma/article/details/71425536

外网访问项目

如果有域名:域名加上项目名称就可以访问了

没有域名:服务器的公有ip:8080/ 项目名就可以访问了 ;

如果访问不成功,可能是你的服务器的安全组没有配置。

我是配置阿里云服务器,参考:https://www.jianshu.com/p/3801393a323a

最后就可以成功访问。

第6章课程设计总结

6.1系统基本软件度量数据

6.2课程设计项目的收获与展望

本次的小郡肝点餐系统课程设计让我了解到现在市面上有太多的餐饮系统,种类也非常多,餐饮行业竞争也变的十分的激烈,如今是互联网时代不得不跟随市场的脚步,那该如何选择成了非常的头疼的事,首先我们要知道点餐系统能带来的好处:降低运营成本,节省人力资源 ;提高餐厅顾客消费率,提高营业额 (如:智能化运营会员,充值、消费、积分);全新就餐模式,提升顾客体验;大数据进行分析,能够重新定位等等。

如今顾客群体中年轻人的比例越来越大,80后、90后成为主力军。高档连锁的消费餐厅是你在朋友聚会时的选择,但你仍然在吃,中式快餐,老妈做的饭菜和外卖,只有周末或者是朋友小聚时才会考虑“吃顿好的”。而承包了年轻顾客每天最多用餐时间的,永远是中小餐馆的食物,因为这些食物,才是真正意义上的刚需。帮助中小餐饮消费餐厅做好服务升级,眼下这个市场,明显是很有前景的。

转载于:https://www.cnblogs.com/lj520fj/p/10814912.html

小郡肝火锅点餐系统——项目文档相关推荐

  1. java计算机毕业设计网页小游戏交流论坛源代码+数据库+系统+lw文档

    java计算机毕业设计网页小游戏交流论坛源代码+数据库+系统+lw文档 java计算机毕业设计网页小游戏交流论坛源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java ...

  2. 点餐系统部署文档,java后台部署和微信点餐小程序的部署

    准备工作 1,安装jdk8或者jdk11 2,安装mysql8.0(只要是8.0开通即可) 3,安装IntelliJ IDEA 开发工具(java) 4,安装微信小程序开发者工具 5,注册小程序获取小 ...

  3. OCR文本识别系统项目文档——欢迎探讨交流

    <OCR文本识别系统项目计划书> 一.作品概述 http://115.159.205.168/ocr_php/public/index.php 本项目的名称为OCR文本识别系统,研发其主要 ...

  4. 基于SpringBoot和微信小程序的餐馆点餐系统的设计和实现

    作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue.SpringBoot和微信小程序).系统定制.远程技术指导. ...

  5. SSM基于微信小程序的外卖点餐系统 毕业设计-附源码2711704

    基于微信小程序的外卖点餐系统的设计与实现 摘要 立足于当下餐饮行业现有的点餐模式,分析传统APP点餐的运作流程,结合微信小程序的特点设计新型的外卖点餐系统.近几年,人们生活水平日益提升,但工作强度和压 ...

  6. ssm基于微信小程序的外卖点餐系统的设计与实现毕业设计-附源码211704

    摘要 立足于当下餐饮行业现有的点餐模式,分析传统APP点餐的运作流程,结合微信小程序的特点设计新型的外卖点餐系统.近几年,人们生活水平日益提升,但工作强度和压力不断增强,尤其是对于上班族而言,到餐厅吃 ...

  7. 【计算机毕业设计】基于微信小程序的外卖点餐系统

    技术栈:前端微信小程序.后端JAVA语言 SpringBoot框架 Redis缓存技术 MySQL关系型数据库 毕设帮助.技术解答.源码获取(有偿),联系方式见文末. 本课题将设计基于微信小程序的外卖 ...

  8. 微信扫码点餐小程序springboot外卖点餐系统源码和论文

    开发工具: 后端:idea   用户端:微信开发者工具 数据库 :mysql5.7+ 技术:java  springboot  mybatis  微信原生技术 角色:   管理员  多商家    用户 ...

  9. java计算机毕业设计腾讯网游辅助小助手源代码+数据库+系统+lw文档

    java计算机毕业设计腾讯网游辅助小助手源代码+数据库+系统+lw文档 java计算机毕业设计腾讯网游辅助小助手源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java ...

最新文章

  1. 收藏!深度学习计算机视觉模型解析!
  2. v-bind 中a标签的使用
  3. 单向链表的有关操作(链式存储结构)
  4. 超干货 | 硅谷产品大师 Marty Cagan 70 分钟演讲2万字中译
  5. 1-jdk的安装与配置
  6. 【TensorFlow】TensorFlow函数精讲之tf.get_variable()和tf.get_variable_scope()
  7. 下载丨67页PDF,云和恩墨技术通讯(2021年1月刊)
  8. 如何用python爬取公众号文章搜狗微信搜索_python如何爬取搜狗微信公众号文章永久链接的思路解析...
  9. 真正决定你成败的,是时间管理!
  10. 无损音乐播放器,有软件与硬件之分
  11. Win10隐藏语言栏
  12. 教程:如何制作一个多功能U盘
  13. [ios2] ios开发之MPNowPlayingInfoCenter 锁屏显示正在播放的音乐
  14. python之函数len()
  15. Python爬取蓝奏云直链(获取真实文件地址)
  16. php多用户表白源码,php源码]阿狸表白自动生成源码
  17. int与Integer、new Integer()
  18. openwrt中磁盘未分配空间挂载
  19. 用Python实现斯皮尔曼等级相关性检验
  20. java中isprime_java:19:找不到符号 符号:方法isPrime(int) 位置:类ziji_9

热门文章

  1. 打造Linux回收站
  2. [NOIP2010]关押罪犯
  3. 'display','position'和'float'相互关系
  4. 不行!不能这样下去!
  5. Windows Forms 实现安全的多线程详解
  6. 错误400-The request sent by the client was syntactically incorrect
  7. ios 内存管理的理解(四)ARC下循环引用问题
  8. ActiveMQ objecmessage 无法调用问题。
  9. 关于linux下的命令
  10. 思科ACL阻止勒索病毒