外卖小程序的研究与开发ssm+论文源码调试讲解

2系统关键技术

2.1微信小程序

微信小程序,简称小程序,英文名Mini Program,是一种全新的连接用户与服务的方式,可以快速访问、快速传播,并具有良好的使用体验。

小程序的主要开发语言是JavaScript,它与普通web的开发有很多相似之处。小程序和普通网页开发并不是相同的东西,是有差异的。网页开发的渲染线程和脚本线程是互斥的,而在小程序中,确实分开的,分别在不同的线程之中运行。网页开发的工作者可以运用各种浏览器暴露出来的DOM API,进行DOM选中和操作,但小程序不行,它并没有一个完整的浏览器对象,因此缺失DOM API和BOM API。这样的差别使得前端开发中经常用到的一些库是无法在小程序中运行的。另外,网页开发的工作者在开发网页时所要面对的环境是在各式各样系统上运行的各式各样的浏览器,,而小程序只,只需面对iOS和Android这两道操作系统下的微信就足够了。

小程序和传统的APP相比,有着开发成本更低,获客成本更低,开发周期更短,发展空间更大等的优点。不过,为了体现“用完即走”、“无需安装”等理念,小程序的功能、性能还有大小都受到了制约,可以说是各有利弊。

2.2微信小程序API接口

微信小程序API接口是腾讯公司为了微信小程序和微信公众号提供的接口文档,里面包含了各种需要使用的接口技术[7],例如本项目用到的获取微信用户信息(wx.getUserInfo)、蓝牙通讯传输功能、网络请求(wx.request)、定位功能等,总的来说,小程序API是满足一个程序开发的大部分接口。

2.3 JavaScript简介

JavaScript是一种在现在都极为流行极为热门的脚本语言,最早是在HTML网页上被使用,使用JavaScript,我们可以给HTML网页添加更是各样的动态功能,并且给这些功能设置好不同的触发动作,通过用户在浏览器上的各种操作进行触发。

随着时代的发展,JavaScript的用途也越来越多,例如:将动态文字嵌入到HTML页面之中,读写HTML元素、在数据被提交到服务器之前检验数据等等。而且,不同于服务器端脚本语言,JavaScript并不依赖于操作系统,无需访问数据库,只需要浏览器的支持,有效的减轻了服务器的负担。

2.4 MYSQL数据库

MySQL 是关系型数据库管理系统的代表, 因为MySQL是其免费开源的,而且MySQL的功能已经足够用对于学习和中小型企业来讲,所以开发中小型网站都会选择MySQL作为网站的数据库。[5]

MySQL具有开放性,它是一种关系型数据库管理系统,并且它的源代码可以被大众所熟知[3]。由于MySQL是开放源代码的,因此,只要经过授权就可以在自己需求的基础上对其进行修改。MySQL因为其固有的特点而备受关注,它具有很强的适应性,并且十分可靠,查询速度快。MySQL安装起来非常方便,且数据存储量大,不需要事务化处理。Sql语言拥有很多的方法,在项目中编写sql语句时使用起来是非常方便的,不会像其他语言那样需要编写更多的语句。正因为MySQL使用sql语言进行数据库管理,所以它收到了大多数程序员的热爱。

3系统分析

3.1可行性分析

在软件开发第一阶段时,就应该对整个系统进行一次可行性分析。在开发进行过程中,并不是所有的问题都能在预计的范围内解决。通过可行性分析可以提前从中发现问题,解决问题,从而避免财力、人力和物力的浪费。

3.1.1 技术可行性

本外卖小程序基于微信平台,采用微信开发者工具和MYSQL数据库进行开发设计,作为计算机专业学生,在学校期间就接触到许多关于编程方面的知识,当然也包括各种编程软件,对他们的了解度也比较系统,所以技术开发上面还是有一定把握。

3.1.2经济可行性

