基于JavaScript的食物相宜相克查询网站

食物相宜相克系统的设计与实现

摘要:

食物的相宜相克与人们的日常生活息息相关,科学的饮食能够提高人们的生活质量。经过适当的搭配,不仅可以满足食物养生的需要,提高食疗的效果,还可以消除或减轻其中某些食物的副作用;若搭配不当,则有可能降低食物的营养和作用,并对身体造成不良的影响。根据食物的相宜相克,为用户提供便捷的食物相宜相克查询服务,为用户健康生活提供参考。
针对食物相宜相克的问题,分析了食物的相宜相克关系,采用HTML、CSS、Vue、Node、MySQL技术来描述食物的相宜相克关系,能够查询食物的相宜相克关系。食物相克是指长期大量同时食用某些食物而导致不良的后果。一是两种食物在吸收和代谢过程中发生互相排斥作用。二是两种食物在分解过程中产生有害物质。三是从中医上食物的“四气五味”角度来说,如果两种大寒食物同食就会把人吃倒,大热食物吃多了就会上火,只有四气食物搭配着吃,才不致使人寒热失衡。为特定人群比如学生、体力劳动者、孕妇等提供食物的相宜相克建议。为患有常见疾病的人群比如感冒、糖尿病患者提供饮食相宜相克查询服务,帮助用户尽快恢复健康。为配菜人员提供参考,用户不必记忆繁多的食物相宜相克规则,只需用手机或电脑打开网站即可查询,方便快捷。
科学的饮食根据个人的性别、年龄、身体状况,以及四季、天时、地理因素,有选择性地分析食物的宜与忌,使摄取的食物更易于被消化、吸收,提高其中各种营养素的利用率,提高营养价值。
关键词:Vue.js、Node.js、MySQL、食物相宜相克

Design and Implementation of Food-friendly and Food Inappropriate Systems

Abstract:Proper food is closely related to people’s daily life. Scientific diet can improve people’s quality of life. After proper collocation, it can not only meet the needs of food health, improve the effect of diet therapy, but also eliminate or reduce the side effects of some of these foods; if not matched, it may reduce the nutrition and effect of food, and cause adverse effects on the body. According to the food is appropriate, to provide users with convenient food appropriate inquiry services, for users to provide a healthy life reference.
Aiming at the problem of food compatibility, this paper analyzes the relationship between food compatibility, uses HTML、CSS、Vue、Node、MySQL technology to describe food compatibility, and can query the relationship between food compatibility. Food phase refers to the long-term consumption of certain foods at the same time, resulting in adverse consequences. One is that the two foods are mutually exclusive during absorption and metabolism. Second, two kinds of food produce harmful substances in the process of decomposition. Third, from the traditional Chinese medicine food “four qi five taste” point of view, if two kinds of Greater Cold food together will eat people upside down, big hot food eat too much will be angry, only four qi food with eating, do not cause people cold and heat imbalance. Appropriate advice on food for specific groups such as students, manual workers, pregnant women, etc. People with common diseases, such as colds and diabetes, are provided with appropriate dietary inquiry services to help users recover as quickly as possible. To provide reference for side dishes, users do not have to remember a wide range of food appropriate to the rules, just use mobile phones or computers to open the website can be queried, convenient and fast.
According to the individual’s sex, age, physical condition, as well as the four seasons, days, geographical factors, the scientific diet selectively analyzes the food’s suitability and taboo, so that the food intake is easier to be digested, absorbed, improve the utilization rate of various nutrients, and improve the nutritional value.
Keywords:Vue.js、Node.js、MySQL
目 录
第1章 绪论 1
1.1 研究背景和意义 1
1.2 文献综述 1
1.3 课题研究方法和内容 1
第2章 系统需求分析 3
2.1 可行性分析 3
2.2 系统功能需求 3
2.3 系统功能模型 5
2.4 本章小结 13
第3章 系统设计 14
3.1 类图 14
3.2 顺序图 19
3.3 活动图 25
3.4 状态图 32
3.5 数据库设计 35
3.6 网络接口设计 38
3.7 本章小结 53
第4章 系统实现 54
4.1 用户界面的实现 54
4.2 本章小结 57
第5章 系统测试 58
5.1 测试计划 58
5.2 系统测试用例 59
5.3 本章小结 68
第6章 结束语 69
第7章 参考文献 70
第8章 致谢 71

第1章绪论

1.1 研究背景和意义
随着人们生活水平的提高,满足了温饱之后,人们自然会有更高的追求。无论国内还是国外,人们越来越关心如何吃得安全吃得营养的问题。人们很早就了解到,某些食物一起食用会有毒、使味道变差、导致不良反应等,而某些食物一同食用则有利,比如对某些疾病具有食疗效果等。
随着我国经济的发展,国民生活水平的不断提高,人们对食物的要求不再仅仅是安全卫生,“营养健康”,“膳食平衡”已经成为人们的一个普遍生活理念。目前国内很少有网站仅仅提供食物相宜相克查询的网站,大多数的网站还提供了菜谱、食物成分表等,微信小程序有仅提供食物相宜相克查询的产品。
1.2 文献综述
满足部分人群的食物相宜相克查询的需求。食物相克是指不要长期大量食用。有些食物不能同时食用,这样可能会产生一些副作用。有些食物可以同时食用,可能产生一些良好的作用。
满足一些特定人群不知道如何做饭的问题,本系统将会提供一些家常菜,用户只需要按照上面的做法操作,一般人均可做出美味的菜。
1.3 课题研究方法和内容
使用JavaScript做一个网站,前端和后端分离,使用HTML、CSS、JavaScript、Vue.js、等技术来做前端的页面,使用Node.js技术来做后端服务器,使用MySQL数据库来保存数据。
HTML称为超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网站上的内容展示出来。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。[百度百科]
CSS是层叠样式表,CSS可以静态地修饰网页,使网页更加美,还可以配合各种脚本语言动态地对网页各元素进行格式化。[百度百科]
JavaScript是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。[百度百科]
Vue 是一套用于构建用户界面的渐进式JavaScript框架。Vue 被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,方便与第三方库或既有项目整合。
Node 是一个让 JavaScript 运行在服务端的开发平台。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。[百度百科]
MySQL是一个关系型数据库管理系统, MySQL 是最流行的关系型数据库管理系统之一。在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。相比较其它非关系型数据库系统而言,食物的相宜相克的关系比较适合使用关系型数据库。[百度百科]
信息系统的建模使用UML面向对象建模。使用StartUML来进行画图。UML作为一种统一的软件建模语言具有广泛的建模能力。UML是在消化、吸收、提炼至今存在的所有软件建模语言的基础上提出的,集百家之所长,它是软件建模语言的集大成者。UML还突破了软件的限制,广泛吸收了其他领域的建模方法,并根据建模的一般原理,结合了软件的特点,因此具有坚实的理论基础和广泛性。[百度百科]

第2章 系统需求分析

2.1 可行性分析
1、经济可行性
基于JavaScript食物相宜相克系统的设计与实现是本人的毕业设计,从设计到开发基本都是有本人完成,没有多余的经费支出。
2、技术可行性
使用HTML、CSS、Vue技术做前端页面开发,使用node和MySQL技术做后端开发。使用现有的技术能够进行系统开发。
3、操作可行性
本应用界面简洁友好,用户一看就知道如何操作,界面简单、便捷。
2.2 系统功能需求
1、总体需求
系统主要分为两个模块,即用户管理和食物相宜相克管理。用户管理包括普通用户对自己信息的管理和管理员对紫铜中用户信息的管理。食物相宜相克管理包括对食物相宜相克信息的增删改查。
系统分为三种角色,分别是普通用户、管理员和游客。普通用户可以进行注册、登录、注销、用户信息修改、用户信息查询,食物相宜相克查询的操作。管理员除具有普通用户的操作外,还能管理普通用户的信息、增加、修改、删除食物相宜相克信息操作。管理员不能从游客中注册。游客可以进行注册、查询食物相宜相克的信息,游客注册后变成普通用户。
2、业务需求
用户进入主页后即可查询食物相宜相克信息,用户也可以选择为注册本站用户,注册后可以登录,可以对用户信息进行操作,比如增加个人信息、修改个人信息等,也可以选择注销账户。管理员进入系统后必须选择登录,登录之后才能管理用户的基本信息、并且管理食物相宜相克的信息,包括查看食物相宜相克的信息、增加食物相宜相克信息、删除食物相宜相克信息和修改食物相宜相克信息。详见图2-1。

在这里插入图片描述

图 21 系统流程图
3、系统功能的需求分析
在这里插入图片描述

图 22 系统功能模块图

食物相宜相克系统主要包括两个模块,即用户管理模块和食物相宜相克管理模块。用户管理模块包括用户注册、用户注销、用户信息修改、用户信息查询和用户登录功能。食物相宜相克管理模块包括增加食物相宜相克信息、删除食物相宜相克信息、修改食物相宜相克信息和查询食物相宜相克信息功能。如图2-2所示。
2.3 系统功能模型
1、用例图
系统主要分为两个模块,即用户管理模块和食物相宜相克管理模块。用户模块有用户登录、用户注册、用户注销、用户信息修改、用户信息查询5个功能模块。食物相宜相克管理模块主要有增加食物相宜相克信息、食物相宜相克信息查询、修改食物相宜相克信息、删除食物相宜相克信息4个模块。如图3-3所示。
在这里插入图片描述

