基于微信小程序的炸鸡外卖系统的设计与实现

摘  要:在计算机技术快速发展之前,人们如果想在炸鸡店进行点餐是非常麻烦的,当遇到排队点餐的人较多的情况是需要等候很长时间的,其次之前的点餐记录方式都是通过纸张进行的,每张餐桌都有一个桌号,服务员通过记录在纸上这种方式保存每桌客人点的餐,但这种点餐及交易方式效率很低,因为一个炸鸡店中负责点餐的服务员通常是有限的,人们需要进行排队等待一对一的点餐,而在炸鸡店就餐的客户一般都是对时间比较看重的,客户肯定希望用最快的时间完成点餐和就餐。其次此交易方式的时效性比较差,比如某种菜品售罄之后负责点餐的人是不知道的,有时候就需要多次往返于后厨和前厅去确认餐品是否在售,往往因为这种情况会影响客户的就餐体验。

基于上文所述,在毕业设计进行选题的时候,我选择的课题为《基于微信小程序的炸鸡外卖的设计与实现》。本系统的前台模式是当下用户基数大且很流行的微信小程序技术,后台的开发语言使用的是PHP技术,而数据库选择的是小型数据库MYSQL。本系统提供在线点餐、菜品查询、订单管理等多种功能,让人们不需要再通过手写就可以进行餐品信息的查看和最终的结账,在极大地满足用户们点餐和结账的需求的同时,还设置了在线留言及系统公告等功能,让用户可以更好地与商家建立连接,也可以帮助商家更好地进步。

关键字:炸鸡店;点餐;PHP;MYSQL

1 背景与意义

1.1 课题背景

随着我国经济的发展,人们早已战胜了贫穷、饥饿等困难,人们的生活水平逐渐走向了小康。在之前经济不够发达的年代,人们往往都是在家自己做饭的,可能一年到头都下不了几次馆子,但随着人们生活质量的提高,点外卖或者去快餐店吃饭已经成了稀松平常的事情。在饭店进行点餐的时候往往会遇到一些问题,比如等候的太久或者点餐点错等,这些因为店员失误或者考虑不周导致的问题都会影响客人就餐的心情,很可能导致客人愤然离场或者引发更大的冲突或矛盾。所以拥有一套专业且完整的点餐系统是非常重要的事情,它可以保证整个点餐流程完整和可追溯,可以避免因为人工点餐出现的一些错误,保证用户的点餐体验。所以在进行毕业设计选题的时候,我希望用大学四年学习的完整的软件工程学的知识体系和编程技术开发一款基于我小程序的炸鸡店点餐系统,希望可以解决当前很多餐馆中遇到的点餐难的问题。

对于炸鸡外卖的点餐途径来说,需要一个人人都会用并且稳定成熟的工具,而微信小程序无疑就是最适合的。通过查询官方的资料得知,微信这个软件在全国已经超过10亿用户了,这意味着几乎人人都会使用微信。有着如此庞大的使用者基数,再加上微信小程序这几年快速地发展,使得各个领域都需要微信小程序。微信小程序的开发使用其专业的工具---微信开发者工具即可完成,制作出来的小程序不管在安卓系统还是在IOS系统中都能正常使用,所以本系统选择了微信小程序这种开发模式。

1.2 国内外研究现状及发展趋势

随着当今社会.计算机技术发展越来越迅速,传统地使用笔和纸进行点餐的方式逐渐没落,这是不能避免的。其实不只是餐馆中点餐的方式,其实人们生活中的各个领域都发生了改变,人们的生活质量也在不断提升。最初的时候人们都是通过文字进行记录的,这种方式慢而且容易出错,后来慢慢出现了使用平板电脑进行点餐的方式,但使用的都是C/S的客户端程序,安装比较麻烦,而且对硬件也有要求,目前国内比较流行的方式是使用微信客户端的小程序进行点餐。

1.3 本文研究思路

本系统的开发遵循着软件工程学的设计原则,在决定自己的毕业设计做什么之前会进行项目的前期调研和可行性分析,如果可行的话就对项目进行立项。在项目立项之后会对整体的功能进行需求分析和数据库设计,这可以保证后期编码的顺利进行。在所有的前期准备工作完成之后会对所有的功能模块进行计划,保证在某一个时间段完成对应的功能。最后就是项目的编码与测试,这两者最好可以同时进行,在保证开发效率的同时还能提升测试的准确性。

