【《基于微信小程序的膳食结构搭配系统设计》7200字(论文)】_第1页
【《基于微信小程序的膳食结构搭配系统设计》7200字(论文)】_第2页
【《基于微信小程序的膳食结构搭配系统设计》7200字(论文)】_第3页
【《基于微信小程序的膳食结构搭配系统设计》7200字(论文)】_第4页
【《基于微信小程序的膳食结构搭配系统设计》7200字(论文)】_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于微信小程序的膳食结构搭配系统设计摘要时代在发展,如今的人们不再仅仅纠结于温饱问题,健康问题的被关注度日趋上升。大众追求膳食搭配的同时,对膳食知识匮乏的问题暴露出来,我们急需一个方便、快捷的产品应对这一问题。基于对食材含量信息,根据营养素密度,系统将计算用户的各类营养素含量,推荐合理于膳食结构的食材。本系统基于微信小程序完成的开发,前端采用HTML/CSS/JS模式实现,后端数据的处理主要使用微信开发者工具云开发中的云数据库。本文共六章:第一、二两章介绍膳食结构搭配小程序的开发背景、可行性分析以及需求分析,第三、四、五章分别为系统概要设计、详细设计、实现以及测试,最后为结束语和致谢。关键词:HTML/CSS/JS;营养素密度;微信小程序;云开发。目录TOC\o"1-3"\h\u摘要 可行性分析和需求分析可行性分析经济可行性本系统是基于微信小程序的系统,使用微信开发者工具作为编程工具,并开通云开发,使用免费的云数据库。经济成本较低,具有经济可行性。技术可行性本系统是基于JavaScript开发的,使用常用且稳定的JS+HTML+CSS前端开发模式开发,微信配有微信开发者文档,详细描述微信开发者工具的语法以及使用方法,对初次接触小程序的人来说十分友好。使用的语法WXML和WCSS虽说和HTML、CSS有所区别,基于之前学过HTML和CSS,根据文档,个人开发一个简单的小程序是没有问题的,具有技术可行性。法律可行性本系统由本人独立完成,不存在抄袭或者侵权等违法情况。数据库存储的信息只是用户的身体手动输入的健康信息,不涉及隐私信息,符合中华人民共和国现有法律法规,具有法律可行性。需求分析任务概述与用户有友好交互的前端界面;设计合理的数据库结构;食物含量动态计算; 食材根据营养素密度动态推荐;用户信息的存储;功能描述(1)用户登陆:用户进入“我的”界面必须要进行微信授权登陆,因为要填写信息,填写的信息用于计算每日所需的各种含量,如果没有授权登陆,将无法使用推荐功能,只能进行简单的含量计算。授权登陆后会获取用户的头像和名字。(2)信息的输入:在“我的”界面,将输入性别、身高、体重以及特殊情况(包括糖尿病、高血压、支气管炎、冠心病四种常见慢性病)。(3)计算每日含量:通过用户输入的性别和身高计算出每日所需要的热量、脂肪含量、蛋白质含量、碳水化合物含量、膳食纤维含量。(4)每日摄入食材输入:用户将手动输入自己吃的食材的名称和含量,可以对自己吃的食材进行增删改,点击确定进行计算。(5)食材动态推荐:用户在输入自己吃的食材名称和含量后(也可什么不输入,就是什么都不吃),系统会对比食材的营养素密度和用户接下来所需要补充的营养素密度,找出三种比较适合用户接下来摄入的食材进行推荐。(6)食材列表:用户可以查看所有数据库中的所有食材,食材分为四类:粮食类,蔬菜类,干果类,肉类。点击即可查看每种食物每100克所包含的各种含量。(7)精选文章查看:用户在未登陆的情况下也可以查看,看一些关于膳食搭配的文章,可以点赞,但是没有存入数据库。非功能性描述响应时间:平均相应时间不超过3秒。系统可靠性:要求系统在网络通常的情况下24小时可以正常使用。易用性:系统操作简单,容易上手。数据存储量:食材存储量2G,文章存储量2G,如有扩展可以增加。可扩展性:日后可增加服务器实现扩展。安全性:数据库只对管理员开放,用户之间不共享数据。系统概要设计软件总述膳食搭配系统是微信小程序,未授权登陆的用户可以查看食材、精选文章以及计算摄入含量,授权登陆的用户并且填写信息后,可以得到食材的推荐以及文章的推荐。管理通过登陆小程序开发工具的内容管理网址,对数据库里的数据集进行增删改查。系统功能结构图图3-1为系统客户端主要的功能结构图:客户端系统主要功能结构图图3-2为系统服务端的主要功能结构图,主要包括用户管理、权限管理、数据库管理等:服务端主要功能结构图数据库设计数据库的选择小程序云开发的云数据库,不需要自己建立数据库,与小程序直接相连,有免费额度,对于个人开发完全足够。同时云开发还提供云函数,云函数的使用是完全隔离与客户端的,操作数据库时私密性和安全性足够高。实体属性图用户实体类如下图3-3所示:图3-3用户实体类及其属性的定义图3-3用户实体类及其属性的定义食材实体类如下图3-4所示:食材实体类及其属性的定义新闻实体如图3-5所示:新闻实体类及其属性的定义今日所食实体如图3-6所示:今日所食实体类及其属性的定义数据库表设计本系统的数据库表总有3张,具体是用户信息表,食材信息表和文章信息表,详细信息如下:(1)用户信息(user):用于存储用户信息,每一个登陆授权后的用户有唯一的_openid,用户手动输入自己的性别、身高、体重、特殊情况,将存储到小程序云数据库中。表STYLEREF1\s3SEQ表格\*ARABIC\s11用户信息表字段名字段类型字段注释_idstring自增主键_openidstring用户名usernamestring用户姓名agenumber年龄genderstring性别heightstring身高weightstring体重problemarray特殊情况数组dailyfoodarray今日所食数组表STYLEREF1\s3SEQ表格\*ARABIC\s12今日所食表字段名字段类型字段注释food_namestring食物名称foodnumstring食物重量(2)食材信息表(food),如下表所示,记录存储各种食材的的名称图片以及每100克所含的各种含量。表STYLEREF1\s3SEQ表格\*ARABIC\s13食材信息表字段名字段类型字段注释namestring名称fileIDstring图片地址rlnumber热量dbznumber蛋白质含量tsnumber碳水化合物含量zfnumber脂肪含量ssxwnumber膳食纤维含量flsring食物分类(3)新闻信息表(new),如下表所示,记录存储主页展示的新闻的各种信息,包括图片、正文等。表STYLEREF1\s3SEQ表格\*ARABIC\s14新闻信息表字段名字段类型字段注释titlestring新闻标题datestring发布时间contentstring导语imgsrestring图片detailstring正文authorstring作者特殊情况表(allproblem),存储了用户可能出现的所有特殊情况的名称、宜吃食物的列表以及相关的介绍,如下表所示:表STYLEREF1\s3SEQ表格\*ARABIC\s15特殊情况表字段名字段类型字段注释namestring情况名称recommendarray推荐数组banarray禁止数组infostring详情系统详细设计与实现界面设计与具体实现细节授权界面用户打开小程序的界面,授权登陆后进入用户信息填写,授权登陆数据库将获取用户名和微信头像用于展示,数据库也会存入一个用户信息,一个微信号系统会获取唯一的_openid,将此作为用户编号存入数据库,存入数据库user表有姓名和一个编号。点击拒绝会返回授权登陆界面,点击允许方可进入信息填写界面。如下图所示:图STYLEREF1\s4SEQ图\*ARABIC\s11授权登陆图STYLEREF1\s4SEQ图\*ARABIC\s12弹窗信息填写界面只有进行授权登录后,才能进入信息填写界面。在信息填写界面,用户将填写自己的性别、年龄、身高、体重、特殊情况,前三种如果未填写完善,会有提示语,填写完善也会有提示语。特殊情况是选择性填写,情况包括支气管炎、糖尿病、高血压、冠心病,是多选,确认后会出现“信息修改成功”的弹窗,也会出现在信息填写界面的下方。这一系列步骤完成后,数据库会在用户信息表中存储用户的各项信息。如下图所示:图STYLEREF1\s4SEQ图\*ARABIC\s13信息未填写完善图STYLEREF1\s4SEQ图\*ARABIC\s14特殊情况完善营养含量计算以及食材推荐界面(1)此界面部分功能对未填写信息用户关闭,以下对用户进行分类:a)未授权登陆用户此界面未授权登陆也可进入,只不过只能进行摄入食物的热量、脂肪、蛋白质、碳水化合物、膳食纤维的计算,无法对用户的今日所需进行计算,更无法推荐食材。同时提醒用户去完善个人信息。b)已授权登陆用户未将信息填写完善:与未授权登陆用户做同样处理,只能计算,无法推荐。同时提醒用户去完善个人信息。将信息填写完善:信息填写完善的进入这个界面时,就会展示他们今日所需的各种含量。用户的热量计算是参考中国营养学会的标准进行年龄分类的。用户可以通过动态增加修改删除组件输入自己吃的食物以及重量,点击“计算”按钮,系统将计算出所有含量。点击“推荐”按钮,系统将动态推荐食材。(2)功能实现说明:摄入食物含量计算功能:输入含量的计算是从动态组件中获取到相应的食物列表数组,在数据库中查找对应食物的各个营养素含量与重量相乘,计算出来展示在表格中。每日所需食物含量计算功能:根据中国营养学会给出的标准,将用户的年龄进行了分类:1-3岁,4-7岁,8-12岁,13-17岁,18-49岁,49岁以上,不同的分类里每个热量的标准不一样。推荐食材功能:推荐食材是通过比较营养素密度,营养素密度是评价食物营养价值的指标,营养素密度(NutritionDensity,ND)即食物中某营养素满足人体需要的程度与其能量满足人体需要程度之比值。本系统是通过比较食材的营养素密度数组[脂肪密度,碳水密度,蛋白质密度,膳食纤维密度]和用户剩下的即所需要的营养素密度进行对比,在欧式定理的基础上加上个权重,求出两个数组之间的距离,数值越小,相似度越高。选取最小的三个推荐出来。所用公式如下:营养素密度=(一定数量某食物中的某营养素含量/同量该食物中含的能量)×1000(STYLEREF1\s4SEQ2-\*ARABIC\s11)权重=已摄入/未摄入(STYLEREF1\s4SEQ2-\*ARABIC\s12)距离=∑pow((所需营养素密度-食物营养素密度),2)*权重(STYLEREF1\s4SEQ2-\*ARABIC\s13)图STYLEREF1\s4SEQ图\*ARABIC\s15未填写信息界面图STYLEREF1\s4SEQ图\*ARABIC\s16已填写信息界面食材分类界面 在这里可以看到所有食材,食材分为了四类:粮食类、蔬菜类、干果类、肉类;在WXML中将想要传的值放进data-id中,点击图片或文字使用wx.navigateTo方法用提取组件的id,再在详情页用options获取id,即可查看食材的具体信息。如下图所示:图STYLEREF1\s4SEQ图\*ARABIC\s17分类界面图STYLEREF1\s4SEQ图\*ARABIC\s18食材详细界面文章阅读界面所有用户都可以查看文章,轮播图组件会使页面效果更好,轮播图使用的是swiper滑块视图容器。界面上会显示文章的图片的引言、时间、标题,同样用带值跳转wx.navigateTo方法,点击后会跳到文章正文详情面。如下图所示:图STYLEREF1\s4SEQ图\*ARABIC\s19文章主界面图STYLEREF1\s4SEQ图\*ARABIC\s110文章详情页面CMS内容管理说明小程序内容管理是小程序内容管理的拓展组件,开通简单,功能强大,管理员登陆之后,进入之后创建相对应的项目及模型就可以和小程序连接上,查看各个集合的数据。不仅可以对记录增删改查还可以对各个字段进行排序。如下图所示:图STYLEREF1\s4SEQ图\*ARABIC\s111内容管理系统测试结果与分析功能测试与分析小程序功能非常简单,界面也十分简陋,由于是初次接触小程序,在此将测试过程以及测试过程中遇到的问题及解决方法总结回顾:用户授权登陆问题描述:登陆授权弹窗不再出现。原因以及解决方法:之前微信授权登陆时都可以直接通过

