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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于iOS的天气预报查询系统的设计与实现毕业设计论文.docx

1、基于iOS的天气预报查询系统的设计与实现毕业设计论文基于iOS的天气预报查询系统的设计与实现摘要 随着科学技术的发展,移动终端逐渐走进人们的视线,相关应用越来越广泛,并在人们的日常生活中扮演着越来越重要的角色。本课题研究的是基于iOS平台下的天气软件,目的是帮助用户随时随地查询天气信息及天气变化情况,让生活更加舒适方便。本文详细讲述了iOS平台下天气软件的界面设计及数据处理部分,主要包括界面的实现、控件的使用、界面的布局和数据的处理等内容,结合WEB服务网的气象数据,将准确的天气情况以友好的方式呈现给用户,使用户可以更加愉快地体验本软件的服务。关键词 iOS 界面 查询 天气预报Design

2、And Implementation Of Weather Query System Based On iOSAbstract With the development of science and technology, the mobile terminal gradually into the peoples attention, related to more widely, and play an increasingly important role in peoples daily lives. The study of this topic is the weather for

3、ecast software based on the iOS platform ,and designed to help the user to query weather information and weather changes anytime, anywhere, to make life more comfortable and convenient. This paper describes the software interface design of the iOS platform under the weather and data handling part, i

4、ncluding the contents of the interface implementation, the use of controls, the layout of the interface, and data handling and so on, combined with weather data of the Web Service, will be accurate weather conditions presented to the user-friendly way, allows the user to experience more enjoyable th

5、e service of this software.Key words iOS interface query weather orecast1 引言1.1 项目开发背景苹果iOS是由苹果公司开发的手持设备操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统。iOS与苹果的Mac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为iOS。截止至2011年11月,根据Canalys的数据显示,iOS已经占据了全球智能手机系统市场份额的30%,在美的

6、国市场占有率为43%。iPhone将基于OS X的移动计算与创新的多点触摸屏幕、位置感知、板载加速计等结合在一起。苹果公司于2008年3月首次发布iPhone SDK beta时,开发人员蜂拥而至,一度造成服务器瘫痪。不到一周,iphone SDK的下载量就超过10万1。天气软件是一种非常实用的信息服务,随着智能手机的不断普及,各种智能手机平台下都有各种各样的天气软件。iOS作为现在主流的智能手机之一,自然也需要这方面的软件。天气关系到人们的日常生活,如告知温暖,方便出行等。此外,对未来天气的预测还可以帮助人们进行农作物的浇灌、施肥、收割等工作。基于iOS平台的天气软件已经有很多,经过分析,用

7、户第一眼往往是一个软件的外观,一个好看的界面才能让用户以一种爱美之心去尝试,才能进一步了解一个软件的好坏,所以吸引眼球的界面是争取用户的第一步。因此,界面设计工作对应用程序来说非常重要,在界面上吸引了用户,才能进一步让用户体验应用程序中的功能,使用这个软件。1.2 国内外相关领域研究现状随着iOS蓬勃的发展,涌入了大量的iOS开发人员,同时华丽的iOS产品也层出不穷。虽然iOS的发展达到了前所未有的高度,但是在国内关于天气预报的软件也紧紧只有19款,所以开发出用户体验好并且实用的软件越来越重要。下面介绍一下国内外最流行的三款iOS系统天气软件并做个简单的对比,他们分别是墨迹天气、涂鸦天气和蜜蜂

8、天气。(1) 墨迹天气天气显示面板:墨迹天气算是国内最有名的天气查询软件,用户比较最多,界面显示也比较美观、华丽,并且可以添加多个城市。默认显示四天的天气情况,并且左右滑动可以切换城市管理-天气-温度趋势图三个界面。温度趋势图可以显示未来五天的气温变化情况和日夜天气情况。设置以及其他功能:墨迹天气的软件设置只包括更新间隔等设置,除了天气信息外不提供其它更多的相关资讯,是一款相对来说比较单纯的软件。CPU内存占用:在软件开启的情况下,实时CPU占用率在50%-70%,运行过程中一直居高不下。内存占用大概为10M左右。(2) 涂鸦天气天气显示面板:国外的一款小软件,特色在其涂鸦的天气显示方式,非常