2 技术与工具介绍

2.1 技术介绍

本系统的前台编程语言为微信小程序开发技术,所用的编程工具就是微信开发者工具;而后端的编程语言为PHP,编程工具为Dreamweaver;系统使用的数据库为小型的关系型数据库MYSQL,使用的数据库管理软件为Navicat For MYSQL,下面来一一的进行介绍。

2.1.1 WXML

WXML是小程序针对自身框架设计的一套标签语言,就类似于网页程序中的HTML,WXML语言可以将文字、图片或者视频展现在微信小程序上,但仅仅使用小程序的标签排列会使得界面杂乱无章,所以本系统的前台页面还使用了WXSS技术。WXSS是层叠样式表的缩写,编程人员可以使用WXML+WXSS的布局方式对小程序的界面进行美化,这样对界面后期的维护和更新非常方便,如果有需要增加的内容就不需要再次书写样式了,只需要在界面中使用已有的样式即可。

2.1.2 PHP

本系统的后台语言使用的是PHP,PHP是一种动态编程语言,可以对数据进行增删改查等操作。在JSP、ASP、PHP等动态语言出现之前,很多网站就只能用静态的HTML语言宣传自己的网站,但这种网站不具备数据的存储操作功能,因为无法连接数据库,本系统使用的PHP语言可以与HTML语言有效的结合起来,不仅可以将各类素材展现在页面上,还可以将数据保存在数据库中。选择PYTHON技术开发主要因为其有以下几个优点:

(1)首先就是因为PHP的结构清晰、易于理解,而且JSP是面向对象的编程语言,可以使用封装、继承和多态等技术,可以使用类和对象的思想解决很多问题,可以极大的提高编码效率。

(2)选择PHP的第二个原因就是它在浏览器中的响应速度较快,可以提高本系统运行的速度。

(3)选择PHP作为本系统开发技术的第三个原因就是它具备较为稳定的连接数据库的方法,可以使数据稳定地进行存储和更新。

2.1.3 JavaScript

JavaScript是一种脚本语言,它出现于1995年,JavaScript技术与Java技术其实是没有关联的,JAVA是一种后端的面向对象的编程技术,而JavaScript是一种前端设计的语言,最常用的就是在进行表单验证。在JavaScript应用于前端页面之前,在用户进行注册或者登录时候进行的表单验证都是通过服务器进行的,这样非常耗费网络资源,而JavaScript技术的最大优点就是可以将表单验证放在浏览器中进行。JavaScript除了可以进行表单验证外,还可以进行一些特效的展示,比如界面中的轮播图及一些动画效果等。

2.1.4 MYSQL数据库

本系统用来进行数据存储的数据库是MYSQL数据库,基本的使用与其他数据库相似。都可以使用表进行数据的存储。除此之外还可以使用存储过程、事务、触发器等对象。以下是MYSQL的几个优点:

(1)首先就是因为MYSQL较为小巧、易于安装和维护,而且MYSQL是完全开源并且免费的,非常适合计算机专业的学生作为学习工具使用,虽然MYSQL小巧但它的查询速度、执行效率都是非常快的。

(2)选择MYSQL的第二个原因就是它具有稳定的查询和存储机制,可以避免因为数据库的原因导致系统的数据出错。

(3)选择MYSQL作为本系统数据库的第三个原因就是它具备较为稳定的与程序进行连接的优点,可以使数据稳定地在系统内进行存储和更新。

2.2 开发工具介绍

微信开发者工具是微信团队研发的一款编程软件,可以帮助开发人员更好地完成开发工作,因为可以通过电脑模拟手机端微信的运行效果。除此之外,微信开发者工具对于开发者来说非常友好,提供了代码提示、自动缩进及纠错等功能。

3 系统分析

3.1 系统可行性分析

系统的可行性分析主要目的是在系统立项开始前对系统所做的一系列的评估,综合各项评估决定是否对该项目进行立项。一般来说一个系统的可行性分析主要分为技术可行性、操作可行性及经济可行性等。

3.1.1 技术可行性