经济可行性主要是研究和分析系统的投入和产出的关系,非常明了问题不能产出大于投入。由于自己本身就是学生,还没有正式参加工作,金钱上面一直都处于缺乏状态。所以在开发程序过程中,我是不会花太多经济成本在上面的。针对开发软件和数据库,还有界面设计等在百度上面就可以直接下载,然后根据各种安装视频进行安装,这些资源都是免费的,程序编码阶段使用的源代码在百度上面可以轻松获得,在有网络的环境下就能下载下来,不需要支付任何费用,经济成本很低。所以系统在开发人力、财力要求不高,具有经济可行性。

3.1.3操作可行性

在设计之初,我在网上参考了许多基于微信小程序的界面布局设计,发现该系统界面展示比较简单,功能罗列齐全,操作流程简单明了,系统用户不用担心不会操作,系统各个功能模块都会有相应的提示,一看就明白,实在不知道的话,稍微指点就能上手,上手速度很快,时间不会耽误太多。

3.1.4时间可行性

从2020年11月份我们在学校就没有课程了,同学们大部分选择找工作实习了,我也是在其中。一边找工作的同时,一边忙着完成毕业设计工作。对于我本人来讲,目前的情况是白天我要上班参加实习工作,只有晚上我才有时间完成论文编写工作。论文答辩是在2021年5月份左右,将近半年时间来完成毕业设计,时间上还是很充分。

经过上面的分析,此次开发的系统从经济上、从技术上、从操作上、从时间上考虑都能过关。说明自己要开发的外卖小程序可行性是完全可行,操作简单,时间、金钱上面毫无压力,该系统开发是完全可行。

3.2系统性能分析

一个良好优秀的程序不仅仅是需要能够实现它的基本功能,还需要保证系统的性能,在开发本系统时要求达到以下几点性能方面的需求。

(1)良好的操作体验。一款优秀的软件,不仅仅是功能强大,还需要让使用者有一个良好的体验。在程序开发的过程当中开发者需要无数次的去模拟使用者可能会出现的操作,尽可能地将每一种用户操作都考虑到。从而做到简化操作,提升用户体验,避免繁杂的操作使得使用者对于应用程序产生负面印象,有时候也能提供更加智能、一键化操作提升使用者对软件的好感。

(2)创新性。更加创新和新颖的软件内容。更多新颖的应用内容能在极大程度上保留住用户,每个人都有很大的好奇心,看到一款新的应用程序,用户第一次可能会出于好奇心而下载使用,但这却无法保留住这批用户,需要应用程序不断的有更加创新的内容或更加新颖的创意才能吸引住用户持续的使用保留应用,虽然可以通过一些推广平台来推广,但是如果一款应用内有任何新意,用户也是会很快卸载掉的,所以一定需要软件能有很新的东西才行,有时候是新颖的内容,也可以是很创新的功能操作,也可以在软件内有一些活动都可以。

(3)良好的稳定性。将使用软件过程中出现的意外情况降到最低。这里的意外是指在用户体验使用程序的时候出现的问题,比如程序未响应问题、程序闪退崩溃等等问题,所以尽力要将程序多多测试几遍使得发生这种情况的概率降到最低。

3.3 系统功能分析

本外卖小程序主要满足3种用户的需求,这3种用户分别为管理员、商家以及用户,下面将对这三类用户分别进行功能需求分析方面的阐述。

(1)管理员可登录系统后台,对系统进行全面管理,管理员登录主要功能模块包括个人中心、用户管理、商家管理、菜品信息管理、菜品分类管理、系统管理以及订单管理。管理员用例如图3-1所示。

图3-1 管理员用例图

(2)商家登录后主要功能模块包括个人中心、菜品信息管理、菜品分类管理以及订单管理。商家用例如图3-2所示。

添加图片注释,不超过 140 字(可选)

图3-2 商家用例图

(3)用户通过微信客户端可进入本外卖小程序,注册登录后主要功能模块包括首页、商家、菜品信息以及我的(我的收藏管理、用户充值、购物车以及我的订单)。用户用例图如图3-3所示。

图3-3 用户用例图

3.4系统流程分析

3.4.1注册流程

未有账号的用户可进行注册操作,注册流程图如图3-4所示。

添加图片注释,不超过 140 字(可选)

图3-4 注册流程图

3.4.2登录流程

