食物相宜相克大全报告.docx
- 文档编号:18049882
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:19
- 大小:1.17MB
食物相宜相克大全报告.docx
《食物相宜相克大全报告.docx》由会员分享,可在线阅读,更多相关《食物相宜相克大全报告.docx(19页珍藏版)》请在冰点文库上搜索。
食物相宜相克大全报告
财经信息工程系
2013-2014-2学期
移动网络开发技术期末考核
——食物相宜相克大全
专业:
计算机科学与技术
班级:
11计本2班
学生姓名:
朱亚萍
学号:
2011511798
2014年6月13日
食物相宜相克大全软件设计与实现
摘要
食物相宜相克大全是根据GoogleAndroid平台用户的喜好和其平台的特性而设计的,在GoogleAndroid平台自带的SDK1.5环境下,运用Eclipse相关工具进行开发的关键技术,对食物相宜相克大全软件做了详细的需求分析,并重点介绍了基于Android平台的食物相宜相克的总体设计,主要包括食物相宜相克的架构设计、各功能模块的设计与实现。
本文设计的食物相宜相克软件通过了功能和性能方面的测试,证明了本文设计方案的可行性。
通过对基于Android平台食物相宜相克的设计与实现的介绍,希望能为今后开发出功能更强大的食物相宜相克软件提供有益的借鉴。
关键词:
GoogleAndroid;Eclipse;架构设计
FoodappropriaterestraintsoftwareDesignandImplementation
Abstract
Properdiet,eatgoodfood,tohealthcare,especiallyforweakbodyandsickpeopletorecoveruseful,improperdiet,eatfood,notonlycannotabsorbnutrientsinfood,butalsohaveadverseeffectsonhumanhealth.Inourpursuitofdietnutritionatthesametime,oftengettheoppositeofwhatonewantssomethings,findbyhardandthoroughsearch,foodandfoodrestrictionisarch-criminal.
食物相宜相克大全是根据GoogleAndroid平台用户的喜好和其平台的特性而设计的,在GoogleAndroid平台自带的SDK1.5环境下,运用Eclipse相关工具进行开发的关键技术,对食物相宜相克大全软件做了详细的需求分析,并重点介绍了基于Android平台的食物相宜相克的总体设计,主要包括食物相宜相克的架构设计、各功能模块的设计与实现。
FoodappropriaterestrictionsystemisdesignedaccordingtothecharacteristicsofGoogleAndroidplatformuserpreferencesanditsplatform,intheGoogleAndroidplatformwithSDK1.5environment,keytechnologyofusingtheEclipsetoolsfordevelopment,tofoodforGsystemsoftwaretodoadetailedneedsanalysis,andfocusesontheoveralldesignofAndroidplatformforfoodbasedontheappropriaterestriction,designandRealizationofeveryfunctionmodulemainlyincludesarchitecturedesignforFoodappropriaterestraintsoftware.
本文设计的食物相宜相克软件通过了功能和性能方面的测试,证明了本文设计方案的可行性。
通过对基于Android平台食物相宜相克的设计与实现的介绍,希望能为今后开发出功能更强大的食物相宜相克软件提供有益的借鉴。
Thefoodappropriaterestraintsoftwarethroughthefunctionalandperformancetest,provedthefeasibilityofthisdesignscheme.ThedesignofAndroidplatformandimplementationofappropriaterestrictionfoodbasedintroduction,hopetoprovideausefulreferenceforthefuturedevelopmentofmorepowerfulsoftwareforgramsoffood.
Keywords:
GoogleAndroid;Eclipse;Architecturedesign
绪论
有些食物单独食用对人体好处多多,但和其他食物组合在一起食用就会不利于健康,比如鲜滑的豆腐和绿油油的菠菜一起吃时容易患结石症、金黄鲜美的橘子遇到萝卜就会诱发甲状腺肿大。
有些食品本来平谈无奇,但和其他食品一起食用就能组合成“黄金搭档”,比如大蒜和黄瓜同食是减肥的一剂良方,生姜加醋摇身一变可以治疗恶心和呕吐。
了解食物相宜相克知识,还能学到都市常见病中应该注意的饮食宜忌,药物与相关食物或药物的相克,烹调禁忌以及饮食习惯禁忌等生活息息相关的饮食知识。
快节奏,高效率是现代人生活的关键词,用手机查询食物相宜相克方便快捷,食物相宜相克游戏是基于Android平台开发的一款小游戏,适用于任何时间任何地点,方便快捷查出食物之间的相宜相克。
1相关技术
1.1Andriod特征
Dalvik虚拟:
Android采用的Java虚拟机是自主开发的代号为Dalvik的虚拟机技术,在保证API方面兼容的同时Dalvik针对移动手机进行了大幅优化,占用资源更小,运行效率更高。
内嵌浏览器:
基于开源的浏览器网页排版引擎WebKit。
优化的图形:
强大的自定义二维图形库。
基于OpenGLES1.0标准的3D图形功能,在移动3D开发中有着至关重要的地位。
SQLite数据库:
SQLitet提供结构化的数据存储。
它是一款轻型免费的且开源的数据库,它的设计目标是嵌入式的,它占用的资源非常低、需要的内存空间少、处理速度比较快和支持事务处理功能等。
多媒体支持:
支持各种通用的音视频和静态图像格式,如MP3、JPG、PNG等。
Open Core是Android多媒体框架的核心,所有Android平台的音视频采集,播放的操作都是通过它来实现的。
通过Open Core,程序员可以方便快速的开发出想要的多媒体应用程序。
GSM技术:
(依赖硬件)Global System for Mobile Communications,全球移动通讯系统,俗称“全球通”,是第二代移动通信技术,其开发El的是让伞球各地可以共同使用一个移动电话网络标准,让用户使_一部手机就能行遍全球。
蓝牙,EDGE,3G,and WiFi是一种短距离的无线连接技术,在短距离内可以实现话音和数据的无线传输。
EDGE(EnhaIlced Data Rate for GSM Evolution),是增强型数据速率GSM演进技术。
Camera,GPS,compass,and accelerometer:
(依赖硬件)GPS(GlobalPositionSystem)全球定位系统。
它是一个由覆盖全球的24颗1J星组成的卫星系统。
Compass是个开放源代码的JAVA搜索引擎框架。
强大的开发环境:
包括一个设备模拟器,调试工具,内存和性能检测,以及EclipseIDE的开发插件。
Eclipse是个集成开发环境。
1.2Andriod应用的构成和工作机制
对于一个Android应用程序来说,是由Activity、ntent Receiver 、Service、Content Provider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。
在应用程序中使用时,需要在配置文件AndroidMainfest.xml中进行配置。
这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。
1.2.1.Activity
Activity是构成应用程序中最重要的构造块,在Android应用程序中,几乎都是通过Activity来与用户进行交互,所以Activity主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用
setContentView(View)方法来显示你自己的用户界面。
图1 Activity状态变换路径图
(1)活动生命周期
活动(Activity)在系统中以活动栈的形式进行管理。
当一个新的活动启动后,被放到了栈项,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台。
从图1Activity状态转换路径图中可以看出,Activity有三个关键的循环:
1.活动的整个生命期从首次调用onCreate(Bundle)开始,到最终调用onDestroyO结束。
在onCreate()中进行所有初始化,在onDestroyO时进行清理工作,释放资源。
2.活动的可见生命期:
从调用onStart()开始,到onStop()被调用为止。
在这段时间内,即使活动不与用户进行交互,用户也可以在屏幕上看到它。
在这两个方法调用之间,可以维护活动显示给用户的资源。
onStart()和onStop()方法可以多次调用,因为活动随时可以在可见和隐藏之间进行转换。
3.活动的后台生命期:
从调用onResume()开始,到onPause()被调用为止。
在这段时间内活动处于其它所有动之前,并与用户进行交互。
一个活动可以不断在resumed状态和paused状态之间变换。
(2)活动之间的切换
Android使用了Intent类来实现活动之间的切换工作。
Intent负责对应用中一次操作的动作、动作涉及的数据和附加数据进行描述。
根据Intent的描述,负责找到对应的组件,将Intent传递给调用的组件并完成组件的调用。
因此,Intent起着一种媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。
在应用中,我们可以以两种形式来使用Intent:
直接Intent,指定了component属性的Intent,通过指定具体的组件类,通知应用启动对应的组件。
间接Intent,没有指定comonent属性的Intent,则需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此Intent的组件。
1.2.2.Intent Receiver
Intent Receivert是用于对外部事件的响应,当外部事件发生时,会使用NotificationManager通知用户。
当一个Intent Receiver被触发时,系统会在需要的时候启动对应的应用程序。
如在本系统中,当用户正在其它界面进行操作时,有好友发送消息过来,就会以通知的形式发送到当前界面的正上方来通知用户。
各种应用还可以通过使用Context.broadcastIntent()
将它们的Intent Receiver广播给其它的应用程序,实现应用之间的通讯。
1.2.3.Service
Service是提供连续信息的应用程序。
它是运行于应用程序后台的服务,在用户进行其它活动的时候,这个服务将一直运行在基于Android平台的即时通讯系统的研究与实现后台直到用户停止该服务或服务运行结束。
本系统客户端扩展功能的阅读器就是采用Service来进行设计和开发的,使用户可以边聊天边看书。
1.2.4.Content Provider
Content Provider应用程序能够将它们的数据保存到文件、SQL数据库和其它的存储设备中。
当应用程序需要使用存储设备中的数据时,可以使Content Provider来完成。
使用Content Provider
能够灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据
2软件设计与实现
2.1软件功能模块设计
软件开始,界面出现查询文本框和搜索、查询全部按钮。
如果点击查询全部,则界面转到显示全部食物及其相宜相克食物的界面;如果要点击搜索,输入食物名字,点击搜索按钮,如果数据库里存在输入的食物,则显示所查询食物的相宜相克食物,如果名字在数据库里不存在,则提示搜索内容不存在,如果没有输入名字,就点击搜索按钮,则提示搜索内容不能为空。
如图2所示。
是
否
搜索内容为空
名字在数据库里存在名字在数据库里不存在
图2功能模块设计图
2.2数据库设计
privatestaticclassDBOpenHelperextendsSQLiteOpenHelper
{
publicDBOpenHelper(Contextcontext,Stringname,CursorFactoryfactory,intversion)
{
super(context,name,factory,version);
}
privatestaticfinalStringDB_CREATE="createtable"+
DB_TABLE+"("+KEY_ID+"integerprimarykeyautoincrement,"+
KEY_FOODTITLE+"textnotnull,"+KEY_XY+"text,"+KEY_XK+"text);";
publicvoidonCreate(SQLiteDatabasedb)
{
db.execSQL(DB_CREATE);
db.execSQL("insertintofoodvalues(1,'菜花','鸡肉、蘑菇','牛奶、猪肝')");
db.execSQL("insertintofoodvalues(2,'香菇','猪肉、金针菇、豆腐、扁豆','')");
db.execSQL("insertintofoodvalues(3,'南瓜','绿豆、莲子','辣椒、牛肉')");
db.execSQL("insertintofoodvalues(4,'黄瓜','木耳、黄花菜','辣椒、西红柿、菠菜、花生、芹菜、香菜')");
db.execSQL("insertintofoodvalues(5,'红枣','牛奶、核桃','海蟹、紫菜')");
db.execSQL("insertintofoodvalues(6,'山楂','排骨','胡萝卜、猪肝、海味')");
db.execSQL("insertintofoodvalues(7,'香蕉','','土豆、酸牛奶、红薯、芋头、地瓜')");
db.execSQL("insertintofoodvalues(8,'虾','油菜、白菜','红枣、芹菜')");
db.execSQL("insertintofoodvalues(9,'菠萝','盐','萝卜、牛奶、鸡蛋')");
db.execSQL("insertintofoodvalues(10,'绿豆','大米、南瓜','狗肉、猪肉、菱')");
}
2.3代码实现
主功能代码:
publicclassFoodActivityextendsActivity
{
privateEditTextedit;
privateButtonss,cx;
privateDBAdapterdbAdepter;
publicvoidonCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
edit=(EditText)findViewById(R.id.editText1);
dbAdepter=newDBAdapter(this);
dbAdepter.open();
ss=(Button)findViewById(R.id.button1);
ss.setOnClickListener(newOnClickListener()
{
publicvoidonClick(Viewv)
{
Strings=edit.getText().toString();
if(!
TextUtils.isEmpty(s))
{
Food[]foods=dbAdepter.queryOneData(s);
if(foods!
=null)
{
Intentintent=newIntent();
intent.putExtra("food",s);
intent.setClass(getApplication(),Ss.class);
startActivity(intent);
}else
{
Toast.makeText(getApplication(),"搜索内容不存在!
",Toast.LENGTH_SHORT).show();
}
}else
{
Toast.makeText(getApplication(),"搜索内容不能为空!
",Toast.LENGTH_SHORT).show();
}
}
});
cx=(Button)findViewById(R.id.button2);
cx.setOnClickListener(newOnClickListener()
{
publicvoidonClick(Viewv)
{
Intentintent=newIntent();
intent.setClass(getApplication(),Cx.class);
startActivity(intent);
}
});
}
}
搜索界面显示代码:
publicclassFood
{
publicint_id=-1;
publicStringfoodtitle;
publicStringxy;
publicStringxk;
publicStringtoString()
{
Stringresult="";
result+="相宜:
"+this.xy+"\n\n";
result+="相克:
"+this.xk;
returnresult;
}
publicStringtoString1()
{
Stringresult="";
result+="食物:
"+this.foodtitle+"\n";
result+="相宜:
"+this.xy+"\n";
result+="相克:
"+this.xk+"\n\n";
returnresult;
}
}
点击搜索后显示此食物相宜相克食物代码实现:
publicclassSsextendsActivity
{
privateTextViewtt,txt;
privateDBAdapterdbAdepter;
publicvoidonCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.ss);
tt=(TextView)findViewById(R.id.textView1);
txt=(TextView)findViewById(R.id.textView2);
Intentintent=getIntent();
Stringfood=intent.getStringExtra("food");
dbAdepter=newDBAdapter(this);
dbAdepter.open();
queryData(food);
}
publicvoidqueryData(Stringfood1)
{
Food[]foods=dbAdepter.queryOneData(food1);
tt.setText(food1);
txt.setText(foods[0].toString());
}
}
点击查询全部按钮后显示所有的食物及与其相宜相克食物代码实现:
publicclassCxextendsActivity
{
privateEditTextmm;
privateDBAdapterdbAdepter;
publicvoidonCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.cx);
mm=(EditText)findViewById(R.id.mm);
dbAdepter=newDBAdapter(this);
dbAdepter.open();
queryAllData();
}
privatevoidqueryAllData()
{
Food[]foods=dbAdepter.queryAllData();
Stringmsg="";
for(inti=0;i { msg+=foods[i].toString1()+"\n"; } mm.setText(msg); } } 3测试用例及界面显示 (1)主界面如图3所示 图3主界面 (2)点击查询全部之后页面转到Cx出现如图4所示。 图4全部食物 (3)在主界面中输入黄瓜,如图5所示,则界面转到ss界面,显示查询结果,如图6所示: 图5输入黄瓜界面 图6显示黄瓜相宜相克食物界面 结论 随
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 食物 相宜 相克 大全 报告