9、生动,就像掌中的一个小剧场。左下角的按钮可以切换“显示”和“隐藏”详细信息,天气预报也不是国人习惯的非晴即雨,预报的天气带有问号,给出下雨的几率百分比。其他功能:软件还有的功能就是分享模块,可以分享到Twitter和Facebook。CPU内存占用:软件比较小,运行过程中CPU占用14%左右,内存占用也很低,不到5M。(3) 蜜蜂天气天气显示面板:蜜蜂天气虽然没有墨迹天气老牌,但是蜜蜂系列是无线多媒体软件的大家族,还包括蜜蜂读书、蜜蜂新闻、蜜蜂音乐、蜜蜂视频和蜜蜂股票等,所以在新闻资讯方面比较强。天气界面同样走的简洁精致路线。并且该软件支持未来五天天气预报和所在城市的每小时的准点详细温度走势、

10、风向等。其他功能:系统的设置和信息按钮出现在所有天气面板的左、右下角,用户交互上非常方便。CPU内存占用:该软件再CPU和内存占用上控制的还算不错。软件在没有进行操作时,CPU占用控制在5%,进行刷新天气等操作时CPU占用27%,软件内存占用20M左右。1.3 论文研究的内容要做一个用户体验好并且实用的天气查询软件,要做到一下几点,同时也是本论文的主要内容:(1) 实现可旋转的菜单界面。(2) 运用ASIHttpRequest获取并解析数据XML。(3) 运用iOS的frame框架显示解析后的数据。(4) 运用iOS的画图框架QuartzCore画出未来5天内的天气趋势。(5) 实现调用系统的

11、照相机并拍照。(6) 实现用Jsonkit工具解析Json数据。(7) 实现调用本地相册并将图片和文字发送到新浪微博平台上。1.4 论文研究的意义天气软件是一种非常实用的信息服务,随着智能手机的不断普及,各种智能手机平台下都有各种各样的天气软件。用天气预报软件可以在第一时间掌握天气情况,以便提前预防,把气象灾害造成的损失降到最低。同时也可以强化气象公共服务的职能,完善公共服务体系、改善公共服务手段、增加公共服务产品、提高公共服务质量,更好地发挥了气象事业对经济社会发展的现实性作用。iOS作为现在主流的智能手机之一,自然也需要这方面的软件。我们需要额外注意怎么样设计用户界面(UI)。当我们需要设

12、计自定义的UI元件时,这些元件用以直接支持我们设计的应用程序的交互需要,这个时候我们需要尊重原生的Apple iOS控件的习惯用法2。因此,界面设计工作对应用程序来说非常重要,在界面上吸引了用户,才能进一步让用户体验应用程序中的功能,使用这个软件。1.5 论文内容的安排本文将在以后5章节中介绍本系统的设计与实现。我们将在第2章分析一下整个系统,包括使用的技术、开发平台、以及项目部署的环境。第3章,总体介绍一下系统的设计思路,包括架构的选择,模块的划分,模块之间如何协同工作等。第4章,将详细介绍各个模块的实现。第5章,将介绍一下系统的测试,包括测试的方法,测试的结果,以及使用的工具等。 2 系统

13、解决方案 2.1 需求分析为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论人们把设计和编码工作做得如何出色,不能真正的满足用户需求的程序只会令用户失望,给开发者带来麻烦。在本节,我们将对基于iOS的天气预报查询系统的设计与实现提出完整、准确、清晰、具体的需求分析,并使用UML2.0用例图直观的表示系统各角色所具备的功能。2.1.1 功能需求基于iOS的天气预报查询系统的主要用途是为可以在第一时间掌握天气情况以及未来5天内的天气情况,可以通过折线图更直观的了解到未来5天内气温的趋势,并且可以用手机拍下当时的人、物、风景等,再