为了保证系统的安全,要使用本系统必须进行登录操作,用户登录流程图如图3-5所示。

图3-5登录流程图

3.4.3添加信息流程

在添加信息时,系统编号自动生成,系统首先判断添加的信息是否合法,合法则添加成功,反之重新输入。添加信息流程图如图3-6所示

图3-6 添加信息流程图


4系统设计

4.1系统设计要求

(1)软件功能清晰明了,简化用户操作,提升使用者体验,减少下拉菜单这种降低体验的操作。

(2)软件的功能要尽量完整,也要全面。要求能够实现查看菜品、外卖点餐等。

(3)经常的在以后版本更新完善软件,使得软件保持一个新鲜度,也可以做一些活动来促进用户使用软件。

(4)减少软件使用过程中出错,做好优化,遵循开发逻辑,降低bug的产生率以提升用户体验。

4.2系统结构设计

系统的设计和划分是系统的核心研究问题,以确定整体结构和功能模块。该系统的结构化设计的思想,是自顶向下的方式将系统分成若干个子系统,以及反过来的子系统分成模块,其被划分成子模块,层划分各计算机可执行模块可迄今用作一个单独的程序。

本外卖小程序结构图如图4-1所示。

添加图片注释,不超过 140 字(可选)

图4-1 系统功能模块图

4.3系统顺序图设计

4.3.1 登录顺序图

用户在登录时,首先进入系统登录窗口,用户需要输入用户名和密码,点击登录按钮进行登录操作,系统会以用户名和密码为参数在数据库中进行登录信息的验证,验证成功则登录成功,进入对应用户主界面。登录模块顺序图如图4-2所示。

图4-2 登录顺序图

4.3.2 注册顺序图

未有账号的用户可进入注册界面进行注册操作,在注册界面输入注册信息,点击提交按钮,系统首先判断用户名是否存在,存在则提示重新输入,不存在则验证注册信息是否正确,正确则在数据库中添加注册数据,提示注册成功。用户注册模块顺序图如图4-3所示。

图4-3 注册顺序图

4.4数据库设计

数据库技术是资源管理最好的方式。数据库设计可以创造出属于自己的良好的设计方式,建立系统。它可以使系统准确的把数据库中的信息提取出来并且加以应用来满足所有人的需要。数据库的选择要考虑多方面的因素:如用户更适合使用哪种数据库;具体的功能比较;各自的性能优劣分析;相互之间的兼容性;平台的支持应用性;相关的技术支持。本设计采用 MySQL,更加适合该系统的完成。

4.4.1数据库概念结构设计

数据库概念结构设计通俗来说就是把前面所做的需求分析报告转变为抽象的信息结构,数据库概念结构设计相比数据模型要更加稳定、抽象和独立。它的特点有方便修改、能够容易理解、转换成层次、关系等数据模型变得更加容易,对现实世界反映客观真实充分等。数据库设计这块,在描述概念模型工具的选择上通常是用E-R模型(实体-联系模型)表现出来。E-R模型这个数据建模工具它被广泛的使用在数据库设计中,它是一种针对用户的表达方式,没有任何DBMS约束。构成该模型的成分有属性、实体集及联系集。矩形框表示实体集,椭圆形表示属性,菱形框表示实体与实体的联系。下面我们展示外卖小程序的主要的实体图。

1、管理员实体属性图如图4-4所示

图4-4 管理员实体属性图

2、菜品实体属性图如图4-5所示

图4-5 菜品实体属性图

3、订单实体属性图如图4-6所示

图4-6 订单实体属性图

4、商家实体属性图如图4-7所示

图4-7 商家实体属性图

5、用户实体属性图如图4-8所示

图4-8 用户实体属性图

4.4.2数据库逻辑结构设计

数据库的逻辑结构的设计需要将前面概念设计得到的E-R图转换成关系模型。接着就是优化关系模型,逻辑结构设计的过程表现如下

 

图4-4 逻辑结构设计的过程

优化关系模型有许多方式,这些方式包括了对数据之间的依赖进行确定;处理关系模式间的数据依赖,一些多余的联系需要及时清理;要明白和界定各个关系模式在第几范式;关系模式的分解或合并处理也是必要的。设计中对关系模型的优化就可以按照上述提示进行操作。