系统的技术可行性主要是在开发开始前对本系统所使用的开发环境、开发技术等进行分析,对所有可能遇到的问题进行预估等。本系统的开发环境为自己的个人电脑,所有使用的工具都是平时学习时用过的,所用的开发技术大多数都是大学期间学习过的,如果遇到没有涉及的领域可以通过在CSDN、博客园等技术论坛寻找答案,也可以咨询指导老师。所以从技术层面分析,本系统是可行的

3.1.2 经济可行性

    一个系统的经济可行性主要是指网站去除成本后还是否可以盈利,该系统为计算机专业大学生的毕业设计,主要目的是为了使用大学四年所学的知识开发出一个有价值的系统,证明自己可以达到毕业的要求。该项目几乎没有任何成本,因为所有的设备及开发软件都为电脑上已安装的免费版本,该项目为非商业项目,所以从经济可行性上分析,本系统是可行的。

3.1.3 操作可行性

    系统的操作可行性也可以被称为运行可行性,主要对系统运行或操作进行分析。在当前这个电脑和手机走入寻常百姓家的时代,不管是成年人还是小朋友都多多少少对电脑和手机操作略知一二,本系统只要有简单的微信操作常识就可以熟练使用,所以说从系统的操作方面是可行的。

3.1.4 法律可行性

    系统的法律可行性指开发此系统是否在法律允许的范围之内,不可以存在侵权及抄袭等可能。本系统为个人开发的毕业设计程序,不会用作商业用途,系统的代码及设计均由本人完成,不存在侵犯著作权等行为,所以在法律层面系统也是可行的。

3.2 系统需求分析

3.2.1 功能需求

前台:

(1)用户注册登录:用户需要按照相关的法律法规进行注册,注册后才可以使用本系统。

(2)首页模块:网站的前台页面主要对所有菜单进行显示,除此之外还能显示最新的菜品信息、活动公告等。

(3)菜品查询模块:用户通过此模块可以对自己感兴趣的菜品进行精准或模糊查询,查询之后可以进入菜品详情页面,可以进行下单或收藏等操作。

(4)个人后台:用户进入个人后台可以维护个人信息及查看菜品订单信息。

(5)公告活动:用户可以在前台进行公告活动的浏览,可以更好的了解炸鸡店的活动优惠。

(6)在线留言:用户在使用本系统的过程中如果发现订单或者菜品有问题可以通过在线留言与商家进行交流。

前台用户的用例图如下图所示。

后台:

(1)管理员信息维护模块:管理员对此系统非常关键,所以管理员的信息也是需要进行定期维护的。

(2)用户信息管理模块:所有在本网站进行注册的用户信息可以通过本模块进行查询和维护。

(3)菜品类别及菜品信息模块:管理员可以通过本模块添加新的菜品类别或菜品信息,也可以对已有的菜品和类别信息进行修改或删除。

(4)订单及购物车管理模块:用户在前台对菜品进行下单或者加入购物车等操作后,管理员可以通过后台的管理界面查看和管理这些订单。

(5)公告及留言板管理:管理员可以在后台对用户在前台进行的在线留言及公告进行管理。后端管理员的用例图如下图所示。

3.2.1 非功能需求

对于本系统而言,系统的性能及稳定性非常重要,因为本系统涉及到大量的数据分析和数据计算,如果在使用系统期间系统发生崩溃会造成比较大的影响,其次如果不能保证稳定性,则多人共同访问网站时也可能会出现系统崩溃等问题。除了性能及稳定性,安全性对本系统也非常重要,如果不能提高安全性,被一些不法分子或居心叵测的人钻了漏洞,会对本系统及本系统内的用户的个人信息产生信息泄露,所以提高安全性是本系统优先级很高的一个需求。

4 系统设计

4.1 系统功能模块设计

本系统主要分为前台部分和后台部分,前台部分的功能主要是用户进行菜品查询或者加入购物车等操作,除此之外用户还可以对自己的个人信息和订单信息进行维护。后台部分的使用角色为本系统的管理员,功能主要为对已注册的用户信息、系统产生的订单信息、菜品及类别信息进行管理,除此之外还可以对系统内的会员折扣等信息进行维护和管理,系统功能结构图如下所示:

4.2 数据库设计

数据库的设计在整个系统的开发过程中是非常重要的,而且一定要在开始编程之前就对数据库进行设计,这样可以避免编程过程中无谓的返工。比如在进行用户信息显示的开发时,又想突然加上用户权限的功能,这样就要再添加一个列,但数据库发生改变之后所有的代码都需要进行修改,非常的费事费力。在进行数据库的详细设计之前,必须先进行E-R图的绘制,以下为本系统部分的E-R展示。

