基于Android的食物储藏信息管理软件的设计与实现.doc

上传人:仙人指路1688 文档编号:3018967 上传时间:2023-03-08 格式:DOC 页数:33 大小:1.44MB
返回 下载 相关 举报
基于Android的食物储藏信息管理软件的设计与实现.doc_第1页
第1页 / 共33页
基于Android的食物储藏信息管理软件的设计与实现.doc_第2页
第2页 / 共33页
基于Android的食物储藏信息管理软件的设计与实现.doc_第3页
第3页 / 共33页
基于Android的食物储藏信息管理软件的设计与实现.doc_第4页
第4页 / 共33页
基于Android的食物储藏信息管理软件的设计与实现.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《基于Android的食物储藏信息管理软件的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于Android的食物储藏信息管理软件的设计与实现.doc(33页珍藏版)》请在三一办公上搜索。

1、南 阳 理 工 学 院本科生毕业设计(论文)学院(系): 软件学院 专 业: 软件工程 学 生: 宋冬冬 指导教师: 肖飞 完成日期 2012 年 04 月南阳理工学院本科生毕业设计(论文)基于Android的食物储藏信息管理软件的设计与实现Design and Implementation ofFood Storage Management Software Based on Android总 计:毕业设计(论文) 26页表 格: 2个图 片: 16个南 阳 理 工 学 院 本 科 毕 业 设 计(论文) 基于Android的食物储藏信息管理软件的设计与实现Design and Implem

2、entation ofFood Storage Management Software Based on Android学 院(系): 软件学院 专 业: 软件工程 学 生 姓 名: 宋冬冬 学 号: 068108122 指导教师(职称): 肖飞 讲师 评 阅 教 师: 于彬 讲师 完 成 日 期: 2012年04月15日 南阳理工学院Nanyang Institute of Technology基于Android的食物储藏信息管理软件的设计与实现软件工程 宋冬冬摘 要 当今3G网络的大规模建立和智能手机的迅速普及,一个新的时代-移动互联网已经微笑着迎面而来。移动互联网与智能手机有着自身独特的

3、优势,使得人们更方便的办公、娱乐,生活更加轻松。为了使人们对家庭里的食物能够更科学的管理,让人们随时随地能了解家庭所储藏食物的情况,及时让人们购买所需要的食物,本文提出一个基于Android的食物储藏信息管理软件的解决方案。运用android语言配合SQLite数据库开发一款手机软件。人们通过手机了解家里的食物信息并对食物进行管理。该软件可以根据家庭储藏的食物具体信息及个人设置,对各种食物可进行食用量不足提醒,同时,也可以根据所储藏的食物情况,生成相应的购物单,方便人们理性购物。关键词 食物储藏;Android;SQLite;科学管理;轻松购物Design and Implementation

4、 ofFood Storage Management Software Based on AndroidSoftware Engineering MajorSong DongdongAbstract: Todays 3G network of large-scale establish and the rapid popularization of smart phones, a new era-mobile Internet has come with a smile. Mobile Internet and smart phones has its unique advantages.Pe

5、oples office work ,entertainment can become more convenient and relaxing by useing them.In order to enable people manage food more scientific in family,let them master their food in storeroom whenever and wherever possible and buy food what they need in time.This paper puts forward a solution abaut

6、Android based food storage information management software . we develop a mobile software by android language and SQLite database.People know about the information of food and manage the information of food by phone.According to personal set,it can remind you if the food is not enough.It also can be

7、 based on the storage of food and make a shopping list .And it also is convenient for people to have a rational shopping.Key words: Food storage;Android;SQLite;Scientific management;Easy shopping目 录1 背景、意义与目的11.1 课题开发背景11.2 课题开发意义11.3 课题开发目的12 系统分析22.1 可行性分析22.2 系统流程图22.3 系统开发运行环境22.4 需求分析设计32.4.1 添