本次开发的外卖小程序它的数据结构就比较清晰明了。开发出来外卖小程序的后台数据库是由许多的数据表组成的,下面我们将选取一部分数据表进行具体描述:

表4-1 users管理员信息表

字段名称

字段意义

字段类型

字段长度

是否主键

能否为空

id

编号

bigint

20

是

否

username

用户名

varchar

100

否

是

password

密码

varchar

100

否

是

role

角色

varchar

100

否

是

addtime

添加时间

timestamp

否

是

表4-2 caipinxinxi菜品信息表

字段名称

字段意义

字段类型

字段长度

是否主键

能否为空

id

编号

bigint

20

是

否

addtime

添加时间

timestamp

否

是

caipinmingcheng

菜品名称

varchar

200

否

是

caipinfenlei

菜品分类

varchar

200

否

是

tupian

图片

varchar

200

否

是

caipinjieshao

菜品介绍

longtext

否

是

shangjiazhanghao

商家账号

varchar

200

否

是

shangjiamingcheng

商家名称

varchar

200

否

是

dianpuming

店铺名

varchar

200

否

是

thumbsupnum

赞数

int

11

否

是

crazilynum

踩数

int

11

否

是

clicktime`

最近点击时间

datetime

否

是

clicknum

点击次数

int

11

否

是

price`

价格

float

否

是

表4-3 orders订单信息表

字段名称

字段意义

字段类型

字段长度

是否主键

能否为空

id

编号

bigint

20

是

否

addtime

下单时间

timestamp

否

是

orderid

订单编号

varchar

200

否

是

tablename

商品表名

varchar

200

否

是

userid

用户编号

bigint

20

否

是

goodid

商品编号

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

否

是

表4-4 shangjia商家信息表

字段名称

字段意义

字段类型

字段长度

是否主键

能否为空

id

编号

bigint

20

是

否

addtime

添加时间

timestamp

否

是

shangjiazhanghao

商家账号

varchar

200

否

是

mima

密码

varchar

200

否

是

shangjiamingcheng

商家名称

bigint

20

否

是

dianpuming

店铺名

bigint

20

否

是

dianpudizhi

店铺地址

varchar

200

否

是

lianxiren

联系人

varchar

200

否

是

lianxifangshi

联系方式

varchar

200

否

是

shangjiatupian

商家图片

varchar

200

否

是

xiuxishijian

休息时间

varchar

200

否

是

shangjiajieshao

商家介绍

longtext

否

是

money

余额

float

否

是

表4-5 yonghu用户信息表

字段名称

字段意义

字段类型

字段长度

是否主键

能否为空

id

编号

bigint

20

是

否

addtime

添加时间

timestamp

否

是

zhanghao

账号

varchar

200

否

是

mima

密码

varchar

200

否

是

xingming

姓名

bigint

20

否

是

nianling

年龄

bigint

20

否

是

xingbie

性别

varchar

200

否

是

shouji

手机

varchar

200

否

是

zhaopian

照片

varchar

200

否

是

money

余额

float

否

是


5 系统的实现

5.1微信端功能模块的实现

5.1.1注册登录界面

未有账号的用户可进行注册操作,注册后可进入登录界面进行登录系统,注册登录界面展示如图5-1所示。

添加图片注释,不超过 140 字(可选)

 

图5-1 注册登录界面图

5.1.2首页界面

用户通过微信平台打开本外卖小程序,登录后进入了系统的首页,在首页用户可查看所有菜品,首页界面展示如图5-2所示。

 

图5-2 首页界面图

5.1.3商家界面

用户在商家界面可查看所有商家,并可选择查看详情,商家界面展示如图5-3所示。

 

图5-3 商家界面图

5.1.4菜品详情界面

用户可选择菜品查看菜品详情信息,并可进行加入购物车和立即购买操作,菜品详情界面展示如图5-4所示。

添加图片注释,不超过 140 字(可选)

 

图5-4 菜品详情界面图

5.1.5购物车界面

