基于iOS的天气预报系统的设计和实现毕业设计Word格式.docx
《基于iOS的天气预报系统的设计和实现毕业设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于iOS的天气预报系统的设计和实现毕业设计Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
![基于iOS的天气预报系统的设计和实现毕业设计Word格式.docx](https://file1.bdocx.com/fileroot1/2023-2/4/94073a5b-756d-4d5e-8f7a-2eeb1a11f7de/94073a5b-756d-4d5e-8f7a-2eeb1a11f7de1.gif)
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进展研究所获得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或团队a已经发表或撰写的成果作品。
对本文的研究做出重要奉献的个人和团队a,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承当。
日期:
年月日
学位论文版权使用受权书
本学位论文作者完全理解学校有关保存、使用学位论文的规定,同意学校保存并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人受权 大学可以将本学位论文的全部或局部内容编入有关数据库进展检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
导师签名:
日期:
注意事项
1.设计〔论文〕的内容包括:
1〕封面〔按教务处制定的标准封面格式制作〕
2〕原创性声明
3〕中文摘要〔300字左右〕、关键词
4〕外文摘要、关键词
5〕目次页〔附件不统一编入〕
6〕论文主体局部:
引言〔或绪论〕、正文、结论
7〕参考文献
8〕致谢
9〕附录〔对论文支持必要时〕
2.论文字数要求:
理工类设计〔论文〕正文字数不少于1万字〔不包括图纸、程序清单等〕,文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文〔复印件〕。
4.文字、图表要求:
1〕文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请别人代写
2〕工程设计类题目的图纸,要求局部用尺规绘制,局部用计算机绘制,所有图纸应符合国家技术标准标准。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3〕毕业论文须用A4单面打印,论文50页以上的双面打印
4〕图表应绘制于无格子的页面上
5〕软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1〕设计〔论文〕
2〕附件:
按照任务书、开题报告、外文译文、译文原文〔复印件〕次序装订
指导老师评阅书
指导老师评价:
一、撰写〔设计〕过程
1、学生在论文〔设计〕过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
3、学生综合运用所学知识和专业技能分析和解决问题的才能
4、研究方法的科学性;
技术线路的可行性;
设计方案的合理性
5、完成毕业论文〔设计〕期间的出勤情况
二、论文〔设计〕质量
1、论文〔设计〕的整体构造是否符合撰写标准?
2、是否完成指定的论文〔设计〕任务〔包括装订及附件〕?
三、论文〔设计〕程度
1、论文〔设计〕的理论意义或对解决实际问题的指导意义
2、论文的观念是否有新意?
设计是否有创意?
3、论文〔设计说明书〕所表达的整体程度
建议成绩:
〔在所选等级前的□内画“√〞〕
指导老师:
〔签名〕单位:
〔盖章〕
年月日
评阅老师评阅书
评阅老师评价:
一、论文〔设计〕质量
二、论文〔设计〕程度
评阅老师:
教研室〔或辩论小组〕及教学系意见
教研室〔或辩论小组〕评价:
一、辩论过程
1、毕业论文〔设计〕的根本要点和见解的表达情况
2、对辩论问题的反响、理解、表达情况
3、学生辩论过程中的精神状态
评定成绩:
教研室主任〔或辩论小组组长〕:
〔签名〕
教学系意见:
系主任:
基于iOS的天气预报APP的设计与实现
摘要
伴随着3G时代的到来,挪动终端所能完成的功能在各行各业日益广泛和深化,挪动便携的概念早已深化人心,让人们更加的依赖挪动终端。
本课题来源于天气预报系统在挪动终端便捷使用的需求。
本系统是基于iOS平台开发的一个基于iOS的天气预报系统,主要完成软件的整体设计以及各个功能的实现。
在OSX操作系统平台下,搭载Xcode开发环境,采用Objective-C语言作为主要开发语言,使用Xcode完成后台代码的编写,运用多线程技术保证程序性能,结合Photoshop为界面UI美化,从而完成的一个iOS客户端。
本论文是以系统的开发为线,介绍了此系统的设计与实现过程,从软件设计的角度对系统的理论根底、系统概要设计以及系统详细实现进展了详细研究。
整个过程严格遵循了软件工程的思想和UI视觉享受的理念,保证了系统的实用价值。
系统是在OSX环境下,采用C/S构造结合,以SQLite数据库为开发平台,采用iOS技术开发的基于iOS的天气预报系统。
关键词:
挪动终端,天气预报,iOS
DesignandImplementationofWeatherForecastAPPBasedoniOS
Abstract
Withthearrivalof3Gera,mobileterminalfunctionscanbecompletedinallwalksoflifeincreasinglyextensiveandin-depth,theconcepthaslongbeenpopularmobileportable,sothatpeoplemoredependentonmobileterminals.Theweatherforecastforthisprojectcomesfromtheneedsofthesystemeasytousemobileterminals.
ThesystemisbasedonaplatformiOSiOS-basedweatherforecastingsystems,mainlytocompletetheoveralldesignandrealizationofthevariousfunctionsofthesoftware.UnderOSXoperatingsystemplatform,equippedwithXcodedevelopmentenvironment,usingtheObjective-Clanguageastheprimarydevelopmentlanguage,usingXcodetowritecodetocompletethebackground,theuseofmulti-threadingtechnologytoensuretheprogram'
sperformance,combinedwithPhotoshopinterface(UI)forlandscaping,thuscompletingaiOSclient.
Thispaperisthedevelopmentofsystemsfortheline,introducesthedesignandimplementationprocessofthissystem,fromasoftwarepointofviewofthetheoreticalbasisofdesign,systemdesignandsystemimplementationoutlineadetailedstudy.ThewholeprocessstrictlyfollowstheUIvisualthinkingandenjoytheideaofsoftwareengineeringtoensurethatthepracticalvalueofthesystem.SystemisunderOSXenvironment,theuseofC/SstructurecombinedtoSQLitedatabasedevelopmentplatform,usingtechnologydevelopediOSiOS-basedweatherforecastingsystem.
KeyWords:
Mobileterminal,weatherforecast,iOS
1绪论
1.1课题背景及意义
课题背景
随着现代生活节奏的加快,随时随地查看天气就成为现代人快节奏生活方式之一,因此一款天气预报APP就成为生活中必不可少的元素,它可以满足我们对天气信息的各种需求。
如今互联网的革新和挪动互联网的大力开展让天气预报APP的作用更加丰富起来,我们除了可以查看最根本的天气信息外,还可以获得基于天气的各种指导信息,比方穿衣、运动等。
由于天气预报作为一款根底应用,它所面对的用户数量非常庞大,而不同的用户会有各自不同的需求。
有的用户可能就只需要最根本的气温、阴晴等信息,有的用户可能对降雨信息特别敏感,因此如何更好、更简洁地为用户展现天气信息成为一个难题。
研究意义
天气对公众的生活有着指导性的意义,不同的天气对我们的生活有着不同的影响,比方下雨天会让人心情比拟沉闷,晴天会让人心情开朗。
提早理解气象灾害信息可以更好地帮助我们躲避危险和损失,防患于未然。
同时天气对航空有很大的影响,几乎所有的飞机场均有自己的气象站。
在飞机起飞前机组人员要获得整个飞行道路上的天气情况以及天气预报数据。
其它私人企业也可以通过天气预报来调整它们的需求和供应。
比方超市在热天是可以提供更多的饮料,等等。
可见天气对我们的影响是无处不在的,用APP来预报天气在一定程度上可以帮助我们更好地掌握天气动态,可以更好地指导我们的行为。
开展现状
目前,在苹果APPStore应用商店中的有关天气预报APP有很多,国内较知名的有墨迹天气、无忧天气、黄历通等,国外有雅虎天气、SolarWeather等。
天气预报APP的根本功能是预报天气,但是APPStore中的天气预报APP经常插带有一些商业广告,用户体验很差,另外一些APP那么需要付费。
所以针对目前状况,开发出一款界面简洁,功能实用的天气预报APP显得尤为重要。
1.2论文主要工作和构造安排
该APP在采用的架构方面,采用的是UITabBarController和UINavigationController的主流架构设计来管理各个模块业务逻辑。
即在主页面用UINavigationView显示内容,在顶部边栏显示功能菜单。
各个模块之间处于平行的关系,用户根据功能菜单的选择,在内容页显示各个模块。
在数据加载方面,采用的是AFNetworking框架。
在开发工具中选用Xcode6.4,运行设备选用的是iPhone5s的模拟器。
在本应用中主要采用的技术和涉及的页面开发技术如下:
1.天气信息的加载和展示通过AFNetworking框架实现;
2.使用UIKit、CoreLocation框架实现GPS定位以及用户选择城市天气状况的显示;
3.使用CoreAnimation实现页面内和页面切换时的动画以及天气状况的模拟展现;
4.使用本地推送通知提醒用户天气变化;
5.友好的UI界面设计;
6.APP应用的不同版本之间的适配和不同iPhone手机的屏幕适配。
2系统的可行性研究
当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场开展迅速,是的手机操作系统也出现了不同各类,如今的市场主要有2个手机操作系统,iOS和谷歌的Android操作系统,那么能否在手机上拥有自己编写的个性基于iOS的天气预报系统呢?
能的,iOS系统就能做到。
本文的基于iOS的天气预报就是基于iOS手机平台的系统。
iOS最早于2007年1月9日的苹果MacWorld展览会上公布,随后于同年的6月发布的第一版iOS操作系统,当初的名称为“iPhone运行OSX〞。
最初,由于没有人理解“iPhone运行OSX〞的潜在价值和开展前景,导致没有一家软件公司、没有一个软件开发者给“iPhone运行OSX〞开发软件或者提供软件支持。
于是,苹果公司时任CEO斯蒂夫.乔布斯说服各大软件公司以及开发者可以先搭建低本钱的网络应用程序〔WEBAPP〕来使得它们能像iPhone的本地化程序一样来测试“iPhonerunsOSX〞平台。
2007年10月17日,苹果公司发布了第一个本地化iPhone应用程序开发包〔SDK〕,并且方案在2月发送到每个开发者以及开发商手中。
2021年3月6日,苹果发布了第一个测试版开发包,并且将“iPhonerunsOSX〞改名为“iPhoneOS〞。
2021年9月,苹果公司将iPodtouch的系统也换成了〞iPhoneOS“。
2021年2月27日,苹果公司发布iPad,iPad同样搭载了〞iPhoneOS〞。
这年,苹果公司重新设计了“iPhoneOS〞的系统构造和自带程序。
2021年6月,苹果公司将“iPhoneOS〞改名为“iOS〞,同时还获得了思科iOS的名称受权。
2021年第四季度,苹果公司的iOS占据了全球智能手机操作系统26%的市场份额。
2021年10月4日,苹果公司宣布iOS平台的应用程序已经打破50万个。
2021年2月,应用总量到达552,247个,其中游戏应用最多,到达95,324个,比重为17.26%;
书籍类以60,604个排在第二,比重为10.97%;
娱乐应用排在第三,总量为56,998个,比重为10.32%。
2021年6月,苹果公司在WWDC2021上宣布了iOS6,提供了超过200项新功能。
2.1经济上的可行性
苹果iOS是由苹果公司开发的手持设备操作系统。
苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPodtouch、iPad以及AppleTV等苹果产品上。
iOS与苹果的MacOSX操作系统一样,它也是以Darwin为根底的,因此同样属于类Unix的商业操作系统。
本来这个系统名为iPhoneOS,直到2021年6月7日WWDC大会上宣布改名为iOS。
基于
iOS平台的各类人才逐渐成为各大企业竞相争夺的焦点。
2.2技术上的可行性
你开发经历的焦点是Xcode程序。
Xcode是一个集成开发环境(IDE),提供所有的工具,令你可以创立和管理你的iPhone工程和源代码,构建你的代码成为可执行文件,在iPhone模拟器或者真实设备上运行和调试你的代码。
2.3操作上的可行性
本系统采用iOS框架。
综合以上三方面,该系统具有很高的开发可行性,无论是从技术上经济上还是操作上。
都是可以顺利完成这个工程的条件
3系统的需求分析
软件需求分析工作是软件生存期中重要的一步,也是决定性的一步。
软件需求分析是一个不断认识和逐步细化的过程,该过程将软件方案阶段所确定的软件范围逐步细化到可详细定义的程度。
需求分析还是软件开发的根底,假定在该阶段发现一个错误,解决它需要用一小时的时间,到设计、编程、测试和维护阶段解决,那么要花几倍甚至更多的时间。
因此对于复杂系统而言,首先要进展需求分析。
开发人员应该对用户的要求及现实环境进展调查和理解。
3.1系统总体功能需求分析
该APP应用拟采用MVC形式进展开发,主要技术难点为天气信息的展示、GPS定位功能和各个城市不同天气的获取、页面跳转之间的动画、展示天气界面的设计和数据存储、自定义UI控件、以及iOS不同的版本间的适配和不同iPhone手机的屏幕适配、APP的性能优化和代码重构等。
为了进步用户体验,采用点击反响的架构设计来管理各个模块业务逻辑。
即在主页面用UITableViewCell显示内容,点击底部和顶部按钮显示功能菜单。
各个模块之间处于平行的关系,用户根据功能菜单的选择,在内容页显示各个的模块的详细内容。
在前期开发中该APP所要做的主要工作有:
1.研究CoreLocation框架实现GPS定位和天气信息的显示;
2.研究CoreAnimation框架实现页面内或页面之间切换时的动画效果;
3.研究通过本地通知的方式提醒用户天气状况;
4.参考其他天气预报APP研究UI界面的设计;
5.研究不同版本之间iOS的适配和不同iPhone手机屏幕的适配;
6.研究APP的性能优化和代码重构。
3.2系统软件目的
当本系统属于用户常用的基于iOS的天气预报系统。
可以方便用户平时对文件的操作。
本系统应到达以下目的:
1.软件采用人机交互的方式,界面美观友好,操作灵敏、方便、富有个性化;
2.可以通过对图片文字进展自动识别;
3.系统应最大限度地实现易维护性和易操作性。
3.3系统功能需求
当功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了用户的业务需求。
用户需求文档描绘了用户使用产品必需要完成的任务。
针对基于iOS的天气预报系统分别对控制管理等功能进展详细的调研和分析,总结出如下的用户需求信息。
1.提供用户一个城市设置界面,系统可以根据用户位置自动定位当前城市,用户也可以手动设置城市。
2.用户可以查看当前天气状况,包括温度信息,PM2.5信息,用户也可以查看将来三天的天气变化情况。
3.提供用户一个出行方案设置界面。
4.提供用户一个系统设置界面,用户可以对系统信息进展设置,包括检查更新,出行方案,隐私协议,关于我们。
进展系统分析和设计的第一步是创立系统的用例模型。
作为描绘系统的参与者所能进展操作的图,它在需求分析阶段有着举足轻重的作用,整个开发过程都是围绕系统的需求用例描绘进展的。
1.确定系统的参与者,创立系统用例的第一步是确定系统的参与者。
系统的参与者为用户。
2.创立用例模型,当需求被搜集起来后,根据不同角色对不同功能的权限,即可通过用例来描绘系统的功能。
系统用例图如图3-1所示。
图3-1系统用例图
3.4系统界面需求
系统界面要求布局合理,颜色舒适,控制按钮友好,要求整体有一个主要的元素标准,统一的主题思想。
3.5系统性能需求
根据iOS手机系统要求,所以就有如下性能要求:
1.程序用到的图片要切片,做到最小占有容量;
2.代码要做到精简、实用,使系统调用最优;
3.布局要美观
4APP系统的总体设计与实现
软件功能设计是使整个软件能根本实现管理控制的设置和运行、新建,管理,设置等功能,能让用户通过本软件进展图片识别。
4.1APP设计思想
1.将系统分成几个相对独立的模块;
2.分层的模块化程序设计思想,整个系统采用模块化构造设计。
作为应用程序有较强的可操作性和扩展性;
3.合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流互相连接,使各模块间的耦合性较低,方便系统运行,进步系统平安性。
根据系统需求特点采用了MVC的设计形式。
MVC(Model-View-Controller)设计形式被广泛应用于系统开发中。
M指的是模型层,V指的是视图层,C指的是控制层。
MVC设计形式将模型层和视图层分开,使得在软件设计过程中分工明确,降低了各个模块之间的耦合度。
控制层的主要作用是保证视图层与模型层之间的更新保持同步,起到了指导作用。
MVC状态转换示意图如图4-1所示。
本系统的设计就是使用MVC的设计思想,MVC的设计思想在iOS软件设计中也是通用的。
本系统设计的MVC各层说明说如下。
1.视图层(View):
iOS程序设计中应用XML标签来描绘界面,每个模块都有各自的XML文件。
用户需要调用各个模块中的组件,通过各个组件的ID就可以实现,十足的方便。
2.控制层(Controller):
在iOS中控制层的任务由UIViewController担当,在UIViewController中调用模型层处理业务,然后通过UIViewController将返回的结果放到界面显示给恳求用户。
在iOS中耗时的操作不可以放在UIViewController进展,因为UIViewController的响应时间为5s,超过响应时间范围的业务逻辑容易被销毁。
3.模型层(Model):
模型层负责比拟耗时的操作。
图4-1MVC状态转换示意图
4.2系统功能构造图
根据上述需求分