图 23 系统功能说明
2、用例图规约表
(1)用户管理
用户管理。普通用户和管理员用户都能够对用户的数据进行操作,其中管理员可以操作普通用户的相关信息。
① 用户注册,详见2 -1 用户注册用例规约表。
表 21 用户注册用例规约表
用例编号 UCUser001
用例名称 用户注册
用例概述 当游客注册或登录之后,身份变为普通用户。
执行者 游客、管理员
涉众利益 游客注册成功后变成普通用户。
管理员注册指管理员在后台将游客注册为普通用户。
前置条件 (1)注册的账号没有注册。
(2)游客进入食物相宜相克系统首页。
(3)管理员为用户注册时需要先登录系统。
基本事件流 游客注册
(1)点击“注册”按钮。系统检测设备或注册人的合法性,并且复合注销账号规则,系统进入注册页面。
(2)填写注册信息,包括用户名和密码。
(3)注册成功,页面跳转到登录页面。
管理员注册
(1)点击“用户管理”按钮。系统进入用户管理界面。
(2)点击“增”按钮。系统进入添加用户界面
(3)填写注册信息,必须填入输入用户名和密码。
(4)注册成功,将注册完成的信息展示出来。
异常事件流 (1)注册设备或注册用户被禁止时提示你被禁止注册账号。
(2)用户名已经存在(重复)时,需要重新填写用户名。
(3)两次输入的密码不一致时,需要重新填写密码。管理员注册时只需要填写一次密码,因此不需要验证。
后置条件 页面跳转到登录页面,在数据库中增加一条记录。
成功保证 (1)游客注册成功后跳转到登录页面。
(2)管理员注册成功后显示注册成功后的账号信息。
规则和约束 字段列表:1.用户名。2.密码。

② 用户注销,如表2-2所示
表 22 用户注销用例规约表
用例编号 UCUser002
用例名称 用户注销
用例概述 普通用户删除自己的账号信息。删除之后不能恢复。
执行者 普通用户、管理员
涉众利益 普通用户或管理员删除自己的账号后将删除用户的信息。
前置条件 注销的目标账号存在。
基本事件流 普通用户
(1)点击用户的头像,进入用户信息管理界面。
(2)点击“注销账号”按钮,系统弹出确认对话框。
(3)点击“确认”即可删除账号。系统生成一条注销账号的记录,界面跳转到主页。
管理员注销账号
(1)点击“用户管理”按钮,系统进入用户管理界面。
(2)选中要删除的账号信息,点击“删”或者“批量删除”即可。
(3)输入账号名。如果用户名存在,则可以注销,否则显示“用户不存在或者用户账户不可注销”。
(4)选择需要注销的账号,点击“删”按钮。系统将用户的标记更改为2,表示注销完成的账号。
扩展事件流 无
子事件流 无
异常事件流 无
后置条件 用户标记不为1表示删除的账户。
成功保证 普通用户注销成功后跳转到主页。
管理员注销后显示注销完成的账号(标记为2)。
规则和约束 无
备注 无

③ 用户信息修改,如表2-3所示。
表 23 用户信息修改用例规约表
用例编号 UCUser003
用例名称 用户信息修改
用例概述 用户可以修改自己的基本信息。
执行者 普通用户、管理员
涉众利益 普通用户有修改自己信息的权限。
前置条件 用户登录成功。
基本事件流 普通用户
(1)点击用户头像,系统进入用户信息管理界面。
(2)在要修改的用户信息点击修改按钮。这是会弹出响应的表单。
(3)填写新的信息。系统更新用户信息,刷新用户信息修改界面。
管理员
(1)点击“用户管理”按钮,系统进入用户管理界面。
(2)选中要修改的用户,点击“改”按钮,系统弹出修改表单。
(3)输入要修改的用户的用户名。系统显示相应的用户信息。
扩展事件流 无
子事件流 无
异常事件流 管理员输入用户名时显示“用户不存在”。
后置条件 系统更新用户信息
成功保证 普通用户修改自己的信息时刷新用户信息修改界面。
管理员修改用户信息后系统将显示修改的用户信息。
规则
约束
备注 (1)当用户操作涉及的内容需要用户的信息时,才要求用户填写相应的信息。
(2)用户能够对自己的信息进行修改,比如年龄、身高、体重等。

④ 用户信息查询,详见2-4用户信息查询用例规约表。
表 24 用户信息查询用例规约表
用例编号 UCUser004
用例名称 用户信息查询
用例概述 普通用户查看自己的信息,管理员查看普通用户的信息。
执行者 普通用户、管理员
涉众利益 普通用户和管理员都可以查看普通用户的信息。
前置条件 用户登录成功
基本事件流 普通用户
点击用户头像,系统进入用户信息管理界面,系统直接显示用户的基本信息。
管理员查看普通用户信息
(1)点击“用户管理”按钮,系统进入用户管理界面。
(2)系统直接显示所有用户的信息。
(3)输入要修改的用户的用户名或者筛选条件。系统显示相应的用户信息。
异常事件流 管理员输入用户名或者筛选条件时,弹框显示“用户不存在”。
后置条件 显示相应的用户信息
成功保证 显示相应的用户信息
规则 无
约束 无

⑤ 用户登录,如表2-5所示。
表 25 用户登录用例规约表
用例编号 UCUser005
用例名称 用户登录
用例概述 普通用户和管理员进入系统的入口
执行者 普通用户、管理员
涉众利益 普通用户和管理员均可登录系统。
前置条件 用户注册了账号。
续表2-7
基本事件流 普通用户登录
(1)用户进入系统主页。
(2)用户点击登录按钮。
输入用户名和密码,点击“登录”按钮。系统识别用户的身份。如果是普通用户,则页面跳转到主页。如果是管理员,则页面跳转到管理员首页。
异常事件流 点击“登录”按钮时,显示“用户名或密码不正确”。
后置条件 页面跳转到主页或者管理员主页。
成功保证 页面跳转到主页或者管理员主页。
规则和约束 字段约束:1.用户名。2.密码。

(2)食物相宜相克
① 增加食物相宜相克信息,详见表26增加食物相宜相克信息用例规约表。
表 26 增加食物相宜相克信息用例规约表
用例编号 UCFood001
用例名称 增加食物相宜相克信息
用例概述 增加食物相宜相克信息
执行者 管理员
涉众利益 只有管理员才能够增加食物相宜相克信息
前置条件 管理员登录成功。
食物相宜相克信息不存在。
基本事件流 (1)点击“食物相宜相克管理”按钮,系统进入食物相宜相克管理界面。
(2)点击“增加食物相宜相克信息”按钮,系统进入“增加食物相宜相克信息”界面。
(3)输入系统要求的字段。
(4)点击“添加”按钮,将显示添加的食物相宜相克信息。
异常事件流 当输入系统中存在的两种食物名时,弹框显示“你输入的信息已经存在”。
后置条件 系统数据库中添加了一条字段。
成功保证 显示添加的食物相宜相克信息
续表2-6
规则和约束 字段列表:1.食物名。2.食物相宜相克的功效或者后果。3.原因。4.来源。
备注 只有管理员才能添加食物的相宜相克关系。

② 删除食物相宜相克信息,如表2-7所示。
表 27 删除食物相宜相克信息用例规约表
用例编号 UCFood002
用例名称 删除食物相宜相克信息
用例概述 删除食物相宜相克信息
执行者 管理员
涉众利益 只有管理员才能删除食物相宜相克信息
前置条件 管理员登录成功
基本事件流 (1)点击“食物相宜相克管理”按钮,系统进入食物相宜相克管理界面。
(2)点击“删除食物相宜相克信息”按钮,系统进入“删除食物相宜相克信息”界面。
(3)输入要修改的食物相宜相克信息或者筛选条件。系统显示相应的食物相宜相克信息。
(4)选择要删除的食物相宜相克记录。
(5)点击“删除”按钮,系统删除选中的食物相宜相克记录,并且生成一条删除食物相宜相克的记录,显示刚才删除的食物相宜相克信息。
扩展事件流 无
子事件流 无
异常事件流 查找食物相宜相克信息时显示食物相宜相克信息不存在。
后置条件 数据库中的数据的标记不为1。
成功保证 显示刚才删除的食物相宜相克信息
规则
约束
备注 无

③ 修改食物相宜相克信息,如表2-8所示。
表 28 修改食物相宜相克信息用例规约表
用例编号 UCFood003
用例名称 修改食物相宜相克信息
用例概述 修改食物相宜相克信息
执行者 管理员
涉众利益 管理员可以修改食物相宜相克信息
前置条件 管理员登录成功
基本事件流 (1)点击“食物相宜相克管理”按钮,系统进入食物相宜相克管理界面。
(2)点击“修改食物相宜相克信息”按钮,系统进入“修改食物相宜相克信息”界面。
(3)输入要修改的食物相宜相克信息或者筛选条件。系统显示相应的食物相宜相克信息。
(4)选择要修改的食物相宜相克信息,然后直接替换选中的信息。
(5)点击“确认修改”按钮。系统将修改的信息更新。并将修改后的信息高亮显示出来。
异常事件流 查找食物相宜相克信息时显示食物相宜相克信息不存在。
后置条件 数据库中的数据被修改。
成功保证 高亮显示修改后的信息
规则和约束