用户在购物车界面可查看购物车已有菜品信息,并可对其进行删除、修改数量或者结算操作,购物车界面如图5-5所示。

 

图5-5 购物车界面图

5.1.6我的订单界面

用户在我的订单界面可查看个人订单信息,我的订单界面如图5-6所示。

 

图5-6 我的订单界面图

5.1.7用户信息界面

用户可修改个人信息,用户信息界面如图5-7所示。

 

图5-7 用户信息界面图

5.2服务端功能模块的实现

5.2.1服务端登录界面

管理员和商家要想进入对于角色后台必须进行登录操作,服务端登录界面展示如图5-8所示。

 

图5-8 服务端登录界面图

5.2.2用户管理界面

管理员可进行查看、修改和删除用户信息,用户管理界面展示如图5-9所示。

 

图5-9 用户管理界面图

5.2.3商家管理界面

管理员可增删改查商家信息,商家管理界面展示如图5-10所示。添加商家界面展示如图5-11所示。

 

图5-10商家管理界面图

 

图5-11添加商家界面图

5.2.4菜品信息管理界面

商家可增删改查菜品信息,管理员可查看、修改和删除菜品信息,菜品信息管理界面展示如图5-12所示,添加菜品信息界面展示如图5-13所示。

 

图5-12 菜品信息管理界面图

 

图5-13 添加菜品信息界面图

5.2.5菜品分类管理界面

商家可增删改查菜品分类信息,管理员可查看、修改和删除菜品分类信息,菜品分类管理界面展示如图5-14所示。

 

图5-14 菜品分类管理界面图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/diannao/59595.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

花了6000多考下PMP却不会用?你真的懂PMP实际用法吗?

大家都已经下载了PMP的电子版证书吗?虽然拿到了电子证书,但很多人又开始期待纸质版证书。不要着急,考试后需要6-9个月才能拿到纸质版证书,可能还需要等一段时间。 电子证书和纸质证书具有同样的有效性,需要使用证书时…

Spring面向切面编程

目录 1.AOP概述及Spring AOP实现原理 AOP概述 AOP的应用场景 AOP的作用 Spring AOP概述 Spring AOP的实现原理 Spring AOP中Advice的分类 2. 通过xml配置实现AOP 实现步骤: 新增模块: 导入相关依赖: 新增实体类User 新增业务类UserS…

MySQL 和 PostgreSQL 的对比概述

MySQL 和 PostgreSQL 是两种广泛使用的开源关系型数据库管理系统(RDBMS),它们各自有其特点和优缺点。以下将从多个方面对它们进行详细比较。 1. 介绍 MySQL: MySQL 由瑞典公司 MySQL AB 开发,2008 年被 Sun Microsyst…

[C++] GDB的调试和自动化检测

文章目录 GDB基本使用1. bazel的debug过程2. line-tables-only的使用 Reference GDB基本使用 参考文档: https://zhuanlan.zhihu.com/p/655719314 1. bazel的debug过程 需要带--copt-g --copt-ggdb选项进行编译 // bazel build --stripnever --copt-g --copt-ggd…

urllib3.exceptions.Proxyschemeunknown: Proxy URL had no scheme

这个错误信息 urllib3.exceptions.Proxyschemeunknown: Proxy URL had no scheme, should start with http:// or https:// 表示你在使用 urllib3 库设置代理时,提供的代理 URL 没有包含正确的协议方案(scheme)。在 URL 中,方案部…

Javaweb选课系统-开源计划-起源-001-完全免费开源

项目部署,效果视频 https://www.bilibili.com/video/BV1LMDUY8Ef7/?spm_id_from333.880.my_history.page.click&vd_source17d16b2e328f19328e077e9cb07565ef项目地址: https://gitee.com/lucky-six/Javaweb-xuanke

微服务架构面试内容整理-微服务与传统单体架构的区别

微服务和传统单体架构的主要区别在于架构设计和服务管理方式: 1. 架构设计: ● 单体架构:整个应用作为一个整体构建,所有功能模块紧密耦合在一起,通常在一个代码库中管理。 ● 微服务架构:应用被拆分为多个独立的服务,每个服务专注于特定的业务功能,可以独立开发和部署…

