健康先行微信小程序设计与实现

目 录
摘 要 I
Abstract II
1 绪论 1
1.1 选题背景及意义 1
1.2 国内外研究现状 1
1.3 研究主要内容 2
2 关键技术和开发环境 4
2.1健身指标 4
2.2 JSP开发技术 5
2.3 MySQL数据库 7
2.4 小程序 8
2.5 个性化推荐技术 9
2.6 开发环境及工具 10
3 健康先行微信小程序系统分析 12
3.1 需求分析 12
3.1.1 会员帐户系统需求分析 13
3.1.2 计划系统 15
3.1.3摄入支出系统 16
3.2 可行性分析 17
3.2.1 经济可行性 17
3.2.2技术可行性 17
3.2.3 法律可行性 18
3.2.4 时间可行性 18
4 健康先行微信小程序系统设计 19
4.1 总体设计 19
4.2详细设计 19
4.2.1服务端设计 19
4.2.2 客户端设计 21
4.2.3 数据库设计 21
5 健康先行微信小程序系统实现 25
5.1生成计划功能 25
5.2身材管理 25
5.3 摄入支出平衡管理 26
5.4 健康管理 27
6 健康先行微信小程序系统测试 28
6.1系统兼容性测试 28
6.2系统功能性测试 28
6.3 系统性能测试 29
7 总结 30
参考文献 31
致 谢 33

5 健康先行微信小程序系统实现
5.1生成计划功能
通过自适应计划,让每个用户找到适合自己的计划,树立明确的运动目标。用户通过点击想要的达成的效果或者部位,如图5-1所示,进入计划详细页面进行计划的细微调整如图5-2所示。
5.2身材管理
通过身材管理直观的看到身材变化趋势,梳理运动信心。用户通过测量身材数据,并在小程序上记录身材变化如图5-3,添加成功后便可以直观的看到变化趋势,如图5-4所示。

5.3 摄入支出平衡管理
通过摄入支出平衡体系用户可以方便的查询到食物热量等信息,科学健康饮食健身。用户在搜索栏中搜索想要查询的食物/运动并根据找到的食物选择摄入的时间与份量,如图5-5。选择完成后成功添加到当日摄入食物列表中,如图5-6。
5.4 健康管理
通过基础数据帮助用户计算出个人健康状况表,用户通过修改个人资料,身高,体重等参数,如图5-7。本文转载自http://www.biyezuopin.vip/onews.asp?id=14129根据用户身体数据得到自身身体状况,如图5-8。

6 健康先行微信小程序系统测试
系统测试为系统开发的最后一道工序,只有经过缜密的系统测试,才能保证系统性能与功能的可靠性。通过测试用例反复测试,能将系统内一些隐藏的错误挖掘出来,从而让系统 及时得到修复与改善。

package com.zszdevelop.planman.view;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;

import com.zszdevelop.planman.base.BaseBean;
import com.zszdevelop.planman.utils.LogUtils;

import java.util.List;

import butterknife.ButterKnife;

/**
 * Created by jimmy on 15/12/29.
 */
public abstract class BaseSectionAdapter<T extends BaseBean> extends RecyclerView.Adapter {

    private final static int ITEM_TYPE_HEAD = Integer.MIN_VALUE;
    private final static int ITEM_ADAPTER_OFFSET = 1;

    private Context context;
    private int layoutRes;
    private List<T> data;

    public BaseSectionAdapter(Context context, int layoutRes, List<T> data) {
        this.context = context;
        this.layoutRes = layoutRes;
        this.data = data;
    }

    public T getItem(int position) {
        if (data.size() <= 0) {
            return null;
        }
        return data.get(position);
    }

    @Override
    public final RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        if (viewType == ITEM_TYPE_HEAD) {
            return onCreateHeadViewHolder(parent, ITEM_TYPE_HEAD);
        } else {
            return onCreateItemViewHolder(parent, viewType - ITEM_ADAPTER_OFFSET);
        }
    }

    @Override
    public final void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        int type = holder.getItemViewType();

        if (type == ITEM_TYPE_HEAD && position == 0) {
            //head的相关逻辑写在这里
            LogUtils.e("处理头部的逻辑");
            onBindHeadView(holder, position);
        } else {
            //这个是处理常规ITEM的操作
            onBindItemView(holder, position - (hasHeader() ? 1 : 0) );
        }

    }

    @Override
    public int getItemViewType(int position) {
        if (position == 0 & hasHeader()) {
            return ITEM_TYPE_HEAD;
        } else {
            return super.getItemViewType(position) + ITEM_ADAPTER_OFFSET;
        }
    }

    @Override
    public int getItemCount() {
        int itemCount = getBasicItemCount();
        if (hasHeader()) {
            itemCount += 1;
        }

        return itemCount;
    }

    public void appendData(List<T> list) {
        if (list == null) {
            return;
        }
        data.addAll(list);
    }

    public void clear() {
        LogUtils.e(data.size()+"前");
        data.clear();
        LogUtils.e(data.size() + "后");
        notifyDataSetChanged();
    }


    private int getBasicItemCount() {
        return data.size();
    }

    public abstract boolean hasHeader();


    public abstract RecyclerView.ViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType);

    public abstract RecyclerView.ViewHolder onCreateHeadViewHolder(ViewGroup parent, int viewType);


    public abstract void onBindItemView(RecyclerView.ViewHolder holder, int position);

    public abstract void onBindHeadView(RecyclerView.ViewHolder holder, int position);

    protected class OtherViewHolder extends RecyclerView.ViewHolder {


        public OtherViewHolder(View itemView) {
            super(itemView);
            ButterKnife.bind(this, itemView);
        }
    }

    static class ViewHolder extends RecyclerView.ViewHolder {

        public ViewHolder(View itemView) {
            super(itemView);
            ButterKnife.bind(this, itemView);
        }
    }


}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基于微信小程序健康管理(小程序+ssm完整源码+演示视频) 基于微信小程序健康管理 能需求: - [ ] 满足心理健康检测需要题库随机抽题,首次注册完成做题给予初步评价,评价结果反应给管理员,不同班级分配给主管本班级的管理员。 - [ ] 提供一个留言板块可匿名和实名,可以选择只给管理员看和给好友看,可回复留言 - [ ] 管理员学生可以直接发消息交流 - [ ] 出现心理健康问题人员要及时向管理员发出提示 - [ ] 学生首次注册要完善个人信息统一为多级,管理者1编号2编号 一个学生设置两名管理者,班级编号 - [ ] 该小程序主要包括 3 个主体界面模块;“首页模块”、“留言聊天模块”、“我的模块”。其中首页模块主要包括三大导航栏:“心理健康测查”、“心理健康小故事”、“我的心理健康状态”。其中“心理健康测查”主要用于测查学生心理健康状况分为随机测查和固定时间测查保证能及时准确了解学生心理健康情况;“心理健康小故事”栏目展示关于心理健康的故事分享用于提高学生心理健康水平;“我的心理健康状态”栏目展示学生目前心理健康情况和问题。 - [ ] 管理员主要为管理学生心理健康不需要进行心理健康教育,因此登陆时需要有学生管理者的区分 - [ ] 最对一个班级所有学生心理健康状态进行统计,推送给管理员以图形形式。 - [ ] 在做程序的时候最好带上注释,可以让我看的明白 ,什么模块时什么东西。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

shejizuopin

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

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

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

打赏作者

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

抵扣说明:

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

余额充值