收藏 分销(赏)

java基于Android的健康饮食搭配论文.doc

上传人:a199****6536 文档编号:3102269 上传时间:2024-06-18 格式:DOC 页数:20 大小:2.80MB 下载积分:10 金币
下载 相关 举报
java基于Android的健康饮食搭配论文.doc_第1页
第1页 / 共20页
java基于Android的健康饮食搭配论文.doc_第2页
第2页 / 共20页


点击查看更多>>
资源描述
课程设计报告 题目: 基于Android的健康饮食搭配 院(系): 计算机系 专业班级: 计科1301 学 号: 学生姓名: 目 录 第1章 课程设计目的与要求 1 1.1设计目的 1 1.2实验环境 1 1.3预备知识 1 1.4设计要求 1 第2章 课程设计内容 2 2.1 课题描述 2 2.2 系统设计 4 2.2.1功能分析 4 1.1 软件产品名称 4 1.2 软件总体功能 4 2.2.2面向对象设计 4 2.2.2类成员描述 7 2.3程序实现, 8 2.3.1源码分析 8 2.3.2运行结果 12 第3章 总结 16 参考文献 17 第1章 课程设计目的与要求 1.1设计目的 将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。 通过课程设计,学生在下述各方面的能力应该得到锻炼: (1)进一步巩固、加深学生所学专业课程《JAVA语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。 (2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。 (3)利用所学知识,开发小型应用系统,掌握运用JAVA语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。 (4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 (5)掌握面向对象程序设计的方法。 (6)熟练掌握JAVA语言的基本语法,灵活运用各种数据类型。 (7)进一步掌握在集成环境下如何调试程序和修改程序。 1.2实验环境 硬件要求能运行Windows 操作系统的微机系统。JAVA语言应用程序开发软件使用:VJAVA 系统,或其他JAVA语言应用程序开发软件。 1.3预备知识 熟悉JAVA语言程序设计的基本知识及VJAVA编辑器的使用方法。 1.4设计要求 1.仔细分析设计题目,画出程序流程图,编写程序源代码。 2.积极上机调试源程序,增强编程技巧与调程能力。 3.认真书写课程设计预习报告,课程设计说明书。 4.遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。 第2章 课程设计内容 2.1 课题描述 一. Android平台 1. 谷歌与开放手机联盟合作开发了Android, 这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。 2. Android是一个真正意义上的开放性移动设备综合平台。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 3. 所有的Android应用之间是完全平等的。 4. 所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于应用和硬件资源间进行通讯的API。撇开这个核心引擎,Android的所有其他的东西都是“应用”。 5. Android打破了应用之间的界限,比如开发人员可以把Web上的数据与本地的联系人,日历,位置信息结合起来,为用户创造全新的用户体验。 二. Java开发环境 Java技术包含了一个编程语言及一个平台。Java编程语言具有很多特性,如面向对象、跨平台、分布式、多线程、解释性等等。Java编程语言起源于Sun公司的一个叫“Green”的项目,目的是开发嵌入式家用电器的分布式系统,使电气更加智能化。1996年1月发布了JDK1.1版本,一门新语言自此走向世界。之后,1998年12月发布了1.2版本,2002年2月发布1.4版本,2004年10月发布1.5版本(5.0),2006年12月发布1.6(6.0)版本,这是目前的最新版本。Java1.2版本是一个重要的版本,基于该版本,Sun将Java技术分为J2SE、J2ME、J2EE,其中J2SE为创建和运行Java程序提供了最基本的环境,J2ME与J2EE建立在J2SE的基础上,J2ME为嵌入式应用(如运行在手机里的Java程序)提供开发与运行环境,J2EE为分布式的企业应用提供开发与运行环境。 三. Eclipse Eclipse的基础是富客户机平台(Rich Client Platform,即RCP)。 RCP包括下列组件: l 核心平台(Eclipse,运行插件) l 标准集束框架(OSGi : Open Service Gateway initiative) l 可移植构件工具包(SWT : Eclipse's Standard Widget Toolkit) l JFace(文件缓冲,文本处理,文本编辑器) Eclipse采用的技术是IBM公司开发的SWT,这是一种基于Java的窗口组件,类似Java 本身提供的AWT和Swing窗口组件:不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其他所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基于内核包括:图形API(SWT/JFace),Java开发环境插件(JDT),插件开发环境(PDE)等。Eclipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。已有的分离的插件已经能够支持C/C++(CDT)、Perl、Ruby、Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。 四. Android程序基础—Android应用程序的构成 1.Activity 顾名思义,Activity就是活动。应用程序必须至少包含一个Activity。Activity提供了一个虚拟的用户接口,每一个Activity都有一个默认的窗口可以用来显示用户界面,一般情况下,它是全屏的窗口。例如,影音播放软件的每个用户界面就是Activity。 2.Service Service与Activity的主要区别在于,Service是在后台活动的,它没有用户界面。典型的应用场景是,用户选择了一个播放列表开始播放后,离开了该用户界面(Activity),如果仍然希望歌曲不会暂停,就可以用Service去调用播放器,而不是在Activity中调用播放器。 3.Intent 在Android中,每一个行为都可以抽象为一个Intent。可以简单地把Intent理解为一个包含了数据的消息。Intent可以用于启动一个Act-ivity或者Service,可以用于进程间的通信。事实上,应用程序的启动也是通过Intent实现的。 4.Content providers Android平台内置了一套SQLite数据储存机制,并包含一系列管理SQLite Database的相关方法。在应用程序中,可以通过Content prov-iders访问数据库。每个Content provider都定义了一系列的方法用于访问它对应的数据库。应用程序在新建数据库时也可以定义相应的Con-tent provider用于向其他应用程序共享数据。一般情况下,应用程序不直接调用 Content provider定义的函数,而是通过ContentResolver间接调用。 2.2 系统设计 2.2.1功能分析 1.1 软件产品名称 一个基于Android平台健康饮食搭配软件 1.2 软件总体功能 (1) 能够预览各种食物    (2) 能查看具体食物的详细信息 (3) 能够上下滑动寻找食物信息 (4) 能够在手机上使用该系统 2.2.2面向对象设计 1. 类的设计 (1)系统类层次结构图如图2.1 图2.1系统类层次及结构图 (2)类的详细设计 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="cn.zz.activity" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainApp" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".FoodListView" android:label="@string/app_name"> </activity> <activity android:name=".About" android:label="@string/app_name"> </activity> <activity android:name=".FoodInfo" android:label="@string/app_name"> </activity> </application> <uses-sdk android:minSdkVersion="8" /> </manifest> cn.zz.activity包括了4个主要的类 1 .MainApp是这个程序的主类负责程序的执行和监视等等 2. FoodListView主要负责食物的列表预览 3. About的功能是显示程序的备注说明信息 4. FoodInfo主要是具体食物的详细信息 (3) 本系统整体UML图如图2.2所示: 图2.2UML图 2.2.2类成员描述 明确了主要功能后,就需要对此软件基本流程有一个总体规划,本款手机软件基本流程图如图2.3所示。 图2.3程序总体流程图 成员描述 本程序主要包含了4个类 1 .MainApp类,这个是Activity类的子类,由于上文已经介绍过Activity,这里就不做过多赘述。OnClickListener()是Activity其中的一个方法主要负责对Click这个事件的监视。这个类中还分别定义了两个按钮Button list和Button about一个是控制列表的一个是控制查询的。当程序执行onClick(),OnClickListener()就会监视到这个事件进行一系列的处理。 2. FoodListView 类,这个类是ListActivity类的子类,继承了他的OnItemClickListener()方法,这个方法主要用来对OnItemClick事件进行监视,也就是对列表滑动事件进行监视。这个类使用了listView这个控件来控制列表中视图显示项目。其中各种食物的详细信息都用静态数组String []进行存储。还用到了一个重要的控件就是SimpleAdapter,它是一个简单的适配器,可以将静态数据映射到XML文件中定义 好的视图。你可以指定数据支持的列表如ArrayList组成的Map。在ArrayList中 的每个条目对应List中的一行。Maps包含每行数据。你可以指定一个定义了被用于显示行的视图XML文件,通过关键字映射到指定的视图。 3. About 类,这个类里面只有一个onCreate()方法用来“表示一个窗口正在生成”。其不产生窗口,只是在窗口显示前设置窗口的属性如风格、位置等。 4. FoodInfo 类,这个类也是ListActivity的子类,其中里面有2个按钮Button image和Button back一个是图片按钮,另一个是返回按钮。还有一个TextView用来显示文本信息。这个类中只有一个简单的onClick事件。就不做过多叙诉了。 2.3程序实现, 2.3.1源码分析 /*此代码是健康食物搭配的部分源码,下部分是程序的主代码部分由张齐设计,完成时间是2013年6月*/ package cn.zz.activity; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; import android.view.View.OnFocusChangeListener; import android.widget.Button; public class MainApp extends Activity implements OnClickListener{Button list=null; Button about=null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); list=(Button)findViewById(R.id.foodlistbtn); about=(Button)findViewById(R.id.aboutbutton); // list.setText(text); // list.setCompoundDrawables(left, top, right, bottom); list.setOnClickListener(this); about.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub if(v.getId()==R.id.foodlistbtn){ Intent intent=new Intent(); intent.setClass(MainApp.this, FoodListView.class); startActivity(intent); list.setBackgroundResource(R.drawable.btn_food_list_active); }else if(v.getId()==R.id.aboutbutton){ Intent intent=new Intent(this, About.class); startActivity(intent); about.setBackgroundResource(R.drawable.btn_food_about_active); } } } package cn.zz.activity; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.Button; import android.widget.SimpleAdapter; import android.widget.TextView; public class FoodInfo extends ListActivity { Button image=null; Button back=null; TextView foodinfo=null; String[] efood={"黄连"}; String [] efoodinfo={"猪肉多脂,酸寒滑腻。若中药配方中以黄莲为主时,应忌食猪肉,不然会降低药效,且容易引起腹泻。"}; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.foodinfo); Bundle bundle=getIntent().getExtras(); int drawable=bundle.getInt("drawable"); String foodname=bundle.getString("foodname"); String efoodname=bundle.getString("efoodnema"); String foodinfos=bundle.getString("foodinfo"); image=(Button)findViewById(R.id.Button); image.setBackgroundResource(drawable); image.setText(foodname); foodinfo=(TextView)findViewById(R.id.TextView03); foodinfo.setText(foodinfos); back=(Button)findViewById(R.id.backbutton); back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Button b=(Button)v; b.setBackgroundResource(R.drawable.btn_back_active); Intent intent=new Intent(FoodInfo.this, FoodListView.class); startActivity(intent); } });List<Map<String, Object>> data=new ArrayList<Map<String,Object>>(); for(int i=0;i<efood.length;i++){ Map<String, Object> map=new HashMap<String, Object>(); map.put("TextView04", efood[i]); map.put("TextView05", efoodinfo[i]); data.add(map); } SimpleAdapter adapter=new SimpleAdapter(this, data, R.layout.ex_foodinfo,new String[]{"TextView04","TextView05"} , new int[]{R.id.TextView04,R.id.TextView05}); setListAdapter(adapter); } } 2.3.2运行结果 图2.4程序的主界面 图2.5程序的二级页面 图2.5程序的二级菜单 图2.6程序的详细介绍页面 图2.7程序的关于页面 第3章 总结 在此次课程设计中,不仅了解到了android的有关知识,而且学习了Java语言以及eclipse等硬件环境。有几点需要特别注意: (1) 要明确课程设计的要求,想好系统应该包含哪些功能模块。否则,在软件设计的后期,再想添加新的功能就需要花费大量的时间。 (2) 要对android系统有一定的了解。在软件设计过程中,大量的用到了android系统的四大组件:Activity(提供可视化的界面)、Service(运行在后台的服务程序)、Broadcast Receiver(广播事件处理机制)、Content Provider(使应用程序相互访问数据)。只有对这些组件熟练掌握后,才能够真正设计出稳健搞笑的多媒体播放器。 (3) 要对Java语言熟练掌握。Android软件开发都是用Java语言写的,而Java又是由类组成的。而Java语言本身又含有众多机制,只有深刻理解这些机制后,才能轻松地实现自己想要的功能。 (4) 要对界面设计有一定的了解。Android所有的布局都放在了res/layout中,而所有的菜单选项都放在了res/menu中。合理的布局对人性化的界面也是至关重要的。 (5)要具备快速上网查资料的能力。面对从没接触过的知识,要有信心才是最重要的。另外,网上的很多现成的资料都可借鉴、学习。在熟练理解了别人的应用程序的基础上,再做二次开发。 在这个过程中,我学会了很多知识,比如Android环境的搭建、Intent、Activity、Service、ContentProvider、SQLite等,但我学会的最重要的一点是,利用现有的资源去解决问题,在图书馆、在网络上寻找答案。  虽然,这个软件目前运行良好,但是我认为代码的健壮行还很差,在整个工程的构思方面也不足,用户操作界面还不够灵活,这些问题还需要今后逐一解决。与此同时,这个软件还可以进一步扩展,例如“新闻模块”、“百宝箱”等,是功能更加强大,带给用户更好的体验与生活的便捷。 参考文献 1.耿祥义 张跃平 编著 《JAVA2实用教程》(第4版) 北京:清华大学出版社 2.张跃平 耿祥义编著《Java 2实用教程(第4版)实验指导与习题解答》 北京:清华大学出版社 3.杨丰盛 著《Android应用开发揭秘》 北京:机械工业出版社 4.王世江 编著《Google Android开发入门指南》(第2版) 北京:人民邮电出版社 5.明日科技 著《Android从入门到精通》(第1版)北京:清华大学出版社 6.一得 著 《安卓工程师教你玩转Android》(第1版) 北京:电子工业出版社 7.李刚 著《疯狂Android讲义》(第1版) 北京:电子工业出版社 8.Mark L.Murphy 著《Android开发入门》北京:人民邮电出版社 9.郭宏志 著 《Android应用开发详解》(第1版)北京:清华大学出版社 10.杨丰盛 著 《Android应用开发揭秘》(第1版)北京:机械工业出版社 (注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服