④ 查询食物相宜相克信息,如表2-9所示。
表 29 食物相宜相克信息查询用例规约表
用例编号 UCFood004
用例名称 食物相宜相克信息查询
用例概述 查询食物相宜相克信息
主参与者 游客、普通用户、管理员
涉众利益 游客、普通用户和管理员都能查看食物相宜相克的信息,显示的内容不会一样。
续表2-9
前置条件 只要进入食物相宜相克系统即可使用该功能,不会区分用户类型。
基本事件流 (1)点击“搜索”按钮,系统将跳转到搜索页面。
(2)输入一个或多个食物信息。用一个或多个空格分隔,否则报错:“食物信息不存在”。
(3)点击“搜索”按钮。系统将根据用户的身份显示相应的信息。
异常事件流 点击“搜素”按钮时显示“搜素的内容不存在”。
后置条件 系统显示相应的信息
成功保证 系统显示相应的信息
规则和约束 字段约束:1.食物名或者食物别名。

2.4 本章小结
本章首先对项目的可行性从经济可行性、技术可行性、操作可行性三个方面对系统进行分析。然后列出系统的总体需求,将系统主要分为用户管理和食物相宜相克管理两个模块。接下来用流程图对系统的业务需求进行说明。并用功能模块图将系统的功能模块展示出来。最后,使用用例图详细展示了系统要实现的功能。

第3章系统设计

3.1 类图
1、类的关系图
一个或多个管理员管理零个或多个普通用户信息,一个或多个管理员管理一个以上的食物信息。普通用户可以查询食物相宜相克信息。如图3-1所示。
在这里插入图片描述

图 31 类的关系图

2、 管理员的类图
类的作用:用来处理管理员的基本信息,并处理管理员的登录、修改信息、查询管理员自己的信息的操作。如图3-2所示。
Admin类的属性说明:如表3-1所示。
Admin类的方法说明:如表3-2所示。
在这里插入图片描述

图 32 Admin(管理员)的类图

表 31 管理员类Admin的属性说明
属性名 描述 可见性 类型 初始值 属性字符串
admin_id 管理员id public int unique
admin_name 用户名 public string unique
admin_paw 密码 public string
admin_head 管理员头像路径 public string ‘admin.jpg’
admin_email 电子邮箱 public string ‘@’
admin_status 管理员类别 public int 0
admin_tag 管理员标记 public int 1

表 32 管理员类Admin的方法说明
操作名 描述 可见性
login() 管理员登录 public
续表3-2
tui() 管理员退出登录 public
adminUpdatePaw() 修改管理员密码 public

3、普通用户的类图
User类的作用:主要用来保存普通用户的数据并且对用户数据进行相关操作。
User类的属性说明:如图3-3所示。如表3-3所示。
User类的方法说明:如图3-3所示。如表3-4所示。
在这里插入图片描述

图 33 User(普通用户)的类图

表 33 User类的属性说明
属性名 描述 可见性 类型 初始值 属性字符串
user_id 用户ID public int 无 unique
user_name 用户名 public string 无 unique
续表3-3
user_paw 密码 public string 无
user_head 用户头像路径 public string ‘no.jpg’
user_age 生日 public date ‘1000-01-01’
user_sex 性别 public string ‘0’
user_mibao 密保问题 public string ‘0’
user_mi_da 密保答案 public string ‘0’
user_tag 标记 public int 1

表 34 User类的方法说明
操作名 描述 可见性
login() 用户登录 public
register() 用户注册 public
userDrop() 用户注销账号 public
getUseriBase() 获取单个普通用户的基本信息 public
updateUserName() 修改用户名 public
updateUserAge() 修改年龄 public
updateUserSex() 修改性别 public
updateUserPaw() 修改密码 public
updateUserMibao() 修改密保 public
postForgetMibao() 找回密码 public
forgetUpdatePaw() 提交密保成功后设置新密码 public
searchFy() 查询食物相宜的数据 public
searchFk() 查询食物相克的数据 public

(4)食物的类图
Food类的作用:用来保存并处理食物信息相关的操作。
Food类的属性说明:详见表3-5。
Food类的方法说明:详见表3-6。

在这里插入图片描述

图 34 Food(食物)的类图

表 35 Food类的属性说明
属性名 描述 可见性 类型 初始值 属性字符串
food_id 食物id public int unique
food_name 食物名 public string
food_class 类别 public int
food_img 食物图片名 public string ‘no.jpg’
food_tag 标记 public int 1

表 36 Food类的方法说明
操作名 描述 可见性
getAllFoods() 获取食物的所有数据 public
addFood() 增加一条食物信息 public
postUpdateFood() 提交修改用户信息 public
dropOneFood() 删除一条食物记录 public
续表3-6
selectByFoodTag() 根据标记来筛选数据 public
updateFoodClass() 根据选择的食物类别来筛选数据 public
inputFood() 根据食物名查询数据 public
addOneFood() 还原一条食物记录 public
upload() 上传图片 public
dropMoreFood() 删除多条食物记录 public
addMoreFood() 还原多条食物记录 public

3.2 顺序图
1、用户登录
在这里插入图片描述

图 35 用户登录的顺序图

普通用户或者管理员打开客户端比如浏览器发送登录请求,服务器接收请求进行判断并返回一个登录组件,普通用户或者管理员在登录组件上填写用户名和密码并将数据发送到服务器,服务器接收到数据后进行数据验证,数据验证成功或或者失败后将相应的消息发送会客户端,数据验证期间需要查询数据库中user表中的数据。如图3-5所示。
2、用户注册
游客在访问本站时需要注册成为普通用户,则游客请求注册的页面,服务器响应后发送注册界面消息并显示在客户端上,游客在客户端上填写注册信息并将其提交到服务器上,服务器对游客提交的数据进行验证并返回成功或者失败时的消息,客户端接收到消息后将其显示给游客。在数据验证阶段,服务器需要查询user表验证用户输入的数据是否合法。如图3-6所示。
在这里插入图片描述

图 36 用户注册的顺序图
3、用户注销
用户通过客户端直接向服务器发送注销账号的请求,服务器接收到用户的请求后对用户的身份信息、注销资格进行验证,如果验证成功则通过数据库删除对应的用户数据并备份用户的数据一段时间。服务器响应成功或者失败的消息到客户端,客户端接收到服务器响应的数据并将其显示给用户。如图3-7所示。
在这里插入图片描述

图 37 用户注销的顺序图
4、用户信息修改
在这里插入图片描述

图 38 用户信息修改的顺序图
普通用户或管理员请求用户信息管理的组件,客户端向服务器发送修改用户信息组件需要的数据,服务器返回响应的消息。用户在客户端上输入支持用户修改修改的相关数据,客户端将用户输入的相关数据提交到服务器,服务器对数据进行验证,数据验证期间需要查询和修改数据表user中的相关数据,服务器处理完后相应数据修改成功或失败的消息,客户端将服务器响应的数据显示给用户。如图3-8所示。
5、用户信息查询
普通用户或者管理员请求用户信息查询组件,客户端向服务器发送请求以获取支持组件显示的数据,服务器响应请求并发送成功或失败的消息给客户端。用户选择需要查询的用户信息,客户端将用户选择的数据提交到服务器,服务器对数据进行验证并查询数据库中的响应数据,然后返回响应的消息到客户端,客户端显示服务器返回的数据。如图3-9所示。
在这里插入图片描述

图 39 用户信息查询的顺序图
6、增加食物相宜相克信息
管理员请求添加食物相宜相克信息的组件,客户端向服务器请求显示该组件需要的信息,服务器响应组件请求的数据,客户端接收数据并用于显示界面。管理员输入食物相宜相克相关的数据,客户端将数据提交到服务器,服务器对提交的数据进行验证,验证期间需要进行数据库的查询、修改、添加操作,服务器发送成功或失败的消息到客户端,客户端将服务器响应的数据显示给用户。如图3-10所示。
在这里插入图片描述

图 310 增加食物相宜相克信息的顺序图
7、删除食物相宜相克信息
在这里插入图片描述

图 311 删除食物相宜相克信息的顺序图
管理员打开删除食物相宜相克信息的组件,客户端请求支持组件显示的数据,服务器发挥成功或失败的消息。管理员选择需要删除的数据,客户端将数据提交到服务器,服务器进行数据验证,验证期间可能需要删除和备份食物数据,服务器响应删除食物相宜相克信息成功或失败的消息,客户端将数据显示给用户。如图3-11所示。
8、修改食物相宜相克信息
管理员请求修改食物相宜相克信息的组件,客户端请求与组件相关的数据,服务器响应成功或失败的消息。管理员输入要修改的数据,客户端将管理员输入的数据提交到服务器,服务器将提交的数据进行验证,数据验证期间可能要操作数据库,然后服务器返回成功或失败的消息,客户端将数据显示给管理员。如图3-12所示。
在这里插入图片描述

图 312 修改食物相宜相克信息
9、查询食物相宜相克信息
管理员、用户或游客请求显示查询食物相宜相克信息的组件,客户端请求显示组件相关的数据,服务器响应成功或失败的消息。管理员、普通用户或游客输入查询的条件,客户端将查询的条件提交到服务器,服务器进行数据验证,然后将查询到的数据发送会客户端,客户端将响应的数据显示给用户。如图3-13所示。
在这里插入图片描述