8、加食物界面32.4.2 查看食物界面32.4.3 修改删除食物界面32.4.4 设置提醒界面32.4.5 购买清单界面42.5 设计原则及一般要求43 系统设计43.1 模块设计43.2 详细功能模块设计53.2.1 食物储存信息管理软件模块架构53.2.2 添加食物模块63.2.3 查看食物模块63.2.4 修改、删除食物模块63.2.5 设置提醒模块63.2.6 购买清单模块63.3 数据库设计63.3.1 SQLite简介63.3.2 数据库分析73.3.3 数据库概念设计及表结构74 编码与实现94.1 进入系统模块94.2 选择模块104.3 添加模块114.4 查看模块144.5

9、设置提醒模块164.6 购买清单模块175 系统测试与运行185.1 系统测试185.1.1 系统测试简介185.1.2 系统测试过程185.2 系统运行195.3 系统测试运行总结216 总结与展望22结束语23参考文献25致谢261 背景、意义与目的本节会以课题开发背景,课题开发意义,课题开发目的三个方面进行详细阐述基于Android的食物储藏信息管理软件的必要性。1.1 课题开发背景社会的进步与科技的发展,个人计算机和互联网技术使得人类的发展有了一个质的飞跃,相辅相成的同时,科技含量更高更新的技术也在不断发展。人们通过互联网了解了更多的有用信息,实时性的新闻与消息,让我们更快的融入信息时

10、代。大量的数据信息充斥着我们的生活。公司需要对员工、产品、财务等等的各种信息进行管理,学校需要对学生,老师的课程,个人信息进行管理。这些那些的信息,都需要我们运用相应的工具管理。对于庞大的信息数据,原始的纸张记录早已不能满足人们工作、生活、学习的需求,计算机的产生帮人们解决了燃眉之急1。但是社会发展之迅速,人们的生活步骤不断加快,更轻松更便捷的智能手机与移动互联网时代应运而生。人们不再局限于在家,在公司,只要有手机,就能随时随地的上网,办公,对很多信息能够更快的了解,接触。人们使用手机去管理自己的工作与生活,已经势在必行。1.2 课题开发意义智能手机与移动互联网的飞速发展,让人们体验到方便,高

11、效与快乐,这就使人们对这个新的平台抱有更多的需求与要求。面对着快节奏的生活,人们忙碌工作了一天,回家发现某些食物吃完了,使得本来已经疲倦的身体更加疲惫,本来愉悦的心情也可能瞬间消失不见2。可是把食物的信息存储在电脑上,使用条件的限制,反而为食物的管理添加了繁琐的条件。手机是当今人们的生活必须品,更重要的是,人们可以随身携带,随时使用。小巧的身材,这是个笔记本电脑也无法比拟的优势,所以使用手机对家庭食物的管理是最明智的选择。1.3 课题开发目的本课题意在开发基于Android的食物储存信息管理软件,让人们通过手机就能够随时了解自己家庭食物的详情。让人们通过简单的输入,把食物信息输入的手机中,人们

12、可以进行查看,修改,删除等操作,还可以设置时间,对某些食用量不足的食物进行提醒,从而让人们能够及时补充家里的食物。同时,还为用户设计了生成购买清单的功能,可以根据人们自己的要求和家庭里储藏食物的具体情况,生成可供人们购物的购买清单,使人们理性消费,理性购物3。2 系统分析2.1 可行性分析从技术方面来看,该软件开发使用SQLite作为软件的数据库,它是一个轻量型数据库,适用于手机方面的应用开发。使用Android作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发带来便利,能保证开发满足用户需求的系统。从运行方面来看,本软件作为一个小型的手机管理软件,所耗费