wx.getUserInfo

接口获取授权登陆弹窗,由于官方修改了getUserInfo接口,之前的方法无实现弹窗。做了兼容性处理,解决了问题。用户信息填写并记录到数据库中用户修改信息时也能及时存到数据库中。图STYLEREF1\s图STYLEREF1\s5SEQ图\*ARABIC\s11用户信息展示问题描述:输入数据几个组件同时响应。原因以及解决方法:没有对组件进行区分,在创建组件时给每一个组件一个唯一的index进行区分,问题得到解决。获取用户信息并计算每日所需含量问题描述:计算误差太大。原因以及解决方法:刚开始只是百度了计算公式,深入了解后,在中国营养学会中找到了摄入热量的标准,并进行了修改。推荐食材的选取问题描述:营养素密度计算后比较不了。原因以及解决方法:JS语法中,无法对两个浮点数直接进行比较,系统会自动将其转换为字符串。将所要比较的两个变量进行类型转换,使用parseFloat。问题描述:相同条件下,每次推荐食材不同。原因以及解决方法:获取数据库食材列表时是无序的,固定排序,使每次查询的列表使一样的,问题解决。问题描述:推荐食材并非自己所需。原因以及解决方法:计算两个数组的距离时,只是单纯的数字计算,误差较大,因为每个营养素需求的含量都不一样,意识到补充营养素需要优先级,于时在公式中加了权重,问题得到改善。食材的查看点击不同的食物,进入不同食物的详情页,成功。文章的查看点击不同的文章页,进入不同的文章详情页,成功。管理员的数据库管理问题描述:登陆内容管理时报“服务器异常”错误。原因以及解决方法:云开发的内容管理创建之后,数据库中会出现很多集合,这些集合是不能删除的,自己删了。此时需要重新关闭内容管理并重新开通一次。集成测试与分析膳食结构搭配系统主要分四个部分:用户信息部分;推荐部分;食材部分;文章部分。集成测试采用黑盒测试,具体方法是:真机调试。在此将测试过程以及测试过程中遇到的问题及解决方法总结回顾:问题描述:云开发服务器错误、真机调试无法运行。原因以及解决方法:均是网络问题,微信开发者工具需要有网络支持,没有网络会报错。真机调试时,不要用开放的网。问题描述:真机调试界面混乱。原因以及解决方法:电脑的模拟器到真机会有可能页面发现错误,就这就要求进一步调试界面。本系统也有这种情况,暂时未能解决。结语总结这是一个非常简单的系统,但是由于初次接触,也是花了近两个月才将其完成。主要功能基本上完成了,用户信息的记录、每天各种含量的推荐、摄入食材的含量、为用户推荐食材、查看食材以及文章,其中还有一些工作没有做好。在系统的实现过程中,我对小程序实现有了一个系统的了解,我也了解了在一个项目实施之前要做好充分的准备工作。例如刚开始没有对小程序有深入了解时,准备选取MySQL作为系统的数据库,安装配置好后才发现连接十分麻烦,请教别人发现了云开发数据库十分便捷。再如没有构思好系统的结构就直接写代码,导致后期修改想法一直改变,代码一直修改,这其中浪费了很多时间和精力。虽然学习了软件工程,但没有付诸到实践,这也是我的主要问题,需要改进。存在的问题以及展望该系统的基本功能已基本实现,但其中还有很多我需要改进的地方。第一,系统的界面太简陋,也不简洁,后期还需要多练习一些样式,将系统优化一下。第二,输入食材的组件在删除时,是根据组件id删除的,但是显示在界面的是删除了最后一个,这只是显示问题,后台数据并没有问题,但是用户不知道,后期需要优化,把输入框换成别的。第三,文章有收藏和分享按钮,但没有写逻辑层,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论