图 313 查询食物相宜相克信息的顺序图
3.3 活动图
1、用户登录的活动图
在这里插入图片描述

图 314 用户登录的活动图
首先获取用户输入的用户名和密码,这是发送登录请求所必须的数据,如果没有则不能发送登录请求。服务器接收到登录请求后进行数据验证,首先判断用户名是否为空,如果为空则响应用户名为空的错误提示,这时登录请求完成,用户需要重新提交登录请求。如果用户名不为空,则判断密码是否为空,如果为空则响应密码为空的错误提示,此时登录请求完成。如果密码不为空,则验证用户身份是否为管理员,如果是,则跳转到管理员首页,否则判断用户是否为普通用户。如果用户为普通用户则跳转到普通用户首页,否则提示“用户名或密码错误!”的错误提示,此时登录请求完成。如图3-14所示。
2、 用户注册的活动图
在这里插入图片描述

图 315 用户注册的活动图
首先获取用游客提交的用户名、密码、确认密码、用户协议标识,这个发送注册请求所必须的,如果没有些个注册数据则不能完成注册请求。然后客户端发送注册用户请求,服务器端接收用户的注册请求。接下来对用户提交的数据进行验证,验证项包括用户名和密码判空、两次输入的密码判同、用户名长度判断、密码长度判断、判断用户名或密码是否包含空格、判断用户是否阅读并同意用户协议、普通用户名重复验证、管理员用户名重复验证。如果提交的注册数据不符合其中的一项,则返回错误消息,此时注册请求完成。如果提交的数据验证通过,则向数据表插入一条普通用户的数据,如果向数据库插入数据成功则跳转到登录界面,否则提示服务器错误的消息,此时注册请求完成。详见图3-15。
3、用户注销的活动图
首先获取用户提交的用户名信息,如果没有这个用户名信息,则不能定位删除的账户。需要注意的是,如果要注销账号需要在登录成功后的状态下方能注销。根据提供的用户名发送注销账号请求,这是会弹出确认对话框,如果点击了确认则正常向服务器发送注销账号请求,服务器接收到请求后将用户标记置为2,此时用户账户注销基本完成,然后跳转到主页。如果用户点击了确认对话框中的取消按钮,则取消注销账号,则注销账号请求完成。如图3-16所示。
在这里插入图片描述

图 316 用户注销的活动图
4、用户信息查询的活动图
首先获取用户提交的用户名信息,然后再想服务器发送查询用户信息请求,服务器接收查询用户基本信息的请求。然后服务器验证用户是否已经登录,如果已经登录则根据用户名查询用户的信息并将页面跳转到用户信息主页,否则弹出错误提示信息“你还没有登录,请先登录!”,此时用户信息查询请求已经结束。详见图3-17。
在这里插入图片描述

图 317 用户信息查询的活动图
5、用户信息修改
在这里插入图片描述

图 318 修改用户名的活动图
首先获取用户提交的用户名信息,客户端发送修改用户名请求,服务端接收到修改用户名的请求。然后进行数据验证,验证项包括用户名判空、输入的用户名和普通用户名判重、输入的用户名和管理员用户名判重,如果这个验证项中有一个不通过,则提示错误信息,此时修改用户名请求已经完成。如果数据验证项都通过了,则进行修改用户名操作,如果修改成功则显示新的用户名,否则显示用户名修改失败的错误信息。详见图3-18。
6、增加食物相宜相克信息
在这里插入图片描述

图 319 增加食物相宜相克信息的活动图
首先获取请求的参数,这些参数有食物1、食物2和效果。客户端向服务器发送请求,服务端接收请求然后进行数据验证。首先进行判空,食物1、食物2和效果都需要判空,并且不能为空。判空有两个方面,一是判断输入的数据是否为空字符串,二是判断数据是否包含空格。如果为空则提示“数据为空”类似的消息,响应错误消息后结束本次请求。如果不为空则继续判断食物1、食物2和效果的数据类型。如果数据类型都是字符串则执行下一步,否则响应错误信息并结束本次请求。接下来判断取值范围,即判断食物1、食物2和效果的字符串长度,如果长度超过限制则发送错误信息即结束本次请求,否则执行判重操作。判重及判断输入的食物1和食物2是否重复与输入的相宜相克数据在数据库中是否存在。如果重复则踢错错误信息并结束本次请求。如果不重复则执行添加食物相宜相克信息的操作。如果添加成功则显示添加成功的信息,本次请求完成,否则提示错误信息并结束本次请求。如图3-19所示。
7、删除食物相宜相克信息
首先获取食物相宜相克的id,接着发送请求,然后服务器端接收请求。首先进行用户身份验证,如果用户已经登录则接着进行数据验证,否则响应“你还没有登录”的错误信息。然后进行数据验证,验证项包括id判空、id的数据类型判断、id的取值范围判断。如果id为空则显示“你没有输入数据”的错误消息,结束本次请求,否则接着进行id的数据类型判断。如果数据类型不是number则响应错误信息“输入值不对”,否则进行取值范围判断。如果取值范围不在 [1,4294967295] 这个范围内则响应错误消息“输入值不再范围内”,否则删除并备份食物相宜相克信息。如果食物相宜相克信息添加失败则响应“删除数据失败”的消息,否则显示删除的信息。详见图3-20。
在这里插入图片描述

图 320 删除食物相宜相克信息的活动图

8、修改食物相宜相克信息
首先或取请求的数据,这些数据包括食物id、食物名1、食物名2、效果和标记。接着进行用户身份验证,如果用户不是管理员则响应错误信息“你没有权限操作数据”,否则对数据进行验证。数据验证包括数据判空、数据类型判断、数据重复验证。如果数据为空则响应类似“没有输入数据”的错误消息,否则进行数据类型验证。如果输入的数据的数据类型不符合要求则响应错误信息,否则对输入的数据的长度进行判断。如果取值范围不符合要求则响应错误信息,否则进行数据重复验证。如果数据重复则响应错误信息,否则进行数据修改操作。如果失败则响应错误信息,否则显示修改的数据。详见图3-21。
在这里插入图片描述

图 321 修改食物相宜相克信息的活动图
9、查询食物相宜相克信息
首先获取请求的数据,请求的数据是食物名,然后发送查询食物相宜相克信息的请求,接下来服务器接收客户端发送的请求,接着对数据进行验证,数据验证成功后执行查询操作,然后响应查询到的信息。如果输入的数据为空则响应“你没有输入数据”的错误信息,否则进行数据类型判断。如果数据类型不是string,则响应“输入的值不对”的错误提示消息,否则判断输入值的长度。如果输入值的长度不符合要求,则响应“输入值超出限制”的错误提示消息,否则查询食物相宜相克信息。如果数据查询失败则响应错误的消息,否则显示查询的数据。如果响应了错误提示消息,则本次请求结束;如果显示了查询到的食物相宜相克数据,则本次请求结束。详见图3-22。
在这里插入图片描述

图 322 查询食物相宜相克信息
3.4 状态图
1、普通用户的状态图
User(普通用户)类的状态图,如图3-23所示。
对状态图的说明。如表3-7所示。
在这里插入图片描述

图 323 User(普通用户)类的状态图

表 37 User(普通用户)类的状态说明
状态 说明
存在 游客注册已经账号。
用户找回注销的账号。
不存在 用户注销账号
在线 用户登录系统
离线 用户注销登录

2、 管理员的状态图
管理员的状态图。如图3-24所示。对管理员类的状态说明如表3-8所示。
在这里插入图片描述

图 324 Admin(管理员)类的状态图
表 38 Admin(管理员)类的状态说明
状态 说明
存在 管理员账户已经添加
不存在 管理员账户没有添加
在线 管理员已经登录系统
离线 管理员没有登录系统。
忙碌 管理员正在处理信息。
离开 长时间在线没有操作。

3、食物的状态图
食物的状态图,如图3-25所示。食物类的状态图说明如表3-9所示。
在这里插入图片描述

图 325 Food(食物)类的状态图

表 39 Food(食物)类的状态图说明
状态 说明
有食物 系统中记录了该食物的信息。
无食物 系统中没有记录该食物的信息。

4、界面的状态图
界面的状态图如图3-26所示。界面类的状态说明如表3-10所示。
在这里插入图片描述

图 326 Interface(界面)类的状态图

表 310 Interface(界面)类的状态说明
状态 说明
空闲 界面没有被使用时处于空闲状态。
使用中 如果请求页面成功,此时界面处于使用状态。
如果确认输入的信息,则界面处于使用状态。
等待 当客户在界面上输入数据时,界面处于等待状态。
关闭 当关闭页面,页面处于关闭状态。