14、通过本软件将手机相册内的图片以及自己写下的文字分享到新浪微博平台上。用例图(Use Case Diagram)是由软件需求分析到最终实现的第一步,它描述人们希望如何使用一个系统。(1) 系统用例图如图2-1所示。图2-1 系统用例图(2) 天气查询用例图如图2-2所示。图2-2 天气查询用例图(3) 分享图片和文字用例图如图2-3所示。图2-3 分享图片和文字到新浪微博平台用例图(4) 天气预报业务流程图如图2-4所示。图2-4 天气预报业务流程图(5) 分享图片和文字业务流程图如图2-3所示。图2-5 分享图片和文字业务流程图下面就是本系统的具体功能需求:(1) 登录管理用户不需要账号即可进

15、入本系统。(2) 地点查询管理用户能分省、市、县三级地级区域进行查询;用户能查询2400个以上中国城市。(3) 天气查询管理数据每2.5小时更新一次,准确可靠;用户能查询包括当日及未来5天的天气情况;用户能查看到包括当日及未来5天的天气气温趋势图。(4) 拍摄相片照管理用户可以用iPhone手机自带的相机拍摄;拍摄下的照片会自动保存到iPhone手机相册。(5) 微博分享管理用户能在iPhone手机相册选取将要分享的图片;用户能编写想要分享的文字。(6) 退出用户点击Home键即可退出程序。2.1.2 可靠性和可用性需求可靠性需求指定系统必须满足的可靠性,可用性与可靠性密切相关,它量化了用户可

16、以使用系统的程度。基于iOS的天气预报查询系统的设计与实现的所有数据都需要从网上即时更新以便获取到最新的天气数据,为确保用户可以随时都能查到即时的天气情况以及未来5天内的天气情况,所以在可靠性上必须确保。此系统可靠性应达到以下几点:(1) 本系统应达只要有网络就可以访问提供数据的网站;(2) 一个月内系统局部不能出现2次以上故障;(3) 每次故障解决时间不得超过24小时;(4) 确保数据的准确性;(5) 拍摄后的照片一定要存到本地相册;(6) 分享的信息一定要分享在新浪微博平台上。可用性应达到以下几点:(1) 在任何时候iPhone或者iTouch至少有一个该软件;(2) 在一个月内任何一部i

17、Phone或者iTouch上该软件在运行期间不能崩溃2次以上。2.1.3 系统内容需求系统开发初期,根据用户提出的要求,详细了解和分析了用户需求,确定了系统具有天气查询管理和分享管理。天气查询管理包括地理查询、即时天气查询、未来5天内天气查询和未来5天内气温的趋势图;分享管理包括可以进行拍摄照片、分享文字和本地相册的图片等。根据初期的设计思想进行分析,从内容上对该系统做如下划分:(1) 菜单:由四个Button键组成并实现一个类似转盘电话中拨号转盘的旋转菜单效果,并用精美的图片做背景;(2) 地点查询:将2400多个城市精确的分为省、市、县三级,并显示在列表上;(3) 天气查询:当选择自己想要

18、查看的城市后点击并进入天气查询,包括即时的天气情况和未来5天内的天气情况,内容带有文字和图片并显示在列表上,并将详细信息显示在单独的view里的lable上;(4) 天气趋势:将未来5天内的最高气温和最低气温分两条不同颜色的折线显示在画板上,使用户更直观的了解到未来5天内的天气变化;(5) 实景拍摄:点击Button键后可以调用手机自带的相机并进行拍照,并将拍摄后的照片保存到本地相册里;(6) 分享:从本地选取喜欢的照片并在textfield上进行文字编辑,编辑好后将文字和图片分享到国内最流行的新浪微博平台上,与亲朋好友分享自己的照片和心情。2.2 技术架构2.2.1 Foundation框架

19、简介为所有程序开发奠定基础的框架称为Foundation框架。它允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组、字典和集合。其他功能包括处理日期和事件、自动化的内存管理、处理基础文件系统、存储(或归档)对象、处理几何数据结构(如点和长方形)3。Foundation框架是用Object-C对Core Foundation框架里许多特性的封装。使用Foundation可以:(1) 创建和管理集合,比如数组和字典。(2) 访问存储在应用程序里的图片和其它资源。(3) 创建和管理字符串。(4) 提交和接收通知。(5) 创建日期和时间对象。(6) 自动发现IP网络上的设备。(7) 操作U

