ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:824.94KB ,
资源ID:9179466      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9179466.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(完整版基于LBS的iOS客户端应用之生活助手的设计与实现毕业论文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

完整版基于LBS的iOS客户端应用之生活助手的设计与实现毕业论文.docx

1、完整版基于LBS的iOS客户端应用之生活助手的设计与实现毕业论文 SHANDONG毕业设计说明书题 目:基于LBS的iOS客户端应用之生活助手的设计与实现学 院:计算机科学与技术学院专 业: 计算机科学与技术 学生姓名: 秦利超 指导教师: 王云 毕业设计(论文)时间:二O一 二年 四月至 六月 共 十 七周摘 要随着近年来智能手机的爆炸性增长,LBS已经开始广泛被使用并在改变我们的生活:下班后的朋友聚会,可以用大众点评网搜索附近500米内最好吃的餐馆;用Google地图寻找最快捷的路线和抵达方式;发一条新微博,顺手添上自己所在的位置;高德导航可以轻松取代车载GPS,指引下一个聚会地。本论文主

2、要围绕实现iOS设备的LBS进行相关详细的分析介绍。最终实现附近、搜索、签到、优惠券、今日团购、排行榜、记录、城市信息、更多九大功能模块。关键词:智能手机、LBS、签到、分享。 ABSTRACTIn recent years, with the rapid growth of smart phones, the LBS widely used and is changing our lives: the gathering of friends after work, you can use the best food restaurant within 500 meters near the

3、 public comment network search; use Google Maps to find the most efficientroute and arrival; Post a new microblogging and add their location in it; can easily replace the car GPS, under the guidance of a party.This thesis is mainly around the LBS iOS devices to carry out a detailed analysis of intro

4、duction. And ultimately to achieve near, search, sign, coupons, buy, list, record, urban, more these nine functional modules.Keywords: Smartphone、LBS 、sign in、share.第一章 引言近几年,人们用移动设备接入互联网的时间显著上升,与此相伴,“LBS”(Location Based Service),即基于用户当时位置的服务将会呈蒸蒸日上之势。1.1 课题的目的和意义在维基百科上,对LBS的简短定义是“通过移动设备在移动网络中对于地理位置

5、信息的定位所提供的一种信息与娱乐服务”。 一个关于LBS应用的著名段子是,老婆要求老公买下iPhone4后,每两小时都得通过签到网站签到一次这样一来,她就能知道他的全部行踪,可以预防出轨。随着近年来智能手机的爆炸性增长,LBS已经开始广泛被使用并在改变我们的生活:下班后的朋友聚会,可以用大众点评网搜索附近500米内最好吃的餐馆;用Google地图寻找最快捷的路线和抵达方式;在街旁网上签到分享自己和朋友大快朵颐的照片;发一条新微博,顺手添上自己所在的位置;高德导航可以轻松取代车载GPS,指引下一个聚会地。在这个背景下,基于LBS的服务类应用如雨后春笋般得以大量涌现。1.2移动互联网时代的新宠:L

6、BS应用据中国互联网络信息中心(CNNIC)最新的统计报告(2011年7月),截至2011年6月底,中国手机网民规模为3.18亿。手机网民在总体网民中的比例为65.5%,移动互联网时代已经全面到来。那移动互联网究竟给我们带来了什么?环顾一下四周,我们会不难发现,无论是在公交车还是在地铁,总有不少人低着头沉默不语,他们紧盯着自己手中的手机或平板,手中也没闲着,在不停的比划,凑近一看,他们要么在玩游戏,要么在上qq,要么在微博,要么在一些社交网站。我们会发现,一旦有一点空闲的时间,我们就会拿出我们的手机来玩。蹲厕所时,隔壁会传来小鸟撞击石头而发出的叫声;在电梯中,总会有朋友拿出手机或ipad登陆自

7、己的某个客户端。当我们通过登录自己的LBS客户端,在某些地方进行签到的时候,你会拿到你想要的徽章,通过这个徽章你会享受打折优惠;你也会看到有些疯狂的朋友为了一个徽章不择手段的采用虚假签到;这都是现实的生活,这就是移动互联网给人们生活带来的变革,通过智能终端上网,你不在被拘束在电脑前,只要身边有网络信号即可。不过这其中似乎减少了人与人之间的交流,更多的是增加了人机之间的交互,把一些的交流也带入了虚拟的空间中。如今的签到已经成为了现在移动互联网玩家的一个嗜好,通过签到你可以分享自己当前的状态,同时还能获得朋友当前的情况,在个人分享的时代中,签到成为了一个助推剂,让大家尽情的享受在彼此熟知的虚拟环境

8、中。1.3主要设计内容(1)附近模块:将附近的签约商户分门别类(如美食、酒店等)的进行展示。(2)搜索模块:该模块主要实现的功能是可以通过输入商户名、地址搜索特定商户和热门商区的展示。(3)签到模块:该模块主要实现的功能是签到商户、对商户进行评价、上传照片、关注。 (4)优惠券模块:该模块的主要功能是显示正在进行的优惠商户信息。(5)今日团购模块:该模块主要实现的功能是展示团购信息、购买。(6)排行榜模块:该模块主要实现的功能是根据人气、评分等展示热门商户和最佳商户的排行。(7)记录模块:该模块收集展示收藏商户和浏览记录。(8)城市信息模块:该模块主要实现的功能是展示所选城市的生活信息如:医院

9、、银行、公安机关等等。(9)更多模块:该模块主要实现的功能是显示自己的账户信息。第二章 iOS、语言、环境以及所用技术介绍iOS平台使用了构建Mac OS X时积累的知识,iOS平台的许多工具和技术也源自Mac OS X平台。尽管它和Mac OS X很类似,但是没有Mac OS X开发经验也可以开发iOS程序。iOS SDK提供了创建iOS应用程序所需要的环境和工具。利用iOS SDK开发应用时所用的编程语言是Objective-C。下面具体介绍一下iOS、语言、环境以及其他所用技术。2.1 iOS简介 iOS最初是设计在iPhone上的操作系统,苹果公司于2007年1月9日的Macworld

10、大会上公布了这个系统,并命名为iPhone OS,但随着此系统在iPod touch、iPad以及Apple TV等苹果产品上的广泛应用,苹果公司于2010年6月7日WWDC大会上将其改名为IOS。据Canalys的数据显示, 截止到2011年11月,iOS占据了全球智能手机系统市场份额的30%,在美国的市场占有率更是达到了43%。随着Andriod开源操作系统的异军突起以及Windows Phone的发力,iOS市场份额正被一点点的蚕食,但是iOS设备的利润率高的惊人,以智能手机为例,iphone的利润额占到整个智能手机利润额的80%,受益于此,苹果的市值也达到了5000亿美元。1. 操作界

11、面iOS操作采用的是多点触控直接操作,控制方法包括滑动、轻触屏幕和图标及按键。操作有:滑动、轻按、缩小及放大。此外,iOS移动设备中还内置了加速器,使得旋转iOS设备时,界面也可以得到旋转,这也使得iPhone等便携设备更便于使用。自3GS开始,iphone装备有陀螺仪,这使得iphone有了重力感应,游戏效果更加的突出。屏幕的下方是home键,点按回到主界面。底部是dock,可安放四个使用者最经常使用的程序的图标。屏幕最上方是状态栏,显示一些有关资讯:如时间、电池电量和讯号强度等。其余的屏幕用于显示当前的应用程序。启动程序,只需点按该程序的图标,点按屏幕下方的home键即退出应用程序。在iP

12、hone 3.0及后续版本中,及时应用程序退出,当第三方软件收到了新的讯息时,苹果公司的服务器将把这些通知推送至iPhone或iPod Touch上(不管它是否正在运行中)。2.2 Objective-C语言Objective-C, 也通常被写作ObjC,是一种扩充C的面向对象编程语言,主要用于Mac OS X和GNUstep这两个使用OpenStep标准的系统。Objective-C最开始并不支持垃圾回收,因为垃圾回收有漫长的“死亡时间”, 会导致整个系统失去功用。但自Xcode4.0开始,支持自动释放,也就是ARC (Automatic Reference Counting)机制,不需要用

13、户手动去Release每一个对象,编译器会在编译期间自动帮你添加那些以前你经常写的NSObject release。Objective-C和C+有很多不同之处,Objective-C不支持运算符重载,也只允许对象单继承,但其引入的Categories和protocols可以提供很多多重继承的好处。很多常见的编译时的性能优化方法都不能应用于Obj-C,比如内联函数。2.3 Xcode开发环境Xcode是开发苹果应用程序的必备开发环境, 自4.0开始,开发人员就可以利用Xcode开发基于iOS的iPad、iPhone、iPod Touch 设备应用程序,只要你有Mac OS X Snow Leop

14、ard 10.6.2 以上版本 Mac OS 操作系统,便可安装ios sdk,如果你有iOS设备,便可让Xcode把应用程序部署到你的iOS设备上。另外,你还可以使用iPhone仿真器进行调试。Xcode提供了友好而方便的应用程序开发环境,这样你就可以开发出好的iOS应用程序了。Xcode支持多种语言,如:C、C+、Objective-C、Java。另外,Xcode 的编译速度也极快。Xcode还具有自由撤消的强大功能:Xcode 4 具有虚拟模型和设计功能,这可以让你更轻松的开发和维护应用程序。2.4 SQLite数据库iOS包含了SQLite数据库,它是一个简单的、轻量级的数据库,并宣布

15、是“世界上部署的最广泛的数据库引擎”。目前很多嵌入式产品都使用SQLite,SQLite占用资源非常的低,在嵌入式设备中,只需要几百K的内存就够了。它支持WindowsLinuxUnix等主流的操作系统,比起Mysql、PostgreSQL这两款世界著名的开源数据库管理系统,它的处理速度都比他们快。下面以具体实例的形式讲述创建SQLite的方法:1.创建数据库命令:sqlite3 shopping.db 若shopping.db文件已存在,则打开数据库,若不存在,则创建它。2.创建表格: create table shopping (key integer primary key,item t

16、ext,price double,groupid integer,dateadded date);3.插入数据: insert into “shppinglist” (item,price,groupid,dateadded) values (“iPhone 3G”, “199”, 1, DATETIME(NOW)4.查询:select * from shoppinglist2.5 JSON解析JSON(Javascript Object Notation)是一种轻量级的,以文字为基础,且易于让人阅读。尽管JSON是在Javascript的一个子集,但JSON是独立于语言的文本格式,并且采用了

17、类似于C语言家族的一些习惯。 JSON格式是1999年JavaScript Programming Language, Standard ECMA-262 3rd Edition的子集合,所以可以在JavaScript以eval()函式(javascript通过eval()调用解释器)读入。不过这并不代表JSON无法使用于其他语言,事实上几乎所有与网页开发相关的语言都有JSON函式库。 JSON用于描述数据结构,有以下形式存在:1.对象 (object):一个对象以“”开始,并以“”结束。一个对象包含一系列非排序的名称值对,每个名称值对之间使用“,”分割。2.名称值对(collection):

18、名称和值之间使用“:”隔开,一般的形式是:name:value一个名称是一个字符串;一个值可以是一个字符串,一个数值一个对象,一个布尔值,一个有序列表,或者一个null值。3.值的有序列表(Array):一个或者多个值用“,”分割后,使用“”,“”括起来就形成了这样的列表,形如:collection, collection4.字符串:以括起来的一串字符。5.数值:一系列0-9的数字组合,可以为负数或者小数。还可以用“e”或者“E”表示为指数形式。6.布尔值:表示为 true 或者 false。第三章 需求分析LBS是由移动通信网络和卫星定位系统结合的一种增值业务,通过一组定位技术获得移动终端的

19、位置信息,并提供给移动用户本人、他人及通信系统,实现相关信息服务的业务。值得注意的是,单独的位置信息不再是最终的服务,它需要结合有效内容的服务才能称得上是完整的LBS。因为传统意义上的导航服务作用是有限的,以导航为最终目的的服务往往只在用户处于相对陌生的环境时,才能满足用户需求。3.1 设计背景随着近年来智能手机的爆炸性增长,LBS已经开始广泛被使用并在改变我们的生活:下班后的朋友聚会,可以用大众点评网搜索附近500米内最好吃的餐馆;用Google地图寻找最快捷的路线和抵达方式;在街旁网上签到分享自己和朋友大快朵颐的照片;发一条新微博,顺手添上自己所在的位置;高德导航可以轻松取代车载GPS,指

20、引下一个聚会地。在这个背景下,基于LBS的服务类应用如雨后春笋般得以大量涌现。LBS基本模式:用户将信息上传到平台,进行信息管理与发布,根据需要决定开放的程度和内容,当用户需要开始基于位置的互动时,首先向平台开放定位搜索功能,并允许别人对自己进行定位。最后,平台利用其定位功能对用户进行定位,并对用户指定区域进行定位搜索,同时向用户提供所在地区的相关服务信息。用户根据反馈结果决定是否建立联系。3.2总体设计按照功能分成九大功能模块,如下表:表3-5 程序功能表模块简述功能描述附近根据用户的手机位置,将用户所在位置的附近的签约商户的信息,显示在手机上,用户可以根据自己的需求选择所需要的服务,分门别

21、类(如美食、酒店等)的进行展示搜索可以根据用户需求搜索关键字,通过输入商户名、地址等信息搜索特定商户和热门商区的商户信息。签到用户享受到商家的服务后,可以在该页面对商户的服务或商品进行评价,评分,改评价可以为以后的用户提供参考、对商户进行评价、上传照片、关注,商家可以凭借用户的好评。来提高自己的名声,吸引更多的消费者。优惠券显示正在进行的优惠商户信息,商家开始通过报纸杂志等传统平面媒体发布优惠券,并借此扩大自身品牌关注和知名度,就好比将派发的人扩大到了报纸所覆盖的区域,自然事半功倍。排行榜根据人气、评分等展示热门商户和最佳商户的排行记录收集展示收藏商户和浏览记录城市信息展示所选城市的生活信息如

22、:医院、银行、公安机关等等更多显示自己的账户信息第四章 详细设计与实现根据需求分析,划分了九大功能模块,其中Neaby,List In Order,Coupons是本软件的特色及关键部分,具体功能如下所示:4.1首页展示设计下图4-1为首页界面,最上方用一个UIButton显示城市信息,程序运行时判断当前有无已选城市,第一次运行时判断无已选城市,会跳到城市选择界面(图4-2)。向下紧接着是一个UISearchBar,触碰此searchBar会进入搜索界面。下方显示红色图片的是UIScrollView,其上是九个UIButton,设置各button的背景图片即为所展现之场景,点击各个button

23、会进入个相应界面。 图4-1 首页视图以下代码为通过数据库判断是否已选择城市:- (void)viewDidAppear:(BOOL)animated MySqlite *mysql = MySqlite alloc init;if (flag 0) flag -; if (mysql getCity=nil) ChangeCity *city = ChangeCity alloc init; self.navigationController pushViewController:city animated:YES; city release;else NSString *cityStrin

24、g = NSString stringWithFormat:SPTK Dir. %, mysql getCity; UIButton *b = UIButton buttonWithType:UIButtonTypeCustom; b.tag = 13; b.frame = CGRectMake(29, 6, 262, 33); b setTitle:cityString forState:UIControlStateNormal; b setImage:UIImage imageNamed:selector(qwer:) forControlEvents:UIControlEventTouc

25、hUpInside; b.titleLabel.font = UIFont fontWithName:Helvetica-Bold size:18; self.navigationItem.titleView = b; mysql release; 4.2附近模块设计如下图4-2为附近界面,用一个UITableView列表显示信息。 在viewController中设置此tableView的delegate和dataSource为self。在viewController声明文件中遵循UITableViewDelegate和UITableViewDataSource协议,在实现文件中实现UITa

26、bleViewDelegate和UITableViewDataSource的相应方法:主- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section,- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath。 图4-2附近界面 代码如下:- (NSInteger)tableView:(UITableView *)tableView n

27、umberOfRowsInSection:(NSInteger)section return ListData objectAtIndex:0 count; 上面的方法中return的数据为一个section的行数。- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath static NSString *CellIdentifier = Cell; UITableViewCell *cell = tableView dequeueReusable

28、CellWithIdentifier:CellIdentifier;if (cell = nil) cell = UITableViewCell alloc initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier autorelease; cell.textLabel.text = ListData objectAtIndex:0 objectAtIndex:indexPath.row; cell.textLabel.font = UIFont boldSystemFontOfSize:14; cell.

29、imageView.image = UIImage imageNamed:ListData objectAtIndex:1 objectAtIndex:indexPath.row; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; return cell; 上面的方法中是实现cell的具体代码。 点击各cell时,调用- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;方法,进入相应

30、界面代码如下:- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPathif (indexPath.row = 0) SearchCoupon *tabView = SearchCoupon alloc init; TKSPAppDelegate *appDelegate = UIApplication sharedApplication delegate; appDelegate.navigationController pushViewController:tabVi

31、ew animated:YES; tabView release;else if (ListData objectAtIndex:0 objectAtIndex:indexPath.row isEqualToString:More classification) MoreCategoriesTable *nextView = MoreCategoriesTable alloc init; nextView.title = More classification; self.navigationController pushViewController:nextView animated:YES; nextView release;else NearbyOther *nextView = NearbyOther alloc init; nextView.flag = 0; nextView.lat = lats; nextView.lon = lons; next

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1