3.5 数据库设计
食物相宜相克系统使用MySQL数据库,MySQL数据库是关系型数据库,非常适合描述食物新的相宜相克关系。以下是对普通用户信息表、管理员信息表、食物信息表、食物相克信息表、食物相宜信息表和来源信息表的设计。
1、普通用户(user)表,用来记录普通用户的相关信息并对用户的相关信息进行操作。如表3-11所示。
表 311 普通用户表
列名 数据类型 约束 注释
user_id int(11) unsigned primary key auto_increment 用户ID。
user_name varchar(20) unique NOT NULL 用户名。
user_paw varchar(40) varchar(40) NOT NULL 密码。密码只能由大写或小写英文字母、阿拉伯数字组成。
user_head varchar(50) default ‘no.jpg’ 用户头像路径。
user_tag tinyint(4) unsigned default 1 用户标记。标记除1以外为删除状态。
user_age date default ‘1000-01-01’ 生日。用来计算年龄。
user_sex char(1) default ‘0’ 性别。只能选择“男”或“女”或“0”(未选择)。
user_mibao varchar(255) default ‘0’ 密保问题。
user_mi_da varchar(255) default ‘0’ 密保答案

2、管理员用户(admin)表,主要用来进行管理员登录、身份验证。如表3-12所示。。
表 312 管理员用户表
列名 数据类型 约束 注释
admin_id int(11) unsigned primary key auto_increment 管理员id。
admin_name varchar(10) unique NOT NULL 用户名。
admin_paw varchar(20) NOT NULL 密码。
admin_head varchar(255) default ‘admin.jpg’ 头像图片名
admin_email varchar(50) default ‘@’ 电子邮箱。
admin_status tinyint(4) unsigned default 0 管理员类别,0位无效
admin_tag tinyint(4) unsigned default 1 标记,标记除1以外为删除状态。

3、食物(food)表,主要用来保存食物数据以及对食物数据进行增、删、改、查等操作。如表3-13所示。
表 313 食物表
列名 数据类型 约束 注释
food_id int(11) unsigned primary key
auto_increment 食物id
food_name varchar(20) not null unique 食物名
food_class tinyint(4) unsigned default 0 类别。如蔬菜类、水果类等。
food_tag tinyint(4) unsigned default 1 标记。标记除1以外为删除状态。

4、食物相宜(food_suitable)表,主要用来将食物的相宜关系并保存在数据库中并对其进行相关操作。如表3-14所示。
表 314 食物相宜表
列名 数据类型 约束 注释
fs_id int(11) unsigned primary key auto_increment 相宜id
fs_food1 varchar(20) not null 食物名1
fs_img1 varchar(255) default ‘no.jpg’ 食物名1的图片路径
fs_food2 varchar(20) not null 食物名2
fs_img2 varchar(255) default ‘no.jpg’ 食物名2的图片路径
fs_effect varchar(255) default ‘0’ 效果
fs_tag tinyint(4) unsigned default 1 标记。标记除1以外为删除状态。

5、食物相克(food_restrain)表,主要用来将食物的相克关系并保存在数据库中并对其进行相关操作。如表3-15所示。

表 315 食物相克表
列名 数据类型 约束 注释
fr_id int(11) unsigned primary key
auto_increment 相克id
fr_food1 varchar(20) not null 食物名1
fr_img1 varchar(255) default ‘no.jpg’ 食物名1的图片路径
fr_food2 varchar(20) not null 食物名2
fr_img2 varchar(255) default ‘no.jpg’ 食物名2的图片路径
fr_effect varchar(255) default ‘0’ 效果
fr_tag tinyint(4) unsigned default 1 标记。标记除1以外为删除状态。

3.6 网络接口设计
1、总体接口说明
表3-16 说明了总体的接口设计,下面的接口设计都可以参考这张表。
表 316 总体接口说明
作用 描述功能
请求的url地址 请求的路径
请求方式 GET、POST
传入的API参数 前端页面传递到后台的数据
返回的数据格式 统一为json
返回的数据格式说明 (1)返回的的数据格式说明,如表3-17所示。
(2)返回值说明,如表3-18所示。

表 317 返回的的数据格式说明
let obj = {
res_code: ,
message: ‘’,
data: { result: result }
};

表 318 返回值说明
名称 数据类型 描述
res_code boolean true表示调用成功,false表示调用失败
message string 失败的提示提示信息。
data object 返回的信息体。在这里存放返回的数据
result 数组 调用成功后的返回数据

2、普通用户
(1)用户登录网络接口说明,如表4-19所示。
表 319 用户登录网络接口说明
作用 用户登录
请求的url地址 http://127.0.0.1:1337/user/login
请求方式 POST
传入的API参数 1.username:用户名
2.userpaw:密码
返回的数据格式 json
返回的数据格式说明 (1)如果res_code的值为true,则表示登录成功。如果登录成功,则在data属性中设置isLogin的值为true。
(2)如果res_code的值为false,则表示登录失败并返回失败的消息。

(2)普通用户注册网络接口说明,详见表3-20。
表 320 普通用户注册网络接口说明
作用 普通用户注册
请求的url地址 http://127.0.0.1:1337/user/register
请求方式 POST

续表3-20
传入的API参数 (1)username:用户名
(2)userpaw1:密码
(3)userpaw2:确认密码
返回的数据格式 json
返回的数据格式说明 (1)如果用户提交空的用户名或密码,则res_code的值为false并返回消息“用户名或密码为空!”。
(2)如果用户名在数据库中存在,则res_code的值为false并返回消息“用户名已经存在!”。
(3)如果用户提交的密码和确认密码不一致,则res_code的值为false并返回消息“两次输入的密码不同!”。
(4)如果插入数据失败,则res_code的值为false并返回消息“数据插入失败!”。

(3)用户注销账号,如表3-21所示。
表 321 用户注销账号接口说明
作用 用户注销账号
请求的url地址 'http://127.0.0.1:1337/user/userDrop
请求方式 POST
传入的API参数 userName:用户名
返回的数据格式 json
返回的数据格式说明 (1)如果用户注销账号成功,则将res_code设为true。message的值为“用户账号注销成功!”。data为一个空对象。
(2)如果用户注销账号失败,则将res_code设为false。message的值为“用户账号注销失败!”。data为一个空对象。

(4)修改用户名,如表3-22所示。
表 322 修改用户名的网络接口说明
作用 修改用户名
请求的url地址 http://127.0.0.1:1337/user/updateUserName

续表3-22
请求方式 POST
传入的API参数 (1)userName1:新的用户名
(2)userName2:当前登录的用户名
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示失败的消息。
data:如果res_code为true,则返回新的用户名newUserName,否则返回空对象。

(5)修改年龄,如表3-23所示。
表 323 修改年龄的网络接口说明
作用 修改年龄
请求的url地址 http://127.0.0.1:1337/user/updateUserAge
请求方式 POST
传入的API参数 (1)userAge:新的用户名
(2)userName:当前用户的用户名
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回用户的生日userAge,否则返回空对象。

(6)修改性别,如表3-24所示。
表 324 修改性别的网络接口说明
作用 修改性别
请求的url地址 http://127.0.0.1:1337/user/updateUserSex
请求方式 POST
传入的API参数 1.userSex:新的性别
2.userName:当前用户的用户名
返回的数据格式 json

续表3-24
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回新的用户性别userSex,否则返回空对象。

(7)修改密码,如表3-25所示。
表 325 修改密码的网络接口说明
作用 修改密码
请求的url地址 http://127.0.0.1:1337/user/updateUserPaw
请求方式 POST
传入的API参数 (1)userOldPaw:旧密码
(2)userNewPaw:新密码
(3)userNewPaw1:确认密码
(4)userName:当前用户的用户名
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:返回空对象。

(8)设置或修改密保,如表3-26所示。
表 326 设置或修改密保的网络接口说明
作用 设置或修改密保
请求的url地址 http://127.0.0.1:1337/user/updateUserMibao
请求方式 POST
传入的API参数 (1)mibaoPaw:用户输入的密码
(2)mibaoW:密保问题
(3)mibaoD:密保答案
(4)userName:用户名
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:否则返回空对象。

(9)找回密码,如表3-27所示。
表 327 找回密码的网络接口说明
作用 找回密码
请求的url地址 http://127.0.0.1:1337/user/postForgetMibao
请求方式 POST
传入的API参数 (1)userName:用户名
(2)forgetW:忘记密码的密保问题
(3)forgetD:忘记密码的密保答案
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:返回空对象。

3、管理员
(1)修改管理员密码,如表3-28所示。
表 328 修改管理员密码的网络接口说明
作用 修改管理员密码
请求的url地址 http://127.0.0.1:1337/admin/adminUpdatePaw
请求方式 POST
传入的API参数 (1)adminName:当前登录的用户名
(2)adminOldPaw:旧的密码
(3)adminNewPaw1:新密码
(4)adminNewPaw2:确认密码
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:返回空对象。

(2)获取用户的所有信息,如表3-29所示。
表 329 获取用户的所有信息的网络接口说明
作用 管理员组件加载完就获取用户的所有信息
请求的url地址 http://127.0.0.1:1337/admin/getAllUsers
请求方式 GET
传入的API参数 无
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回所有的用户数据,否则返回空对象。

(3)删除一个用户,如表3-30所示。
表 330 删除一个用户的网络接口说明
作用 删除一个用户
请求的url地址 http://127.0.0.1:1337/admin/adminUserDropOne
请求方式 POST
传入的API参数 adminUserId:选中的用户id
返回的数据格式 json
返回的数据格式说明 (4)res_code: 如果操作成功,则返回true,否则返回false。
(5)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(6)data:如果res_code为true,则返回筛选后所有的用户信息,否则返回空对象。