【简信CRM-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

SAP 学习文章

SAP PP模块后台表关系图_sap常用表及关系图-CSDN博客 SAP_PP模块流程_sap中pp模组指令-CSDN博客

Linux云计算 |【第五阶段】PROJECT3-DAY1

主要内容: 跳板机(堡垒机)的概念、部署JumpeServer 一、跳板机(堡垒机)的概念 跳板机(Jump Server 或 Bastion Host)是一种网络安全设备或服务器,也称堡垒机,是一类可作…

宠物空气净化器哪个牌子好?希喂、352两款产品吸力、噪音真实测试

我身为养宠博主,这些年用过不少宠物空气净化器,花费了1w,对很多产品都进行过测评。正值双十一,很多朋友都在问我宠物空气净化器到底有没有必要买?答案毫无疑问是有必要! 相比较于其他清理工具,…

Clang-Tidy 是什么?如何让你的代码更干净无瑕

Clang-Tidy:让你的代码更干净,让潜在问题无处遁形 在现代软件开发中,代码质量不再仅仅体现在功能实现上,还包括其可维护性、可读性和潜在问题的检测。clang-tidy 是一款功能强大的静态分析工具,专为 C/C 代码而生&…

Identity (Intentional Equality) vs. Equivalence (Extensional Equality)

在《何谓相等》一文中,已对在类型论中的相等概念进行了描述,即如两对象是同样地构建出来的,那么两对象相等(Equals)。如果两对象不相同,但经过简化转换后,形成相等的对象,那么&#…

微服务中常用分布式锁原理及执行流程

1.什么是分布式锁 分布式锁是一种在分布式系统环境下实现的锁机制,它主要用于解决,多个分布式节点之间对共享资源的互斥访问问题,确保在分布式系统中,即使存在有多个不同节点上的进程或线程,同一时刻也只有一个节点可…

【算法】(Python)动态规划

动态规划: dynamic programming。"programming"指的是一种表格法,而非编写计算机程序。通常解决最优化问题(optimization problem)。将问题拆分成若干个子问题,求解各子问题来得到原问题的解。适用于多阶段…

PySpark本地开发环境搭建

一.前置事项 请注意,需要先实现Windows的本地JDK和Hadoop的安装。 二.windows安装Anaconda 资源:Miniconda3-py38-4.11.0-Windows-x86-64,在window使用的Anaconda资源-CSDN文库 右键以管理员身份运行,选择你的安装路径&#x…

深度学习经典模型之ZFNet

1 ZFNet 1.1 模型介绍 ​ ZFNet是由 M a t t h e w Matthew Matthew D . Z e i l e r D. Zeiler D.Zeiler和 R o b Rob Rob F e r g u s Fergus Fergus在AlexNet基础上提出的大型卷积网络,在2013年ILSVRC图像分类竞赛中以11.19%的错误率获得冠军(实际…

LLMs之Calculate:利用大语言模型技术基于文本内容实现数字计算能力的简介、常用方法、代码实现之详细攻略

LLMs之Calculate:利用大语言模型技术基于文本内容实现数字计算能力的简介、常用方法、代码实现之详细攻略 导读:在基于大语言模型(LLM)技术实现数字计算能力的背景下,文本内容的理解和计算过程涉及多个领域的交叉技术,包括自然语言处理(NLP)、机器学习、以及数值计算。…

2024网盘搜索引擎合集推荐:高效搜索资源的利器

2024网盘搜索引擎合集推荐:高效搜索资源的利器 在这个信息爆炸的时代,找到合适的资源变得越来越重要。以下是一些网盘搜索引擎的推荐,它们可以帮助您快速找到所需的文件和资料。 咔帕搜索:简单高效的云盘搜索 网址:…

duxapp放弃了redux,在duxapp状态实现方案

全局状态 全局状态是一个很实用的功能,例如管理用户信息,组件间状态共享等功能都需要用到全局状态,react有很多成熟的全局状态管理工具,但是很多写起来太过麻烦,duxapp提供了几种应对不同场景的全局状态的方案&#xf…