经过上文对系统功能的需求分析,我认为本系统的数据库应该具有以下表:

  1. 用户信息表,用户注册之后的个人信息会存储在此表中。这个表中的用户ID应设置为主键,除此之外还要有用户名、密码、注册时间等列。

(2)菜品分类及菜品信息表,每样菜品的信息都会保存在此表中,设置两张表的目的是可以使用分类表管理菜品的分类,使用菜品信息表来详细的管理产品的信息。

(3)订单信息表,这张表主要存储系统中的订单信息,当用户或管理员对订单信息进行查看时就需要对此表进行查询。此外,订单信息表中应设置一列来反映当前订单的支付状态,如未支付、支付中和已支付等。

(4)系统公告表,站内新闻表用来保存本系统内的站内公告信息,管理员会定期对本表进行维护,让用户看到最新的公告。

5 系统实现

5.1 用户登录

用户在没有登录自己的用户名之前只能浏览本系统的首页,想要使用其他功能都会弹出对话框,显示请登录,所以使用本系统的第一个前提条件就是需要先完成注册和登录。在右侧先点击注册按钮进入注册界面,按照要求完成注册后在左侧输入自己的用户名和密码即可完成登录。

5.2 查看菜品信息

用户登录首页后点击菜品信息即可进入本功能,进入后可以查看系统的所有菜品,值得注意的是,在用户查看菜品信息的时候可以点击炸鸡菜品的图片,用户点击某一个菜品图片就可以进入菜品详情信息,在菜品详细信息的界面中用户可以进行购买和评价,具体操作如下:

5.3 系统公告浏览

用户在已经登录的情况下在前台首页面中的上方查看系统公告的信息,此功能的数据显示比较简单和直观,使用文字列表的方式对每一个系统的公告和新闻的数据信息进行显示,用户点击某一条公告信息就可以查看公告的详细信息。除此之外,如果想搜索某一个系统公告的相关信息,可以通过数据上方的搜索栏直接通过关键字进行搜索。

 

5.4 在线留言功能

用户点击首页中的在线留言链接可以进入此功能,用户输入自己想要留言的文字后即可在留言界面进行显示,管理员用户看到留言后会及时地进行回复。

 

5.5 个人中心模块

用户点击下方菜单栏中的点个按钮即可进入个人中心模块的界面,在此模块中用户可以查看到自己的头像及用户名等信息,在用户头像的下方还有三个功能,分别是完善自己的个人信息、修改密码及查询评价,具体的效果如下图所示:

 

 

5.6 订单购买界面

用户在选择了自己喜欢的炸鸡菜品后可以对自己的订单信息进行填写,需要输入的有炸鸡类别、购买数量及自己的联系方式等,编号、名称及库存和销量等信息不必输入。具体操作如下:

 

 

5.7 公告管理

  管理员用户通过此功能可以对小程序端的公告信息进行管理,用户首先可以查看所有的公告信息列表,如果数据过多无法通过肉眼找到自己想查看的数据时可以通过上方的搜索栏进行查询,除此之外管理员还可以对公告进行添加、编辑和删除。下图为公告管理界面的效果图。

5.8 用户管理

此功能分为用户信息添加和维护,进行信息添加时需要输入帐号和密码等信息进行提交,第二个功能是上述人员信息查询和维护。

5.9 炸鸡信息管理

炸鸡信息管理模块分为炸鸡信息查看和炸鸡信息管理两个部分,在添加炸鸡信息时必须添加编号、名称等信息,还需要选择位置和上传图片,在添加完成之后可以进入炸鸡信息管理功能,在此功能中可以查看所有已经添加的炸鸡信息,并且可以对其进行查看详情和进行删除修改等操作。在炸鸡信息列表的上方还可以进行某个炸鸡菜品的查找,可以通过编号和名称两种方式进行查找,具体实现效果如下所示:

6 系统测试

6.1 测试目的