13、的资源很小,在手机市场上,一般的Android手机无论是硬件还是软件都能满足使用条件。因此,本软件在运行上是可行的。经过了对Android的食物储藏信息管理软件的分析,可以确定在Android平台上开发的该软件从技术和运行方面来说都是可以实现的。2.2 系统流程图软件设计需要满足用户使用的习惯,提高用户体验。该软件系统流程如图2-1所示:开始进入退出添加食物查询食物设置提醒生成清单修改信息删除信息返回退出图21 系统流程图2.3 系统开发运行环境我所设计的是一款手机软件,帮助用户管理家里储存的食物信息,要求开发的软件系统需要满足用户的需求,无论硬件还是软件都需要选择适当,要求如下:开发设备应该

14、完备;开发机器的性能必须稳定;操作系统的选择应该适当;开发出的程序可以在尽可能多的平台上运行;要求运行机配置尽可能低档。操作系统:windows 7数据库:SQLite(Android提供的一个标准的数据库,支持SQL)Android 版本:Android 2.2开发工具:eclipse + android SDk2.4 需求分析设计按照该软件设计方案,大致分为添加、查看、修改、删除、设置提醒、生成清单,这几个功能模块。2.4.1 添加食物界面用户使用该软件进入系统,选择后进入添加界面。用户可以选择所添加的食物的储藏位置,例如:冰箱,厨房,储藏室。然后点击所添加食物的图片,选择购买日期,输入该

15、食物可食用多少天(相当于食物购买量),设置提醒条件(食物剩下多少天的食用量时提醒),完成食物输入。如果添加界面中没有该食物的图片,用户可以自行编辑食物名称进行添加。2.4.2 查看食物界面用户选择进入查看食物界面,可以选择要查询食物的环境,例如:冰箱,厨房,储藏室,全部食物。点击看到该环境下的所有食物,点击食物列表,可以看到食物的详细信息。如果食物过多,不利于查找,可以编辑食物名称查找。2.4.3 修改删除食物界面在食物的查看界面当中,当点击食物列表查看食物的详细信息时,可以对食物进行修改,和删除操作。点击修改,进入修改界面,修改食物的购买时间,购买量(可以使用多少天),提醒条件(食物剩余多少

16、天的食用量),完成后保存。点击删除按键,将删除该食物的所有信息。2.4.4 设置提醒界面用户进入设置提醒界面,可以选择要提醒的时间。用户在食物添加的同时,会设置食品提醒的条件(当食品剩余多少天的食用量)。用户通过设置提醒时间,当到达这个时间点,同时手机上的食物满足用户所设置的提醒条件,手机会跳出提醒界面,提醒用户:该食物不足,请及时购买,小心断粮!如果用户不需要提醒,可以关闭提醒或者一开始不进行提醒时间及提醒条件(食物食用量)的设置。2.4.5 购买清单界面用户进入购买清单界面,可以进行选择:食用量小于三天,食用量小于五天,使用量小于七天,这三个级别的参考购买清单。同时用户可以根据自己的情况,

17、自定义购买清单,比如:生成食用量小于四天的参考购买清单。2.5 设计原则及一般要求参照各个模块的功能与具体的特点,设计的整个android食物信息储存系统应该达到以下目的4:1.稳定性。整个软件应该能够稳定运行,不同的android的手机不会影响到软件本身的正常运行,并且不会与其他软件发生冲突。2.准确性。软件本身所应用的数据应该保证能有序的管理,不会发生错乱现象,数据间的传递不能发生错误。3.安全性。使用该软件时所用到的信息,应该保证其安全,在软件系统设计的同时,运用相关技术保证软件所保存的数据不会丢失。4.可扩展性。该软件系统需要添加新的功能方便用户的使用,不需要重新开发重写源码。只需要在