20、RL流。(8) 执行异步代码。2.2.3 UIKit框架简介UIKit框架是iPhone应用程序开发中最基本的框架,也是用得最多、最重要的框架4。所有的iOS应用程序都基于UIKit,绝对不能使应用程序脱离这个框架。UIKit提供了在屏幕上绘制的机制,捕获事件,和创建通用用户界面元素。UIKit也通过管理显示在屏幕上的组件来组织复杂的项目。使用UIKit可以:(1) 构建和管理用户界面。(2) 捕获触摸和基于移动的事件。(3) 呈现文字和web内容。(4) 优化多任务程序。(5) 创建定制的用户界面元素。2.2.3 ASIHTTPRequest类库简介使用iOS SDK中的HTTP网络请求AP

21、I,相当的复杂,调用很繁琐。ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,它用Objective-C编写,可以很好的应用在Mac OS X系统和iOS平台的应用程序中。ASIHTTPRequest适用于如下基本的HTTP请求:5(1) 支持通过代理发起Http请求。(2) 通过简单的接口,即可完成向服务端提交数据和从服务端获取数据的工作。(3) 支持基本、摘要和NTLM身份认证,在同一会话中授权凭证会自动维持,并且可以存储在Keychain(Mac和iOS操作系统的密码管理系统)中。(4) ASIWebPageRequest 可以

22、下载完整的网页,包括包含的网页、样式表、脚本等资源文件,并显示在UIWebView /WebView中。任意大小的页面都可以无限期缓存,这样即使没有网络也可以离线浏览(5) 支持带宽限制。在iOS平台,可以根据当前网络情况来自动决定是否限制带宽,例如当使用WWAN(GPRS/Edge/3G)网络时限制,而当使用WIFI时不做任何限制。(6) 支持断点续传。(7) 支持同步和异步请求2.2.4 JSONkit类库简介JSONKit是Objective C平台上比较常用的JSON数据访问工具。JSONKit功能很强大,主要特色如下:(1) JSONKit能在运行的情况下与libz.dylib自动连

23、接而无须人工连接。(2) 在解析期间,如果检测到有gzip文件,JSONKit能自动解压。(3) 速度超快,支持之前的iOS版本(但要注意一点,从iOS 5开始,iOS就已经有本地JSON解析工具了)。(4) JSONKit的性能远优于JSON-Framework(即SBJSON),JSONKit使用起来也非常简单,表现性能比苹果iOS 5.0中的NSJSONSerialization还要好,速度比NSJSONSerialization快上25%到40%,已经是非常大的一个差距了。2.2.5 MVC设计模式简介MVC设计模式是在20世纪80年代发明的一种软件设计模式,至今已被广泛使用。MVC本

24、身并不是最基本的设计模式,它包含了若干更加基本的设计模式。在MVC中基本设计模式相互配合,确定了各功能之间的协作,这是MVC应用程序的特性6。其中MVC是 Model-View-Control 的简称,即模型-视图-控制器。(1) 模型(Model):“数据模型”(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权力,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视

25、图可以了解在数据模型上发生的改变。(2) 视图(View):视图层能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。(3) 控制器(Controller):控制器起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据模型上的改变。2.3 开发平台2.3.1 iOS开发基本背景简介iOS介绍:iOS是由苹果公司为iPhone等移动设备开发的操作系统。它主要是给iPhone、iPad和iPod touch使用。就像其

26、基于的Mac OS X操作系统一样,它也是以Darwin为基础的。iPhone OS的系统架构分为四个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch layer)。应用程序由Objective-C开发。(1) 开发工具介绍:Xcode:开发iOS应用,需要在Mac OS X运行Xcode开发工具。Xcode是Apple的开发工具套件,支持项目管理、编辑代码、构建可执行程序、代码级调试、代码的版本管理、性能调优等等。这个套件的核心是Xcod