(4)删除多个用户,如表3-31所示。
表 331 删除多个用户的网络接口说明
作用 删除多个用户
请求的url地址 http://127.0.0.1:1337/admin/adminUserDropMore
请求方式 POST
传入的API参数 checkboxIds:选中的用户id
续表3-31
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回筛选后所有的用户数据,否则返回空对象。

(5)选择用户存在/不存在的标记,如表3-32所示。
表 332 选择用户存在/不存在的标记的网络接口说明
作用 选择用户存在/不存在的标记
请求的url地址 http://127.0.0.1:1337/admin/changeTag
请求方式 POST
传入的API参数 isUsera:用户标记
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回筛选后所有的用户数据,否则返回空对象。

(6)还原一条用户记录,如表3-33所示。
表 333 还原一条用户记录的网络接口说明
作用 还原一条用户记录
请求的url地址 http://127.0.0.1:1337/admin/adminUserRestoreOne
请求方式 POST
传入的API参数 restoreOneId:选中的还原用户id
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回筛选后所有的用户数据,否则返回空对象。

(7)还原多条用户记录,如表3-24所示。
表 334还原多条用户记录的网络接口说明
作用 还原多条用户记录
请求的url地址 http://127.0.0.1:1337/admin/adminUserRestoreMore
请求方式 POST
传入的API参数 checkboxIds:选中的用户id
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回筛选后所有的用户数据,否则返回空对象。

(8)选择性别的标记,如表3-35所示。
表 335 选择性别的标记的网络接口说明
作用 选择性别的标记
请求的url地址 http://127.0.0.1:1337/admin/changeSex
请求方式 POST
传入的API参数 (1)adminUserSex:用户性别值
(2)isUsera:用户标记值
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回筛选后所有的用户数据,否则返回空对象。

(9)筛选某年之前的用户数据,如表3-36所示。
表 336 筛选某年之前的用户数据的网络接口说明
作用 筛选某年之前的用户数据
请求的url地址 http://127.0.0.1:1337/admin/changeAge
请求方式 POST

续表3-36
传入的API参数 adminUserAge:用户输入的年份
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回筛选后所有的用户数据,否则返回空对象。

(10)根据用户名查询用户,如表3-37所示。
表 337 根据用户名查询用户的网络接口说明
作用 根据用户名查询用户
请求的url地址 http://127.0.0.1:1337/admin/changeName
请求方式 POST
传入的API参数 adminUserSelect:查找的用户名
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回筛选后所有的用户数据,否则返回空对象。

(11)管理员新增用户
表 338 管理员新增用户的网络接口说明
作用 管理员新增用户
请求的url地址 http://127.0.0.1:1337/admin/addUser
请求方式 POST
传入的API参数 (1)addUserName:用户名
(2)addUserPaw:密码
(3)addUserDate:生日
(4)addUserSex:性别
返回的数据格式 json

续表3-38
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回筛选后所有的用户数据,否则返回空对象。

(12)修改用户信息,如表3-39所示。
表 339 修改用户信息的网络接口说明
作用 修改用户信息
请求的url地址 http://127.0.0.1:1337/admin/postUpdateUser
请求方式 POST
传入的API参数 (1)updateUserId:用户的id
(2)updateUserName:用户名
(3)updateUserAge:生日
(4)updateUserSex:性别
(5)updateUserTag:标记
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回筛选后所有的用户数据,否则返回空对象。

3、食物相克信心管理
(1)增加食物相克信息,如表3-40所示。
表 340 增加食物相克信息的网络接口
作用 增加食物相克信息
请求的url地址 http://127.0.0.1:1337/fk/addFoodFk
请求方式 POST
传入的API参数 (1)addFkName1:食物名1
(2)addFkName2:食物名2
(3)addFkEffect:效果
返回的数据格式 json

续表3-40
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回result数组,否则返回空对象。

(2)删除一条食物相克数据,如表3-41所示。
表 341 删除一条食物相克数据的网络接口
作用 删除一条食物相克数据
请求的url地址 http://127.0.0.1:1337/fk/fkDropOne
请求方式 POST
传入的API参数 fkId:相克id
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回result数组,否则返回空对象。

(3)修改食物相克信息,如表3-42所示。
表 342 修改食物相克信息的网络接口
作用 修改食物相克信息
请求的url地址 http://127.0.0.1:1337/fk/postUpdateFk
请求方式 POST
传入的API参数 (1)updateFkId:相克id
(2)updateFkFood1:食物名1
(3)updateFkFood2:食物名2
(4)updateFkEffect:效果
(5)updateFkTag:参数
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回result数组,否则返回空对象。

(4)通过标记查询食物相克的数据,如表3-43所示。
表 343 通过标记查询食物相克的数据的网络接口
作用 通过标记查询食物相克的数据
请求的url地址 http://127.0.0.1:1337/fk/changeFkTag
请求方式 POST
传入的API参数 postFkTag:查询食物相克的标记
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回result数组,否则返回空对象。

(5)通过标记和食物名查询食物相克的数据,如表3-44所示。
表 344 通过标记和食物名查询食物相克的数据的网络接口
作用 通过标记和食物名查询食物相克的数据
请求的url地址 http://127.0.0.1:1337/fk/fkSelect
请求方式 POST
传入的API参数 (1)postFkTag:查询食物相克的标记
(2)fkSelectByName:用户输入的食物名
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回result数组,否则返回空对象。

(6)获取食物相克的所有信息,如表3-45所示。
表 345 获取食物相克的所有信息
作用 获取食物相克的所有信息
请求的url地址 http://127.0.0.1:1337/fk/getAllfk
请求方式 GET
续表3-45
传入的API参数 无
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回result数组,否则返回空对象。

3、食物相宜数据管理
(1)新增食物相宜信息,如表3-46所示。
表 346 新增食物相宜信息的网络接口
作用 新增食物相宜信息
请求的url地址 http://127.0.0.1:1337/fy/addFoodFy
请求方式 POST
传入的API参数 (1)addFyName1:食物名1
(2)addFyName2:食物名2
(3)addFyEffect:效果
返回的数据格式 json
返回的数据格式说明 (4)res_code: 如果操作成功,则返回true,否则返回false。
(5)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(6)data:如果res_code为true,则返回result数组,否则返回空对象。

(2)删除一条食物相宜数据,如表3-47所示。
表 347 删除一条食物相宜数据的网络接口
作用 删除一条食物相宜数据
请求的url地址 http://127.0.0.1:1337/fy/fyDropOne
请求方式 POST
传入的API参数 fyId:相宜id
返回的数据格式 json

续表3-47
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回result数组,否则返回空对象。

(3)修改食物相宜信息,如表3-48所示。
表 348 修改食物相宜信息的网络接口
作用 修改食物相宜信息
请求的url地址 http://127.0.0.1:1337/fy/postUpdateFy
请求方式 POST
传入的API参数 (1)updateFyId:食物id
(2)updateFyFood1:食物名1
(3)updateFyFood2:食物名2
(4)updateFyEffect:效果
(5)updateFyTag:标记
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回result数组,否则返回空对象。

(4)通过标记查询食物相宜的数据,如表3-49所示。
表 349 通过标记查询食物相宜的数据的网络接口
作用 通过标记查询食物相宜的数据
请求的url地址 http://127.0.0.1:1337/fy/changeFyTag
请求方式 POST
传入的API参数 postFyTag:查询食物相宜的标记
返回的数据格式 json

续表3-49
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回result数组,否则返回空对象。

(5)通过标记和食物名查询食物相宜的数据
表 350 通过标记和食物名查询食物相宜的数据的网络接口
作用 通过标记和食物名查询食物相宜的数据
请求的url地址 http://127.0.0.1:1337/fy/fySelect
请求方式 POST
传入的API参数 (1)postFyTag:查询食物相宜的标记
(2)fySelectByName:用户输入的食物名
返回的数据格式 json
返回的数据格式说明 (1)res_code: 如果操作成功,则返回true,否则返回false。
(2)message: 如果res_code为true,则显示成功的消息。如果res_code为false,则显示对应的失败消息。
(3)data:如果res_code为true,则返回result数组,否则返回空对象。

3.7 本章小结
本章首先对食物相宜相克系统进行了系统功能的详细设计,然后画出了食物相宜相克系统的类图、顺序图、活动图与状态图,从系统的不同方面展示了食物相宜相克系统的各个功能;接下来是对食物相宜相克系统的数据库进行设计;最后是对食物相宜详解系统网络接口进行设计。

第4章系统实现

4.1 用户界面的实现
1、 系统的主页设计。主页分为3部分,即导航栏,图片部分、底部。顶部是导航栏。在整个网站的设计中,这一部分基本上时固定的。中间是一副图片,使页面比较美观。底部包括友情链接、版权说明和练习方式。如图4-1所示。

在这里插入图片描述

图 41 食物相宜相克系统的主页

2、 系统的登录界面设计。主要用来处理用户的登录请求。登录组件中主要包括用户登录字样、用户名输入框、密码输入框和登录按钮。如图4-2所示。
在这里插入图片描述

图 42 登录界面

3、 注册界面。主要用来收集用户的注册信息。注册界面包括用户注册字样、用户名输入框、密码输入框、确认密码输入框、立即注册按钮和用户协议部分。如4-3所示。
在这里插入图片描述

图 43 注册界面

4、普通用户信息管理界面。图4-4显示的是user普通用户的界面,并且都点击了修改文字的显示结果。
在这里插入图片描述