简单来说,软件测试的目的是为了发现潜在的功能缺陷。一个画面再漂亮的系统如果有功能缺陷也是无人敢用的,比如本系统的付款功能,如果用户没有经过付款就可以下单,那会造成卖家的损失,同时也会损失大类的网站用户,毕竟一个存在缺陷的系统是没有人愿意使用的。在计算机软件刚刚兴起的时候,人们不太注重软件测试这个环节,其实软件测试是整个软件开发过程中不可忽略的一个组成部分,没有软件测试环节的系统是不健全的系统,是无法投入使用的系统。

当然,目前所有的软件公司与软件从业人员以及非常注重软件测试的工作,大部分的公司都会有一个软件测试部门。测试人员需要根据系统的功能不同进行测试用例的书写,然后根据测试用例进行功能的测试,如果出现了预期结果与测试结果不一致的情况,就需要对代码进行修改,修改过后再进行二次测试。

6.2测试内容

本系统在进行测试的时候选择的主要是自己的电脑和手机,为了保证测试的严谨性也借用了同学的电脑和手机进行测试。性能在整个软件测试阶段是非常重要的,在电脑端我选择了LoadRunner作为性能测试的工具。LoadRunner的使用非常简单,首先需要在LoadRunner中录入自己要操作的功能脚本,然后输入测试次数就可以进行重复的性能测试了。除了使用自动化测试工具之外,大部分的性能测试都是通过多打开几个浏览器窗口进行的,比如测试多人同时访问网站、多人同时进行炸鸡购买的操作。以下为用户注册模块的测试用例及测试结果:

1.用户名:123456 密码123456 确认密码123456

第一条测试数据预期的结果为注册失败,预期的错误提示为用户名必须由六位及以上的字符组成且第一位不能是数字。经过使用LoadRunner的多次自动化测试,最终结果均在预期的结果之中。

2.用户名:zhangsan密码123 确认密码123

对于本系统的注册功能来说,密码必须由六位以上的字符组成,但测试数据中的密码长度为三位。所以,第二条测试数据的预期测试结果为注册失败,提示信息为密码长度不能少于六位。经过多次测试,本条测试用例所属的模块不存在缺陷。

3.用户名:zhangsan 密码123456 确认密码12345

本系统的注册功能使用的表单验证为JavaScript验证,在密码和确认密码这两个密码框中使用了比较验证,JavaScript会比较用户输入的这两个值,如果两者不一致,在浏览器端就无法通过验证,预期的结果为注册失败,错误提示信息为密码与确认密码不一致。经过测试,本模块所对应的代码不存在缺陷。

4.用户名:zhangsan密码123456 确认密码123456

本条测试数据符合本系统对账号的格式要求,预期的测试结果为注册成功,并跳转到用户首页,而最终的测试结果也与之相符。

6.3 测试总结

本系统的测试主要使用的测试方法是黑盒测试,并且多次进行了边界值的测试,比如进行菜品点餐的时候菜品的库存数量小于用户输入的购买数量,再比如用户输入的手机号超过11位等。大部分功能都与书写的测试用例保持一致,但也有一些小的功能缺陷,比如在测试用户结账付款功能的时候,因为本系统存在会员打折功能,但由于在代码中没有进行用户类型的判断,所以就导致无论是否是会员都无法进行打折。除此之外还发现了一些小的缺陷或不足,都根据前期进行的功能规划进行了修改,经过二次测试之后都可以满足系统正常使用。

7 总结

本次毕业设计使用的是微信小程序+MYSQL的开发模式,在结合了自己的生活经验以及对他人进行的调查问卷之后最终完成了系统的开发,并且所有的功能都可以正常使用。在为自己通过四年的学习可以做出一个商业项目的同时也在反思自己开发的这个系统有哪些不足,最终发现在以下几个方面还有待提升点:

1、某些模块的代码结构冗余,代码执行效率差,经过思考发现可以使用面向对象思想中的继承和多态进行改进。

2、数据库的设计较为单一,并且书写SQL查询语句时只用了连接查询和相关子查询等,这会造成查询较多数据时查询速度慢的问题。改进的方法就是使用存储过程和视图来替代复杂的查询语句。

3、用户支付未与支付宝和微信真正进行连接,这方面的知识自己比较欠缺,但经过了解后发现只要在支付宝和微信的官网下载相关的接口与自己系统进行连接就有可能实现真正的在线支付。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

gzxgyzbb

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

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

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

打赏作者

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

抵扣说明:

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

余额充值