18、原有的应用基础上进行相应的功能性扩展。5.易使用性。对于大部分的群众,在看过软件的“帮助”后能了解本软件的正确使用方法,使用户能够快速上手,满足用户的需求,使软件真正意义上的帮助用户。6.先进性。在保证软件稳定运行的情况下,尽量使用国际上流行的技术与概念来设计,保证软件出于先进水准。3 系统设计3.1 模块设计系统的模块设计,如表3-1所示:表 3-1模块设计功能模块进入模块1.进入系统2.退出系统选择模块1.添加食物2.查看食物3.设置提醒4.生成清单5.退出系统添加食物模块1.冰箱添加食物2.厨房添加食物3.储藏室添加食物4.返回查看食物模块1.查看冰箱食物2.查看厨房食物3.查看储藏室食

19、物4.查看全部食物1.修改食物2.删除食物3.返回5. 返回设置提醒模块1.选择、设置提醒时间2.开启、关闭提醒3.返回生成清单模块1.选择相应条件的购买清单2.返回3.2 详细功能模块设计3.2.1 食物储存信息管理软件模块架构食物储存信息管理软件模块架构,大致描述如图3-1所示:选择模块添加食物模块查看食物模块购买清单模块设置提醒模块返回图31 模块结构图3.2.2 添加食物模块它包括食物的储存位置的选择,食物的名称,选择食物的购买日期,食物的食用量(能使用多少天),提醒条件(食物食用量剩下多少时提醒)。3.2.3 查看食物模块它包括食物的储藏位置选择,食物的详细列表,可输入查找食物,点击

20、查看食物的详细信息。3.2.4 修改、删除食物模块它包括食物名称,购买日期,食用量,提醒条件。可以修改食物的购买日期,食用量,提醒条件。对不需要或者输入错误的食物进行删除。3.2.5 设置提醒模块通过此模块设置食物不足时,手机提醒用户的时间。通过用户的选择的时间,到达该指定时间,如果满足用户设置的食物剩余提醒条件,手机会弹出窗口,自动提醒。如果用户不需要此功能,可以关闭提醒。3.2.6 购买清单模块通过此模块,用户根据自己的情况,选择具体的参考购买清单。用户也可以输入相应的条件,自定义购买清单。3.3 数据库设计3.3.1 SQLite简介SQLite,是一款轻型的数据库,是遵守ACID的关系

21、式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常低,在嵌入式设备中,可能只需要几百k的内存就够了。它能够支持windows、liunx、unix等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite的第一个Alpha版本诞生于2000年5月,至今已经有10个年头,SQLite也迎来了一个新版本 SQLite 3已经发布5。SQLite数据库支持SQL语言,使用起来很方便,具有以下特征

22、:1.轻量级2.独立性3.隔离性4.跨平台性5.多语言接口6.安全性3.3.2 数据库分析针对用户可能会使用的情况,以及食物的具体信息,会设计相应的数据库,包括以下数据项:全部食物信息表:包括的数据项有ID,食物名称name,购买食物日期date,食物食用量day(能够使用多少天),提醒条件leftday,储藏地点 seat。冰箱食物信息表:包括的数据项有ID,食物名称name,购买食物日期date,食物食用量day(能够使用多少天),提醒条件leftday,储藏地点 seat。厨房食物信息表:包括的数据项有ID,食物名称name,购买食物日期date,食物食用量day(能够使用多少天),提醒

23、条件leftday,储藏地点 seat。储藏室食物信息表:包括的数据项有ID,食物名称name,购买食物日期date,食物食用量day(能够使用多少天),提醒条件leftday,储藏地点 seat。3.3.3 数据库概念设计及表结构设计相关的数据存储表结构。全部食物信息表,如表3-2所示:表32全部食物信息表字段名字段类型字段描述备注idIntID主键,不为空nameText食物名称不为空dateText购买日期不为空dayInt可使用天数不为空leftdayInt剩余量提醒不为空seatText储藏地点不为空创建数据库,创建表语句:private static class DatabaseH

24、elper extends SQLiteOpenHelper/*创建数据库*/DatabaseHelper(Context context)super (context,DB_NAME,null,DB_VERSION);/*创建表*/Overridepublic void onCreate(SQLiteDatabase db)String DB_CREATE=CREATE TABLE food(_id INTEGER PRIMARY KEY,name TEXT,date TEXT,day INT,alertday INT,seat TEXT);db.execSQL(DB_CREATE);Str