图 44 user用户信息修改界面

5、用户信息管理。主要用来对用户信息的增、删、改和查。也可以在这个组件中切换到食物相宜管理组件、食物相克管理组件。如图4-5所示。
在这里插入图片描述

图 45 管理员admin界面中的用户管理界面

6、白菜的食物相宜信息。点击顶部导航栏的搜索按钮则显示搜索结果页面,在搜索结果页面输入白菜然后点击“相宜食物搭配及功效”按钮的显示结果。如图4-6所示。
在这里插入图片描述

图 46 白菜的食物相宜信息

7、白菜的食物相克信息。点击顶部导航栏的搜索按钮则显示搜索结果页面,在搜索结果页面输入白菜然后点击“相克食物搭配及后果”按钮的显示结果。如图4-7所示。
在这里插入图片描述

图 47 白菜的食物相克信息
4.2 本章小结
本章主要是对食物相宜相克系统的设计进行实现,给出各个功能界面的截图以展现系统实现的效果。

第5章 系统测试

5.1 测试计划
系统测试的目的是测试系统是否符合预期的结果,即符合规格说明书的要求。还可以测试系统存在的一些未知的错误。同时,在测试过程中,还可以优化系统,提升系统的可靠性、可用性。本系统采用黑盒测试的方式,测试系统的功能能否正常实现。具体的测试计划如下:
测试1:名称:用户登录测试
目的:测试用户登录功能
内容:用户名和密码输入,合法性检查,管理员登录成功后跳转到管理员主页,普通用户登录成功后跳转到普通用户主页。
测试2:名称:用户注册测试
目的:测试用户注册功能
内容:输入用户名、密码、确认密码,系统检查数据的合法性,注册成功后跳转到登录界面。
测试3:名称:用户信息查询测试
目的:测试用户信息查询的功能
内容:需要先登录才能查询用户的信息。查询成功后显示在用户的主页上。
测试4:名称:修改用户名测试
目的:测试修改用户名的功能
内容:需要先登录才能修改用户名信息。修改成功后将显示新的用户名。
测试5:名称:增加食物相克信息测试
目的:测试增加食物相克信息的功能
内容:输入两个食物名、效果,增加成功后显示添加的食物相克信息。
测试6:名称:删除一条食物相克信息测试
目的:测试删除一条食物相克信息的功能
内容:选择要删除的食物相宜相克信息。删除成功后显示删除的食物信息。
测试7:名称:修改食物相克的信息测试
目的:测试修改食物相克信息的功能
内容:可以修改食物名、效果、标记。修改成功后显示修改的数据。
测试8:名称:查询食物相克信息测试
目的:测试查询食物相克信息的功能
内容:输入查询的食物名。查询成功后显示查询的数据。
5.2 系统测试用例
1、用户登录测试
功能描述:游客输入用户名和密码进入用户主界面。用户名和密码不能为空,否则提示错误信息。如果游客输入的用户名或密码错误,则登录失败,否则登录成功。如果普通用户登录则进入普通用户主页,如果管理员登录则进入管理员主页。测试用的管理员用户名和密码都是1,测试用的普通用户的用户名和密码都是2。
测试目的、测试输入、测试结果和测试说明详见表5-1。
表 51 用户登录测试用例表
测试目的 测试输入 测试结果 测试说明
用户名 密码
用户名为空 (为空) 1234 用户名不能为空! 用户名为空
密码为空 1234 (为空) 密码不能为空! 密码为空
用户不存在 user 123 用户不存在! user用户已经注销了账号
管理员登录 1 1 登录成功! 管理员登录成功
普通用户登录 2 2 登录成功! 普通用户登录成功
登录失败 1234 1234 用户名或密码错误! 登录失败

2、用户注册测试
功能描述:游客可以进行注册,称为普通用户。用户名、密码、确认密码中的任何一项都不能为空,否则提示错误信息。密码和确认密码必须相同。用户名不能和现有的普通用户用户名、管理员用户名重复。如果数据验证成功,注册成功后将跳转到登录组件。测试用的管理员用户名和密码都是1,测试用的普通用户的用户名和密码都是2。
测试目的、测试输入、测试结果和测试说明详见表5-2。
表 52 用户注册测试用例表
测试目的 测试输入 测试结果 测试说明
用户名 密码 确认密码
用户名为空 (空) 1234 1234 用户名或密码不能为空! 用户名测试
密码为空 1234 (空) 1234 用户名或密码不能为空! 密码测试
确认密码为空 1234 1234 (空) 用户名或密码不能为空! 密码测试
密码相同 1234 1234 1235 两次输入的密码不同! 密码测试
用户名长度 1234
5678
910 1234 1234 用户名最多10个字符! 用户名测试
密码长度 1234 输入21个1 1234 密码最多20个字符! 密码测试
用户名包含空格 1 23 1234 1234 用户名或密码包含空格! 用户名测试
密码包含空格 1234 1 23 1234 用户名或密码包含空格! 密码测试
没有勾选用户协议 1234 1234 1234 请阅读并同意用户协议! 用户阅读并勾选用户协议。
管理员用户名重复 1 1234 1234 用户名已经存在!
普通用户用户名重复 2 1234 1234 用户名已经存在!
注册成功 3 1234 1234 数据插入成功! 跳转到登录组件

3、用户信息查询测试
功能需求:用户登录后可以查看自己的信息,管理员可以按照查询条件查询用户的信息,查询条件有用户名、用户标记、用户性别、用户年龄。普通用户看到自己的详细信息表示查询成功,否则查询失败。管理员可以根据查询条件查看普通用户的信息。
用户查询自己的信息的测试目的、测试输入、测试结果和测试说明详见表5-3。
管理员查询普通用户的信息的测试目的、测试输入、测试结果和测试说明详见表5-4。
表 53 用户查询自己的信息的测试用例表
测试目的 测试内容 测试结果 测试说明
用户查看自己的信息 登录成功后点击头像即可查询得到自己的信息 显示普通用户的信息,包括用户名、年龄、性别 用户查看自己的信息

表 54 管理员查询普通用户的信息测试用例表
测试目的 测试内容 测试结果 测试说明
获取用户的数据 管理员登录 进入管理员信息管理主页 显示所有的用户标记为1的用户数据 获取普通用户的数据
测试选择存在的显示 进入管理员信息管理主页 点击用户管理 选择存在 正常显示存在(标记为1)的数据
测试选择不存在的显示 进入管理员信息管理主页 点击用户管理 选择不存在 正常显示存在(标记为2)的数据
测试选择空数据 进入管理员信息管理主页 点击用户管理 选择“=用户存在?=” 提示——你还没有选择“存在/不存在”的数据!
选择性别为“男” 进入管理员信息管理主页 点击用户管理 选择性别为“男” 显示性别为“男”的数据
选择性别为“女” 进入管理员信息管理主页 点击用户管理 选择性别为“女” 显示性别为“女”的数据
选择性别为“未知” 进入管理员信息管理主页 点击用户管理 选择性别为“未知” 显示性别为“未知”的数据 性别为“未知”的为默认值
续表5-4
选择性别为空字符串 进入管理员信息管理主页 点击用户管理 选择性别为“==性别?=” 提示——你还没有选择性别数据!
输入年份的最小范围测试 进入管理员信息管理主页 点击用户管理 年份输入框中输入数字0 提示——输入的年份小于1000!
输入年份的最大范围测试 进入管理员信息管理主页 点击用户管理 年份输入框中输入数字2050 提示——输入的年份超过2021年!
输入正常年份返回数据 进入管理员信息管理主页 点击用户管理 年份输入框中输入数字2000 显示2000年之前出生 的用户的数据
输入用户名 进入管理员信息管理主页 点击用户管理 用户名份输入框中输入数字1 显示用户名为1、111、123的数据 根据用户名进行模糊查找

4、修改用户名测试
功能描述:普通用户登录后,点击用户头像或用户名进入用户信息展示界面,点击用户名后面的“笔”,这是弹出填写新用户名的表单。在输入框中输入新的用户后点击提交,如果修改成功则显示新的用户名并隐藏表单,否则提示错误信息。
测试目的、测试输入、测试结果和测试说明详见表5-5。
表 55 修改用户名测试用例表
测试目的 测试内容 测试结果 测试说明
测试空用户名 没有输入用户名直接点击提交按钮 提示——请输入用户名
用户名重复验证 输入数字1 点击提交按钮 提示——用户名已经存在! 用户名为1的管理员为测试的用户名

续表5-5
用户名重复验证 输入数字2 点击提交按钮 提示——用户名已经存在! 用户名为2的普通用户为测试的用户名
显示新的用户名 输入数字3 点击提交按钮 显示新的用户名3

5、增加食物相克信息测试
功能描述:管理员增加食物相宜相克信息,只有管理员能添加食物相克信息,普通用户没有这个权限。管理员登录后进入食物相克管理界面,点击“增”超链接即弹出添加食物相克的表单,需要输入的数据包括食物1、食物2、效果并选择标记,数据验证成功后添加一条食物相克信息,否则弹出对话框提示错误。
测试目的、测试输入、测试结果和测试说明详见表5-6。
表 56 增加食物相克信息测试的测试用例
测试目的 测试内容 测试结果 测试说明
食物1判空 没有在食物1输入框中输入内容即点击“增加”按钮 提示——食物名不能为空!
食物2判空 在食物1的输入框中输入“白菜”,没有在食物2输入框中输入内容即点击“增加”按钮 提示——食物名不能为空!
食物1包含空格 在食物1输入框中输入“白 菜” 提示——食物名不能包含空格!
食物2包含空格 在食物2输入框中输入“白 菜” 提示——食物名不能包含空格!
食物1和食物2重复 在食物1和食物2中输入相同的食物名 提示——食物名1和食物名2不能重复!