27、e应用本身,它提供了基本的源代码开发环境。Interface Builder:利用Interface Builder,可以通过拖拽组件在程序窗口上进行装配。布置好界面时,将内容保存在nib文件中。无论为哪种平台编程,都需要在Interface Builder中花费大量的时间7。模拟器:iPhone模拟器可以在Mac中调试iOS应用程序,它的外观和真实的iPhone/iPad设备一模一样。使用它调试程序,比在真实设备中更方便快捷8。模拟器不支持GPS定位、摄像头、指南针等与硬件关联较大的功能。(2) 开发语言介绍:Objective-C是一门面向对象的编程语言,是开发iPhone和iPad应用的

28、编程语言,也是开发基于Mac操作系统的应用程序的编程语言9。Objective-C从标准的ANSI C语言扩展而来,并提供了定义类、方法和属性的语法,还有其它结构来促进类的动态扩展。2.3.2 iOS开发平台搭建(1) iOS开发环境 :Xcode是Apple自己开发的,只运行在Mac OS X平台下的IDE。使用Xcode来设计程序的逻辑,使用Interface Builder。来设计程序的界面。运行Xcode 3.0或以上的版本需要Mac OS 10.5及以上的系统版本。(2) iOS软件开发者证书介绍:苹果的开发工具是免费的,但是开发出来的程序需要在真机上运行或者发布到AppStore上

29、(越狱的除外),需要购买苹果的授权。开发者证书工具就是Mac开发者计划成员申请和下载Mac应用程序签名证书的工具。购买费用是99美元。它涉及到苹果同意的条款和条件,并要签署和返回合同。只有注册后才能在iPhone上测试你的程序,而不是在屏幕上的模拟器。(3) 运行程序:当你做好准备调试你的application,你首先是通过Xcode的 Build来构建你的系统,如果Build没有错误的话,你有两种方式可以运行你的Application:iPhone Simulator 和 Device iPhone。3 系统总体设计3.1 系统模块划分根据初期的设计思想和需求分析的结果,根据本平台要达到的功

30、能要求,本系统大致可以抽象为菜单模块、天气查询模块和分享模块。3.1.1 菜单模块菜单模块需要实现的是一个类似经典的转盘电话中拨号转盘的旋转菜单效果。滑动菜单,菜单进行转动,转动的过程中,处于最前面的按钮按钮慢慢变大,处于后端的按钮变小。同样,点击转盘菜单上某个按钮,被点击的按钮会慢慢被转到最前面。由于转动的过程中,按钮会由大变小或者由小变大,所以这个动画有3D的效果。菜单模块效果图如图3-1所示。图3-1 菜单模块效果图3.1.2 天气查询模块天气查询模块是本系统的重点,该模块需要实现地理位置查询、天气查询以及折线图。此模块主要负责用Post方法向服务器发送请求并将获取到的Xml数据进行解析

31、,将解析到的数据加载到创建好的列表上。折线图则是利用iOS中比较复杂的画板显示,通过获取到的未来5天内的气温变化以折线形式显示在画板上,可以方便用户更直观的了解到未来的天气变化。此模块采用POST方法获取数据而不是采用GET方法是因为GET一般用于获取/查询 资源信息,而POST一般用于更新资源信息。 再进一步了解下他们两个的区别:(1) GET使用URL或Cookie传参。而POST将数据放在BODY中。(2) GET的URL会有长度上的限制,则POST的数据则可以非常大。(3) POST比GET安全,因为数据在地址栏上不可见。3.1.3 分享模块分享模块是本系统的一个吸引用户的亮点,因为该模块选用了新浪微博平台。众所周知随着互联网的迅猛发展,微博客已经形成信息传播的主流,在国外最流行的微博客Twitter,而在国内新浪微博率先进入了市场,并取得了非常大的成功,而在用户量上也早已经突破3亿。虽然目前腾讯微博也在迅猛的发展并抢占市场,但在微博客的世界中新浪依然占据老大的位置,无可撼动。下面分析下本系统使用新浪微博的好处。(1) 能够快速大范围的传播信息。不用长篇大论节省时间,内容可以是现场记录,最新曝料,发感慨,晒心情,还可以分享自己的照片。(2) 用户可以通过手机随时随地发布相关消息,可以即写即发,即拍即发。(3) 新浪微博平台的用户

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

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