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

目 录
摘 要 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 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 data;

    public BaseSectionAdapter(Context context, int layoutRes, List 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 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);
        }
    }


}

健康先行微信小程序设计与实现_第1张图片
健康先行微信小程序设计与实现_第2张图片
健康先行微信小程序设计与实现_第3张图片
健康先行微信小程序设计与实现_第4张图片
健康先行微信小程序设计与实现_第5张图片
健康先行微信小程序设计与实现_第6张图片
健康先行微信小程序设计与实现_第7张图片
健康先行微信小程序设计与实现_第8张图片
健康先行微信小程序设计与实现_第9张图片
健康先行微信小程序设计与实现_第10张图片
健康先行微信小程序设计与实现_第11张图片
健康先行微信小程序设计与实现_第12张图片
健康先行微信小程序设计与实现_第13张图片
健康先行微信小程序设计与实现_第14张图片
健康先行微信小程序设计与实现_第15张图片
健康先行微信小程序设计与实现_第16张图片
健康先行微信小程序设计与实现_第17张图片

你可能感兴趣的:(微信小程序,小程序,健康小程序,毕业设计,源码)