续表5-6
效果判空 在食物1和食物2输入框中分别输入“白菜”和“三七”,在效果输入框中没有输入 提示——食物效果不能为空!
判断在效果中输入空格 在食物1和食物2输入框中分别输入“白菜”和“三七”,在效果输入框中输入“延年 益寿” 提示——食物效果不能包含空格!
判断食物相克数据重复 在食物1和食物2中分别输入“白菜”和“猪肉”或分别输入“猪肉”和“白菜” 提示——食物相克数据重复! 食物1和食物2不能和数据库中的食物1和食物2重复,食物1和食物2不能和数据库中的食物2和食物1重复

6、删除一条食物相克信息测试
功能描述:管理员登录后进入食物相克管理界面,选中食物相克的信息,点击“删”按钮则进行食物相克数据删除,然后备份食物相克数据。
测试目的、测试输入、测试结果和测试说明详见表5-7。
表 57 删除一条食物相克信息测试的测试用例
测试目的 测试内容 测试结果 测试说明
登录验证 如果任何人没有管理员身份即发送食物相克数据删除的请求 提示——你还没有登录,请先登录! 用Postman工具测试
id判空 发送删除食物相克数据请求时没有传递参数 提示——输入的id不能为空! 用Postman工具测试

续表5-7
id的数据类型判断 发送删除食物相克数据请求时传递的数据类型不是数字类型 提示——输入的id的数据类型不正确! 用Postman工具测试
id的最小值测试 传递的参数为数字0 提示——输入的id值不正确! 用Postman工具测试
id的最小值测试 传递的参数为数字4294967296 提示——输入的id值不正确! 用Postman工具测试

7、修改食物相克的信息测试
功能描述:管理员登录后进入食物相克信息管理界面,选中修改的食物相克记录,这是弹出食物相克信息修改表单,在这里可以修改食物1的名称、食物2的名称、效果、标记
测试目的、测试输入、测试结果和测试说明详见表5-8。
表 58 修改食物相克的信息测试的测试用例
测试目的 测试内容 测试结果 测试说明
id判空 发送删除食物相克数据请求时没有传递参数 提示——相克id不能为空! 用Postman工具测试
id的数据类型判断 发送删除食物相克数据请求时传递的数据类型不是数字类型 提示——相克id数据类型不正确! 用Postman工具测试
id的最小值测试 传递的参数为数字0 提示——相克id值错误! 用Postman工具测试
id的最小值测试 传递的参数为数字4294967296 提示——相克id值错误! 用Postman工具测试
食物1判空 食物1输入框中没有任何数据 提示——食物1不能为空!
食物1的数据类型判断 食物1中传入的参数是1234(数字类型) 提示——食物1数据类型不正确! 用Postman工具测试
续表5-8
测试目的 测试内容 测试结果 测试说明
食物1中包含空格 在食物1输入框中输入“白 菜” 提示——食物1不能包含空格!
食物1的长度判断 在食物1输入框中输入11个“白”字 提示——食物1的长度不能超过10!
食物2判空 食物2输入框中没有任何数据 提示——食物2不能为空!
食物2的数据类型判断 食物2中传入的参数是1234(数字类型) 提示——食物2数据类型不正确! 用Postman工具测试
食物2中包含空格 在食物2输入框中输入“白 菜” 提示——食物2不能包含空格!
食物2的长度判断 在食物2输入框中输入11个“白”字 提示——食物2的长度不能超过10!
食物1名和食物2名相同 在食物1和食物2输入框中都输入“白菜” 提示——食物1和食物2重复!
效果判空 在效果输入框中没有任何数据即发送请求 提示——效果不能为空!
效果的数据类型判断 传入效果的参数是数字 提示——效果的数据类型不正确! 用Postman工具测试
效果包含空格 在效果的输入框中输入“延年 益寿” 提示——效果不能包含空格!
效果值的最大长度判断 在效果输入框中输入121个“白”字 提示——效果值的长度不能超过120!
标记判空 没有传入的标记或传入值为空字符串 提示——标记不能为空! 用Postman工具测试
标记的数据类型判断 输入的标记值不是数字类型 提示——标记数据类型不正确! 用Postman工具测试

续表5-8
测试目的 测试内容 测试结果 测试说明
标记值最小值判断 输入的标记值为0 提示——标记值不正确! 用Postman工具测试
标记值最小值判断 输入的标记值为3 提示——标记值不正确! 用Postman工具测试
判断食物相克数据重复 在食物1和食物2中分别输入“白菜”和“猪肉”或分别输入“猪肉”和“白菜” 提示——食物相克数据重复! 食物1和食物2不能和数据库中的食物1和食物2重复,食物1和食物2不能和数据库中的食物2和食物1重复

8、查询食物相克信息测试
功能描述:管理员或者普通用户都可以查询食物相克信息,只需要在一个输入框中输入食物名,如果食物1或食物2包含输入的食物名则显示食物相克信息,否则提示错误信息。
测试目的、测试输入、测试结果和测试说明详见表5-9。
表 59 查询食物相克信息测试的测试用例
测试目的 测试内容 测试结果 测试说明
输入的数据判空 没有输入要查询的食物名即提交查询 提示——你还没有输入数据!
输入的数据类型判断 传递输入值的参数为1234(数字) 提示——输入数据的数据类型不正确! 用Postman工具测试
判断输入的最大长度 在输入框中输入101个“白”字 提示——输入值的长度必须小于登录100!

5.3 本章小结
本章阐述了系统测试的目的以及意义,然后列出了测试计划,给出了测试用例,分别进行了测试:用户登录测试、用户注册测试、用户注销账户测试、用户信息查询测试、修改用户名测试、增加食物相克信息测试、删除一条食物相克信息测试、修改食物相克的信息测试、查询食物相克信息测试,证明了食物相宜相克系统的大部分功能是没有问题的。通过黑盒测试,使系统更加健壮、更加实用。

第6章 结束语

一、全文总结
本文实现了基于JavaScript的食物相宜相克系统的设计。首先研究了系统实现背景和意义,然后说明了课题的研究方法和内容。接下来是对系统进行需求分析,可行性分析从经济可行性、技术可行性和操作可行性来描述,分析了系统的总体需求、系统的业务需求和系统的功能需求。还通过建立系统的用例模型来描述系统的功能。接下来对系统进行设计,从不同角度出发,使用了类图、顺序图、活动图、状态图、数据库设计、网络接口设计来描述整个系统。然后是系统实现,通过用户界面展示了系统。最后对系统进行测试,通过系统测试提高了系统的安全性、可用性、操作简洁性。
二、课题展望
对于食物相宜相克来说,很多人不信,也有很多人信,信有理,不信也有理。在我看来,食物相克是指不要长期大量食用某些食物的搭配。有句话叫“是药三分毒”,结合“药食同源”的说法,那么我相信每种食物多少都是有点毒的。适当的食物搭配能够减少这种毒性,不适当的搭配则会增加这些食物的毒性。就个人感觉来说,食物之间的相宜相克对体弱者和患病者的作用尤其明显。我国将步入老龄化社会,老年人更关心自己的身体健康,因此食物相宜相克将会产生一定的需求。

第7章 参考文献

[1]明日科技. 零基础学HTML5+CSS3(全彩版). 吉林:吉林大学出版社, 2017
[2]Davld Flanagan著,淘宝前端团队译. JavaScript权威指南(第六版). 北京:机械工业出版社, 2012
[3]Douglas Crockford著, 赵泽欣等译. JavaScript语言精髓(修订版). 北京:电子工业出版社, 2012
[4]刘博文. 深入浅出Vue.js. 北京:人民邮电出版社. 2019
[5]刘增杰,张少军著. MySQL5.5从零开始学. 北京:清华大学出版社,2012
[6]黄丹华等著. Node.js开发实战详解(文字版). 北京:清华大学出版社, 2014
[7]Lan,Sommerville,彭欣等译. 软件工程. 北京:机械工业出版社, 2018
[8]朱少明. 全程软件测试. 北京:人民邮电出版社, 2019
[9]中国营养学会著. 中国居民善食指南(2016). 北京:人民卫生出版社,2016
[10]常学辉著. 食物相宜相克速查. 天津:天津科学技术出版社,2013
[11]节约网主编. 食物相宜相克大百科. 吉林:吉林科学技术出版社,2011
[12]中国疾病预防控制中心营养与食品安全所编著,杨月欣主编. 中国食物成分表2004(第二册).北京:北京大学医学出版社,2004

第8章 致谢

在这四年的学习生活中,有欢乐、有悲伤,有老师的教导,有同学相伴,获益匪浅。获得了计算机知识的大致体系,学习了一些基本的计算机知识。感谢祖国创造了这个学习的大环境,感谢父母的支持,感谢学院的培养,感谢老师和同学的帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值