摘 要
如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统餐厅点餐信息管理难度大,容错率低,管理人员处理数据费工费时,所以专门为解决这个难题开发了一个餐厅点餐系统,可以解决许多问题。
餐厅点餐系统实现的功能包括菜品类型管理,菜品信息管理,轮播图管理以及对已完成,未支付,已取消,已支付,已退款等状态的订单进行管理等功能。该系统采用了Mysql数据库,Python语言等技术进行编程实现。
餐厅点餐系统可以提高餐厅点餐信息管理问题的解决效率,优化餐厅点餐信息处理流程,保证餐厅点餐信息数据的安全,它是一个非常可靠,非常安全的应用程序。
****关键词:****餐厅点餐系统;Mysql数据库;Python语言
目 录
[摘 要](#摘 要)
[第1章 绪论](#第1章 绪论)
[1.1 课题背景](#1.1 课题背景)
[1.2 课题意义](#1.2 课题意义)
[1.3 研究内容](#1.3 研究内容)
[第2章 开发环境与技术](#第2章 开发环境与技术)
[2.1 Python语言](#2.1 Python语言)
[2.2 MYSQL数据库](#2.2 MYSQL数据库)
[第3章 系统分析](#第3章 系统分析)
[3.1 可行性分析](#3.1 可行性分析)
[3.1.1 技术可行性](#3.1.1 技术可行性)
[3.1.2 经济可行性](#3.1.2 经济可行性)
[3.1.3 操作可行性](#3.1.3 操作可行性)
[3.2 系统流程](#3.2 系统流程)
[3.2.1 操作流程](#3.2.1 操作流程)
[3.2.2 登录流程](#3.2.2 登录流程)
[3.2.3 删除信息流程](#3.2.3 删除信息流程)
[3.2.4 添加信息流程](#3.2.4 添加信息流程)
[3.3 性能需求](#3.3 性能需求)
[3.4 功能需求](#3.4 功能需求)
[第4章 系统设计](#第4章 系统设计)
[4.1 系统设计思想](#4.1 系统设计思想)
[4.2 功能结构设计](#4.2 功能结构设计)
[4.3 数据库设计](#4.3 数据库设计)
[4.3.1 数据库概念设计](#4.3.1 数据库概念设计)
[4.3.2 数据库物理设计](#4.3.2 数据库物理设计)
[第5章 系统实现](#第5章 系统实现)
[5.1 管理员功能实现](#5.1 管理员功能实现)
[5.1.1 菜品信息管理](#5.1.1 菜品信息管理)
[5.1.2 会员管理](#5.1.2 会员管理)
[5.1.3 已完成订单](#5.1.3 已完成订单)
[5.1.4 已支付订单](#5.1.4 已支付订单)
[5.1.5 已退款订单](#5.1.5 已退款订单)
[5.2 会员功能实现](#5.2 会员功能实现)
[5.2.1 菜品信息](#5.2.1 菜品信息)
[5.2.2 确认下单](#5.2.2 确认下单)
[5.2.3 我的订单](#5.2.3 我的订单)
[5.2.4 购物车](#5.2.4 购物车)
[第6章 系统测试](#第6章 系统测试)
[6.1 测试任务](#6.1 测试任务)
[6.2 测试目标](#6.2 测试目标)
[6.3 功能测试](#6.3 功能测试)
[6.3.1 登录功能测试](#6.3.1 登录功能测试)
[6.3.2 修改密码功能测试](#6.3.2 修改密码功能测试)
[6.4 系统测试结果](#6.4 系统测试结果)
[结 论](#结 论)
[致 谢](#致 谢)
绪论
1.1 课题 背景
二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。在互联网诞生之前,地域位置往往是人们思想上不可跨域的鸿沟,信息的传播速度极慢,信息处理的速度和要求还是通过人们骑马或者是信鸽传递,这些信息传递都是不可控制的,中间很有可能丢失,信息的传递水平决定了人们生活的水平。如今大家都在使用互联网软件产品,从内部管理设置计算机管理,提高内部信息化的管理水准,从外部市场也可以用计算机获取相关数据进行处理,如今各行各业已经严重依赖于计算机了。
本课题研究和开发餐厅点餐系统,让安装在计算机上的该系统变成管理人员的小帮手,提高餐厅点餐信息处理速度,规范餐厅点餐信息处理流程,让管理人员的产出效益更高。
1. 2 课题意义
传统处理数据,必须是一张张纸,然后处理完毕又是统计在一张张纸上面,不断的重复处理,最终有个结果给最高层作为参考,这个模式在互联网没有出现之前,是一种常见的事情,信息管理的效率提不上去,人多不一定力量大,因为人多肯定更加消耗资源,并且因为人类需要休息,需要管理,思想会不统一,会偷懒,所以人们研究出专门帮助人们计算的机器,就是计算机的前身,到了互联网时代,人们发现完全可以让程序供应商提供解决方案,自己挑选自己合适的方案来提高自己的产出比。所以在日常工作和生活中会发现各种各样方便人们的工具。
本课题研发的餐厅点餐系统,就是提供餐厅点餐信息处理的解决方案,它可以短时间处理完信息,并且这些信息都有专门的存储设备,而且数据的备份和迁移都可以设定为无人值守,从人力角度和信息处理角度以及信息安全角度,餐厅点餐系统是完胜传统纸质操作的。
图3.5即为管理员用例图

图3.6即为会员用例图

功能 结构设计
图4.1即为设计的管理员功能结构,管理员权限操作的功能包括对菜品信息,已完成,已支付,已取消,已退款等订单信息进行管理。

图4.2即为设计的会员功能结构,会员权限操作的功能包括收藏喜欢的菜品,发布关于菜品的评论,购买菜品,查看菜品购买信息等。

数据库物理设计
本小节主要任务即是根据上述内容进行数据存储结构的设计,实体的属性就用来表示字段名称,不同的字段表示的数据类型以及取值都不相同,以及该表各个字段是否能够保持空等进行说明,设计完成一张数据表的结构之后,在保存时同样要命名,尽量选择英文名称进行命名并保存,还不容易导致系统出错。接下来就对设计的表进行简单说明。
表4.1 地址表
|-----------|---------------|--------------|---|
| 字段 | 注释 | 类型 | 空 |
| id (主键) | 主键 | bigint(20) | 否 |
| addtime | 创建时间 | timestamp | 否 |
| userid | 用户id | bigint(20) | 否 |
| address | 地址 | varchar(200) | 否 |
| name | 收货人 | varchar(200) | 否 |
| phone | 电话 | varchar(200) | 否 |
| isdefault | 是否默认地址[是/否] | varchar(200) | 否 |
表4.2 菜品类型表
|---------------|------|--------------|---|
| 字段 | 注释 | 类型 | 空 |
| id (主键) | 主键 | bigint(20) | 否 |
| addtime | 创建时间 | timestamp | 否 |
| caipinleixing | 菜品类型 | varchar(200) | 是 |
表4.3 菜品信息表
|-----------------|--------|--------------|---|
| 字段 | 注释 | 类型 | 空 |
| id (主键) | 主键 | bigint(20) | 否 |
| addtime | 创建时间 | timestamp | 否 |
| caipinmingcheng | 菜品名称 | varchar(200) | 否 |
| caipinleixing | 菜品类型 | varchar(200) | 否 |
| tupian | 图片 | varchar(200) | 是 |
| kouwei | 口味 | varchar(200) | 是 |
| yujishijian | 预计时间 | varchar(200) | 否 |
| caipinjieshao | 菜品介绍 | longtext | 是 |
| clicktime | 最近点击时间 | datetime | 是 |
| price | 价格 | float | 是 |
表4.4 购物车表
|---------------|------|--------------|---|
| 字段 | 注释 | 类型 | 空 |
| id (主键) | 主键 | bigint(20) | 否 |
| addtime | 创建时间 | timestamp | 否 |
| tablename | 商品表名 | varchar(200) | 是 |
| userid | 用户id | bigint(20) | 否 |
| goodid | 商品id | bigint(20) | 否 |
| goodname | 商品名称 | varchar(200) | 是 |
| picture | 图片 | varchar(200) | 是 |
| buynumber | 购买数量 | int(11) | 否 |
| price | 单价 | float | 是 |
| discountprice | 会员价 | float | 是 |
| goodtype | 商品类型 | varchar(200) | 是 |
表4.5 菜品信息评论表
|----------|-------|--------------|---|
| 字段 | 注释 | 类型 | 空 |
| id (主键) | 主键 | bigint(20) | 否 |
| addtime | 创建时间 | timestamp | 否 |
| refid | 关联表id | bigint(20) | 否 |
| userid | 用户id | bigint(20) | 否 |
| nickname | 用户名 | varchar(200) | 是 |
| content | 评论内容 | longtext | 否 |
| reply | 回复内容 | longtext | 是 |
表4.6 会员表
|------------|------|--------------|---|
| 字段 | 注释 | 类型 | 空 |
| id (主键) | 主键 | bigint(20) | 否 |
| addtime | 创建时间 | timestamp | 否 |
| huiyuanhao | 会员号 | varchar(200) | 否 |
| mima | 密码 | varchar(200) | 否 |
| xingming | 姓名 | varchar(200) | 否 |
| xingbie | 性别 | varchar(200) | 是 |
| touxiang | 头像 | varchar(200) | 是 |
| youxiang | 邮箱 | varchar(200) | 否 |
| shouji | 手机 | varchar(200) | 否 |
| money | 余额 | float | 是 |
表4.7 订单表
|---------------|-------|--------------|---|
| 字段 | 注释 | 类型 | 空 |
| id (主键) | 主键 | bigint(20) | 否 |
| addtime | 创建时间 | timestamp | 否 |
| orderid | 订单编号 | varchar(200) | 否 |
| tablename | 商品表名 | varchar(200) | 是 |
| userid | 用户id | bigint(20) | 否 |
| goodid | 商品id | bigint(20) | 否 |
| goodname | 商品名称 | varchar(200) | 是 |
| picture | 商品图片 | varchar(200) | 是 |
| buynumber | 购买数量 | int(11) | 否 |
| price | 价格 | float | 否 |
| discountprice | 折扣价格 | float | 是 |
| total | 总价格 | float | 否 |
| discounttotal | 折扣总价格 | float | 是 |
| type | 支付类型 | int(11) | 是 |
| status | 状态 | varchar(200) | 是 |
| address | 地址 | varchar(200) | 是 |
| tel | 电话 | varchar(200) | 是 |
| consignee | 收货人 | varchar(200) | 是 |
| logistics | 物流 | longtext | 是 |
| goodtype | 商品类型 | varchar(200) | 是 |
表4.8 收藏表
|-----------|--------------------|--------------|---|
| 字段 | 注释 | 类型 | 空 |
| id (主键) | 主键 | bigint(20) | 否 |
| addtime | 创建时间 | timestamp | 否 |
| userid | 用户id | bigint(20) | 否 |
| refid | 收藏id | bigint(20) | 是 |
| tablename | 表名 | varchar(200) | 是 |
| name | 收藏名称 | varchar(200) | 否 |
| picture | 收藏图片 | varchar(200) | 否 |
| type | 类型(1:收藏,21:赞,22:踩) | varchar(200) | 是 |
| inteltype | 推荐类型 | varchar(200) | 是 |
表4.9 管理员表
|----------|------|--------------|---|
| 字段 | 注释 | 类型 | 空 |
| id (主键) | 主键 | bigint(20) | 否 |
| username | 用户名 | varchar(100) | 否 |
| password | 密码 | varchar(100) | 否 |
| role | 角色 | varchar(100) | 是 |
| addtime | 新增时间 | timestamp | 否 |
管理员功能实现
5.1.1 菜品信息管理
图5.1 即为编码实现的菜品信息管理界面,菜品信息包括口味,预计时间,价格等信息,管理员新增菜品,更改登记错误的菜品信息,查看菜品的用户评论信息。

会员管理
图5.2 即为编码实现的会员管理界面,会员信息包括姓名,邮箱,手机等信息,管理员能够使用修改功能对有错误数据的会员信息进行修改,以及查询会员资料等。

已完成订单
图5.3 即为编码实现的已完成订单界面,已完成订单信息包括支付类型,价格等信息,管理员除了可以查看已完成订单详情之外,也能删除需要删除的已完成订单。

会员 功能实现
5.2.1 菜品信息
图5.6 即为编码实现的菜品信息界面,会员通过查看菜品介绍来了解菜品,会员可以在菜品信息界面的下方评论区域发布对菜品的评论,会员点击购买按钮即可实现对菜品的下单购买。

确认下单
图5.7 即为编码实现的确认下单界面,会员确认购买的菜品信息以及数量信息是否正确,查看需要支付的价格并支付。

我的订单
图5.8 即为编码实现的我的订单界面,会员如果并没有支付订单,则可以在未支付模块支付,会员也能查看其他状态的订单。

结 论
由于本人学习的是计算机方面的专业,学习了一定的开发知识,因此,对于开发一款已经确定了课题的餐厅点餐系统,从功能需求,功能模块划分,数据库的选择与设计,编程语言的确定,系统界面的布局和设计等知识,我都有个大致的思路。我运用已经具备的理论知识,加上后期从网络渠道获取的相关技术知识,能够在系统完成开发后期,编写相应的系统文档。
餐厅点餐系统制作期间,我也遇到过一些难题,模块拆分不够精细,以及数据表需要设计几张表,还有对于开发技术的深度理论学习还不充分等,不过我能够通过网络或者通过学院提供的图书馆寻求解决办法。比如在不知道具体功能的情况下,我从网上下载了很多的与餐厅点餐系统相关的程序,分析了它们的功能之后,我再结合即将开发的餐厅点餐系统进行综合分析,选取了适合餐厅点餐系统的功能部分,再具体模块具体分析,设计专属项目功能。对于数据表的设计,先在图书馆学习,然后查看相似系统对于数据表的结构设计等知识,然后在本系统功能确定的情况下,结合本系统设计了配套的数据表,对于难度最大的开发技术部分,这是需要大量时间调试的,一般都是对基础数据的增加,更新,查询或修改方面的代码,然后把本系统能够运用的代码部分在简单更改后进行使用,又经过了简单的测试工作,最终呈现出一个完整的能够解决用户实际问题的餐厅点餐系统。该系统唯一不足的就是代码方面还有很多重复的部分,不够精简,还有用户操作本系统,对于用户的误操作行为,本系统还不能及时反馈,这也是一大缺点。
餐厅点餐系统完成了,其相应的配套文档也需要进行编写,该文档主要描述餐厅点餐系统是如何进行分析,设计以及实现的,让其他阅读本文档的人增加对该系统的了解,编写文档过程中,由于自己平时对于办公软件的操作不是很频繁,根据学院要求的文档排版格式进行编辑也花了很多时间,在不断学习排版技巧以及对本系统配套文档的反复修改之后,最终在学院规定的时间内进行了文档定稿。
毕业项目各个工作进行到此,我也是收获颇丰,正因为自己努力学习知识,积极寻求解决办法,才让我能够提交一个完整的作品。制作毕业项目让我又得到了成长,不仅是专业知识的增加,也学到了解决问题的能力和方法。