25、ing DB_CREATEICE=CREATE TABLE ice(_id INTEGER PRIMARY KEY,name TEXT,date TEXT,day INT,alertday INT,seat TEXT);db.execSQL(DB_CREATEICE);String DB_CREATEKITCHEN=CREATE TABLE kitchen(_id INTEGER PRIMARY KEY,name TEXT,date TEXT,day INT,alertday INT,seat TEXT);db.execSQL(DB_CREATEKITCHEN);String DB_CREAT

26、EROOM=CREATE TABLE room(_id INTEGER PRIMARY KEY,name TEXT,date TEXT,day INT,alertday INT,seat TEXT);db.execSQL(DB_CREATEROOM);/*升级数据库*/Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) / TODO Auto-generated method stubdb.execSQL(DROP TABLE IF EXISTS notes);onCreate(db)

27、;数据库主要相关功能代码:/*插入数据*/public long insertData(String name,String date,int day,int alertday,String seat)ContentValues initialValues =new ContentValues();initialValues.put(KEY_NAME, name);initialValues.put(KEY_DATE, date);initialValues.put(KEY_DAY, day);initialValues.put(KEY_ALERTDAY, alertday);initialV

28、alues.put(KEY_SEAT, seat);return mSQLiteDatabase.insert(DB_TABLE, KEY_ID, initialValues);/*查询所有*/public Cursor fetchAllData()return mSQLiteDatabase.query(DB_TABLE, new StringKEY_ID,KEY_NAME,KEY_DATE,KEY_DAY,KEY_ALERTDAY,KEY_SEAT, null, null, null, null, null);/*查询指定*/public Cursor CursorfetchData(St

29、ring rowName)Cursor mCursor = mSQLiteDatabase.query(DB_TABLE, new StringKEY_ID,KEY_NAME,KEY_DATE,KEY_DAY,KEY_ALERTDAY,KEY_SEAT, KEY_NAME + =?, new StringrowName, null, null, null);if(mCursor!=null)mCursor.moveToFirst();/return mCursor;return mCursor;/*修改一条数据*/public boolean modifyData(String rowName

30、,String name,String date,int day,int alertday)ContentValues args =new ContentValues();args.put(KEY_NAME, name);args.put(KEY_DATE, date);args.put(KEY_DAY, day);args.put(KEY_ALERTDAY, alertday);return mSQLiteDatabase.update(DB_TABLE, args, KEY_NAME+=?, new StringrowName)0;/*删除数据*/public boolean delete

31、Data(String rowName)return mSQLiteDatabase.delete(DB_TABLE, KEY_NAME+= ?,new StringrowName)0;4 编码与实现4.1 进入系统模块用户打开软件,进入软件开始界面,轻松简单的界面,使用户愉快使用,具体流程如图4-1所示:软件界面是否进入软件系统进入系统功能选择页面否是图41 进入系统流程图主要功能代码: button01.setOnClickListener(new Button.OnClickListener() public void onClick(View v) /取得服务启动后一天的0点0分0秒的

32、millstime() c.add(Calendar.DATE, 1); c.set(Calendar.HOUR_OF_DAY, 0); c.set(Calendar.MINUTE, 0); c.set(Calendar.SECOND, 0); c.set(Calendar.MILLISECOND, 0); /启动时间 long startTime = c.getTimeInMillis(); /重复运行间隔时间 long repeatTime = 24*60*60*1000; /创建进程 添加进alarmManager Intent intent = new Intent(MemorySys

33、temActivity.this,Callupdata.class); /创建对象 PendingIntent sender = PendingIntent.getBroadcast(MemorySystemActivity.this, 0, intent, 0); /创建对象 AlarmManager am01 = (AlarmManager)getSystemService(ALARM_SERVICE); /setRepeating()可让排程重复运行 /startIime 为开始运行时间 /repeatTime为重复运行间隔 /AlarmManager。RTC 服务休眠时仍然会运行 am

34、01.setRepeating(AlarmManager.RTC, startTime, repeatTime, sender); Intent intent01=new Intent(); intent01.setClass(MemorySystemActivity.this, chooseActivity.class); startActivity(intent01); MemorySystemActivity.this.finish(); );在用户点击进入按键的同时,系统启动管理信息服务,每天凌晨,自动更新数据库信息。4.2 选择模块进入系统后,用户可以选择相应的功能,如图4-2所示:

35、图42 选择界面主要功能代码: /imagebutton 监听 imagebutton01.setOnClickListener(new OnClickListener() public void onClick(View v) Intent intent=new Intent(); intent.setClass(chooseActivity.this, insertActivity01.class); startActivity(intent); chooseActivity.this.finish(); ); /提示 public void DisplayToast(String str

36、) Toast toast=Toast.makeText(this, str, Toast.LENGTH_SHORT); toast.setGravity(Gravity.TOP, 0, 220); toast.show(); imagebutton配合toast提示,让界面显得不会太生硬,使用户更加喜欢此软件,增加用户体验。4.3 添加模块用户点击添加食物按键,进入添加食物界面如图4-3所示:图43 添加食物图在该界面,用户选择食物的存储位置,点击进入具体的食物界面:/imagebutton监听 imagebutton01.setOnClickListener(new OnClickList

37、ener() public void onClick(View v) Intent intent=new Intent(); intent.setClass(insertActivity01.this, inserticeActivity.class); startActivity(intent); insertActivity01.this.finish(); ); 这部分代码是选择要储藏的食物的位置,点击进入具体的食物添加界面。用户点击界面上的食物图片,选择要添加的食物。如果界面中没有该食物,用户还可以点击下面的编辑框,输入食物的名称,添加想要的储藏的食物,如图4-4所示:图44 具体食物

38、添加界面图这些图片放在一个图片的adapter中,adapter把元素添加给gridview控件,就呈现出上面界面上的图片,带有滚动效果。给gridview设置监听,当用户点击图片的时候,会做出相应的反应6。具体功能代码如下: /gridview 监听 gridview01.setOnItemClickListener(new AdapterView.OnItemClickListener() public void onItemClick(AdapterView parent, View v, int position, long id) if(position+1=1) /查询是否已经存在

39、该食品 Cursor cur = mMydatabaseAdapter.CursorfetchData(food01); if(cur.moveToFirst() DisplayToast(该食品已经存在!可以去查询页面修改信息哦); else mMydatabaseAdapter.close(); Intent intent = new Intent(); intent.setClass(insertkitchenActivity.this, addkitchenActivity.class); / 传值 bundle Bundle bundle = new Bundle(); bundle

40、.putString(name, food01); intent.putExtras(bundle); startActivity(intent); insertkitchenActivity.this.finish(); );图45食物信息输入图上面选择好食物的具体名称,下面进入食物的详细信息的输入,如图4-5所示,包括购买日期,食用量,提醒条件等等。包括dialog控件,datepicker控件,方便用户的输入,提高用户体验,同时兼顾数据库的操作7。具体代码如下: /点击 设置日期 button03.setOnClickListener(new Button.OnClickListener

41、() public void onClick(View v) int mYear = c.get(Calendar.YEAR); int mMonth = c.get(Calendar.MONTH); int mDayofmonth = c.get(Calendar.DAY_OF_MONTH); new DatePickerDialog(addiceActivity.this, new DatePickerDialog.OnDateSetListener() Overridepublic void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) / TODO Auto-generated method stubc.set(Calendar.YEAR,year);c.set(Calendar.MONTH, monthOfYear);c.set(Calendar.DAY_OF_MONTH

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号