目 录
基于Android的个人健康管理系统
Personal Health Management System Based On Android
1 引言 1
1.1 课题背景 1
1.2 编写目的 1
1.3 关于Android 1
1.4 关于MVC框架 3
2 可行性研究 6
2.1 技术可行性 6
2.2 经济可行性 6
2.3 时间可行性 6
3 需求分析 7
4 总体设计 8
4.1 功能设计 8
4.2 数据库设计 9
4.3 界面设计 10
4.4 权限需求 11
4.5 应用版本要求 11
4.6 项目编写环境要求 11
5 详细设计 13
5.1 Logo界面设计 13
5.2 登录界面设计 13
5.3 注册界面设计 14
5.4 主界面设计 15
5.5 饮水管理界面设计 17
5.6 锻炼管理界面设计 18
5.7 休息管理界面设计 20
5.8 饮食管理界面设计 21
5.9 评分系统界面设计 22
5.10 个人信息管理界面设计 24
6 项目结果 26
6.1 项目目录结构图 26
6.2 项目主要界面展示 28
6.3 项目部分代码 31
6.4 项目其它界面展示 33
结论 36
参考文献 37
致 谢 38
2 可行性研究
2.1 技术可行性
个人健康管理系统项目是基于Android开源语言的移动应用软件。以MVC模式,通过Java语言和XML配置混合进行开发。Android语言发展至今,已经非常成熟。项目相关数据库功能使用Android自带的SQLite轻量级数据库,基于SQL语言进行数据库功能方面的设计与开发。项目的功能实现与交互界面的优化方面,通过Android自带组件、自定义组件和第三方组件可达到不错的实现效果。所以,从技术方面来看,使用Android语言进行本应用开发是可行的。
2.2 经济可行性
本项目属于个人开发,无需投入大量资金,所以经济上可行。
2.3 时间可行性
本项目应用开发时间上安排充足,所以时间上可行。
3 需求分析
随着生活水平的提高,健康一词的关注度越来越高,人们越来越注重锻炼、养生,加之现代社会快节奏的生活通,所以需要一个便捷、快速、随时可使用的应用软件。所以通过开发Android移动应用可以很好的实现上诉性能。对于个人健康管理系统,需要实现的功能有记录日常锻炼、休息提醒、健康饮水、推荐健康时蔬、健康评分等功能。应用需要保留相关信息,例如个人信息、锻炼信息等。同时,人机交互性能需要得到注重,目标是实现一个界面友好、操作简单、便于使用的移动健康管理APP。
4 总体设计
4.1 功能设计
根据项目的基本目标和需求进行分析可得项目所需基本实现的功能为登录功能、注册功能、锻炼管理功能、饮水管理功能、饮食管理功能、休息管理功能、评分功能、个人信息管理功能、退出应用功能。
根据设计得出的用例图如下:
图4-1 总体设计用例图
登录系统功能需要实现的基本内容有进行账户登录,拥有一定规则的验证功能。
注册系统功能需要实现的基本内容有进行账户注册,拥有一定规则的验证功能。
锻炼管理功能需要实现的基本内容有记录每天锻炼信息、增加删除修改锻炼信息。
饮水管理功能需要实现的基本内容有记录饮水状况、提供相关健康饮水知识。
饮食管理功能需要实现的基本内容有提供健康饮食的知识。
休息管理功能需要实现的基本内容有健康作息提醒、使用手机休息提醒。
评分系统功能需要实现的基本内容有根据一套评分标准进行评分并显示。
个人信息管理功能需要实现的基本内容有管理个人信息,包括个人账号的删除、修改、更换等功能。
退出系统功能需要实现的基本内容有实现应用退出功能。
项目主界面onCreate代码:
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);chart_db=new Chart_Dao(this);chart_month_dao=new Chart_Month_Dao(this);db_account=new UserAccountDao(this);chartInit();chart_btn=(Button) findViewById(R.id.chart);name_title=(TextView) findViewById(R.id.name_title);Cursor namebar=db_account.db_C_Query();namebar.moveToNext();name_title.setText(namebar.getString(2));if(chart_goals>70) chart_btn.setBackgroundResource(R.drawable.green_btn);else if(chart_goals<50) chart_btn.setBackgroundResource(R.drawable.red_btn_select);else chart_btn.setBackgroundResource(R.drawable.blue_btn);}项目主界面计分逻辑部分代码:
chart_goals=0;Cursor data=chart_db.dbQuery();Calendar c_date=Calendar.getInstance();String date=c_date.get(Calendar.YEAR)+"-"
+(c_date.get(Calendar.MONTH)+1)+"-"+c_date.get(Calendar.DAY_OF_MONTH);if(data.moveToNext()){if(date.split("-")[1].equals(data.getString(0).split("-")[1])){if(!chart_db.dbQuery(date).moveToNext()){chart_db.dbInsert(new String[]{date,"Y","N","N","N","70"});}for(int index=0;index<data.getCount();index++){if("Y".equals(data.getString(4))) chart_goals+=Integer.parseInt(data.getString(5));else{int temp=70;if("Y".equals(data.getString(2))&&"Y".equals(data.getString(3))) temp=100;else{if("Y".equals(data.getString(2))) temp=90;if("Y".equals(data.getString(3))) temp=80;}chart_goals+=temp;}data.moveToNext();}}