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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(移动智能平台iOS的多功能电子通讯录设计项目可行性方案.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

移动智能平台iOS的多功能电子通讯录设计项目可行性方案.docx

1、移动智能平台iOS的多功能电子通讯录设计项目可行性方案移动智能平台iOS的多功能电子通讯录设计项目可行性方案第一章 系统概述1.1 研究背景 如今互联网通讯以及智能手机行业如此发达,移动智能平台已经在人们的生活中随处可见;移动智能平台正处于一个走向成熟的阶段,在此基础上,移动智能平台拥有的独立操作系统,可以让手机能像个人电脑一样自定义安装各种功能的软件,而且,还可以通过这些对手机的那些基本功能进行扩充,从而使用户得到更好的体验以及满足用户的对移动智能操作系统日益增多的需求,这是iOS操作系统的一种优势,也是移动操作系统Android、iOS等赢得市场的主要原因。具有夸时代性与领先性的移动操作系

2、统iOS手机平台,从2007年乔布斯发布了第一代iPhone以来,发展非常地迅速,iPhone手机市场份额占比不断上涨。7其中iOS系统的稳定性、智能性、和非常好的用户体验,让我们可以看到iOS拥有一个更宽广的未来。1.2 研究意义 iOS系统不断的更新,不断的成长,使其功能变得越来越多用性,但通讯是永远不会被抛弃的一种基础功能之一,而手机拥有通讯,通讯录也必不可少。基于iOS的多功能通讯录的设计与实现也会包含这些基本功能,这些功能包括:联系人信息的添加、修改、删除和输出等功能,在完成这些功能的基础上扩展了一些其他功能,例如为用户可以为联系人添加头像、将联系人进行分组等。还有一些功能的扩展,该

3、系统可以代发邮件,或者拨打联系人电话及给联系人发送手机短信等,使通讯录拥有更友好的界面、拥有更好的体验以及功能更人性化。通过这次多功能通讯录的设计与实现,我对iOS的项目开发更加的熟练,对iOS的软件开发流程更加熟悉。这能让我的就业能力得到拓展。1.3 研究方法及设计思路本项目设计将会以iOS应用开发规范为其基础进行相应的研究,遵守项目研发基本要求,使用统一编程的风格,提高代码的可读性和编码效率,为后期代码维护提供便利。在研究过程中多多查阅开发资料,理清编程的具体思路以及开发的流程处理,如果遇到问题自行查阅资料解决或向指导教师请教,争取尽量完善本课题的开发,交出一份满意的答卷。提高自身对于Ob

4、jectC基础知识的更完全了解,提高资深对于网络请求、数据缓存、数据解析、项目性能优化等不同知识的掌握,力争完全掌握对于UITableView、UICollectionView等UI控件的熟练使用能力,提高自身的编程水平、逻辑思维以及独立开发项目的能力。15第二章 开发环境及相关技术介绍2.1 开发工具Xcode2.1.1 Xcode简介 Xcode是在Mac OS X操作系统上运行的集成开发工具,由苹果公司进行开发,是iOS与OS X开发的一种非常快捷与方便的开发工具,它负责处理从最开始到工程的最终部署这一过程中的大多数细节1。我们可以通过Xcode来完成下面的工作: 1.创建iOS项目和管

5、理项目,可以指定项目的的需求、项目的规格及开发语言、项目代码管理工具等。 2.指定关键字染色,利用系统方法代码联想来快速编写源代码,自动缩进功能可以管理代码格式等。 3.在同一个项目的不同组件中进行漫游和检索,项目里的头文件以及其中的文档。 4.源代码管理与连编工程 5.可以以图形化的形式调试项目工程,并可以逐步运行源代码及其调用的方法 Xcode 可以连编由C、C+、Objective-C、和Java等语言编写的源代码组成的项目工程,可以把这些源码编译生成Mac OS X支持的执行代码,其中包括命令行工具、框架、插件、内核扩展、程序包、和应用程序5。Xcode支持几个源代码管理系统,其中包括

6、有:SVN、Git,是我们可以更轻松便捷的管理我们所写的源代码,特别是在团队开发合作时,我们可以随时更新队友新提交的代码,或者把自己的代码提交到服务器上,我们也可以获取其中每一个版本的代码以及进行代码的比较。2.1.2 Xcode特点 Xcode 特别适合用于Cocoa开发。在创建工程时,Xcode可以通过对应于Cocoa工程类型的工程模板,为您建立一个初始的开发环境。Cocoa工程类型 有:应用程序(Objective-C或Java)、基于文档的应用程序(Objective-C或Java)、工具、程序包、和框架。Xcode使用GNU C编译器(gcc)来编译Cocoa软件,使用GNU源代码级

7、调试器(gdb)来调试软件。在Cocoa开发中使用gcc和gdb从它还是NeXTSTEP(参见一点历史部分)的时代就开始了。对Cocoa二进制代码的编译和调试经过多年的精化、扩展、和调优。12 Xcode也有一个类浏览的功能,可以查看所有导入的Cocoa框架类和您自己的定制类,还有它们的继承关系;从类浏览器中,您可以请求查看任何类的文档。Xcode还包含一些设计工具,其中有一个工具可以用于设计Core Data程序中使用的数据实体的属性和关系。Xcode 和另外一个主要的开发工具Interface Builder良好地集成在一起。在Interface Builder中,您可以定义一个类(包括超

8、类,插座变量,和动作),并为工程中的每个类生成源代码文件的框架。在Xcode中,您可以为定制类添加插座 变量和动作,然后让Interface Builder将这些实体导入到nib文件中。4 2.2 Objective-C语言2.2.1 Objective-C语言简介 Objective-C,通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在gcc运作的系统写和编译,因为gcc含Objecti

9、ve-C的编译器。11 Objective-C是非常“实际”的语言。它使用一个用C写成、很小的运行库,只会令应用程序的大小增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。ObjC写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。13 Objective-C的最初版本并不支持垃圾回收。在当时这是争论的焦点之一,很多人考虑到Smalltalk回收时有漫长的“死亡时间”,令整个系统失去功用。Objective-C为避免此问题才不拥有这个功能。虽然某些第三方版本已加入这个功能(尤是GNU

10、step), Apple在其Mac OS X 10.3中仍未引入这个功能。14 另一个问题是ObjC不包括命名空间机制(namespace mechanism)。取而代之的是程序设计师必须在其类别名称加上前缀,时常引致冲突。在2004年,在Cocoa编程环境中,所有Mac OS X类别和函式均有“NS”作为前缀,例如NSObject或NSButton来清楚分别它们属于Mac OS X核心;使用“NS”是由于这些类别的名称在NeXTSTEP开发时定下。 虽然Objective-C是C的母集,但它也不视C的基本型别为第一级的对象。 和C+不同,Objective-C不支援运算子多载(它不支持ad-

11、hoc多型)。亦与C+不同,但和Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。7Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。2.2.2 Objective-C与C+的比较1.单一继承: Objective-C不支持多重继承,(同Java和Smalltalk),而C+语言支持多重继承。82.动态: Objective-C是动态定型(dynamicaly typed)所以它的类库比C+要容易操作。Objective-C 在运行时可以允许根据字符串名字来访问方法和类,还可以动态连接和添加类

12、。 C+ 跟从面向对象编程里的Simula 67(一种早期OO语言)学派,而Objecive-C属于Smalltalk学派。 在C+里,对象的静态类型决定你是否可以发送消息给它,而对Objective-C来说,由动态类型来决定。Simula 67学派更安全,因为大部分错误可以在编译时查出。3 而Smalltalk学派更灵活,比如一些Smalltalk 看来无误的程序拿到Simualr 67那里就无法通过。2.3 Cocoa框架2.3.1 Cocoa简介 Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一。 Cocoa 应用程序一般在苹果公司的

13、开发工具Xcode(前身为Project Builder)和Interface Builder上用Objective-C写成。不过,通过Java bridge、PasCocoa、PyObjC、CamelBones以及RubyCocoa等桥接技术,Java、Clozure CL、LispWorks、Object Pascal、Python、Perl、Ruby等其它工具或者语言也可以用来开发 Cocoa 应用。也有一些其它语言的Cocoa实现无须桥接,比如苹果公司开发的MacRuby和类似Lisp的Nu语言。不使用Xcode和Interface Builder,仅仅通过文本编辑器、GCC和GNU

14、make工具也可以用Objective-C语言开发Cocoa应用。2.3.2 Cocoa两大核心框架1.Foundation框架 (1)Foundation框架设计目标:为诸如内存管理、对象改变和通告这样的事物定义基本的对象行为和引入一直的规则。通过程序包技术和Unicode字符串支持国际化和本地化。支持对象的持久保存和分发。在一定程度上独立于OS,以支持移植。为编程的元类型提供对象封装或价物,数值、字符串、集合以及端口、线程、文件系统等为访问底层系统实体和服务提供的工具类。 (2)Foundation的几个范式和策略:对象所有权和对象的清除。建立一个对象所有权策略以代替垃圾收集机制。指定对象

15、需要释放自己创建、拷贝、显示保留的其他对象。自动释放池(NSAutoreleasePool类中定义)实现一种迟缓释放(delayed-release)机制。变体,很多值和容器类的不可变类都有一个可以修改的变体。可变类的实例从不可变类中继承过来。类簇,是一个抽象类以及一组私有的具体子类的组合。抽象类是这些子类的雨伞接口。根据不同情况,类簇可以返回适当优化的类实例,比如NSString和NSMutableString就是针对不同的存储需要进行优化的各种私有子类实例的经纪类。9通告是Cocoa主要设计模式,它基于广播机制,使一个对象可以在另一个对象进行某种任务或遇到某情况时,以用户或系统事件的方式得

16、到通告。同步、异步和分布式通告。有NSNotification、NSNotificationCenter、NSNotificationQueue和NSDistributeNotificationCenter类实现。2.App Kit框架 Appliaction Kit框架包含实现图形、事件驱动的用户界面需要的所有对象:窗口、对话框、按键、菜单、滚动条、文本输入框等的。App Kit处理所有细节。高效的进行屏幕描画、营建设备和屏幕缓冲区进行通讯,描画前清除屏幕上的区域已经视图裁剪。大多数App Kit类都是支持类,可以不用直接使用。用IB创建用户界面对象到应用程序控制器对象的连接,控制器对象负责

17、管理用户界面,协调用户界面和内部数据之间的数据流。可能用到off-the-shelf控制器对象,可能需要实现一个或多个定制控制器类(特别是使用那些类的动作和委托方法)。如果我们都App Kit类和协议熟悉,我们可以以编程方式控制用户界面。也可以通过子类化NSView或在其他类实现自己的对象。第三章 需求分析3.1功能需求分析3.1.1 功能设计 该多功能通讯录系统使用MVC的设计模式,进行手机基本通讯录的设计与开发,同时,在此基础上按照大多数人的使用习惯与需求对手机通讯录进行优化与管理,并把一些常用的功能加入其中,使该体统更符合人性化,使用起来更加舒畅与便捷。此系统主要设计功能如下:1.添加联

18、系人,用户可以添加把联系人添加入通讯录;2.搜索联系人,用户可以通过手机号,姓名简拼、全拼、汉子等搜索联系人;3.发送短信,用户可以直接点击联系人信息里的短信发送;4.拨打电话,用户可以直接拨打联系人的手机或者固定电话;5.联系人分组,联系人可以像QQ联系人列表一样进行分组;6.删除联系人,用户可以单个删除联系人和批量删除联系人;7.备忘录,在基础通讯录的基础上增加一个备忘录的功能,使用户能更方便的使用备忘录等。3.2 性能需求分析 对iOS手机软件的开发,首先要有良好的用户体验,而良好的用户体验可以从以下的几个方面入手:(1)搭建友好的界面 对于一个iOS手机软件来说,界面友好很重要,用户的

19、界面要直观、简洁,设计要合理,方便用户进行操作,让用户操作起来比较流畅、舒服,并且UI视觉效应好。(2)能够非常流畅的快速响应 用户的输入或查询等的请求快速处理,对算法就行优化,对于某些需要时间稍微长点处理的部分,在其处理时可以给用户一个提示,让用户知道该软件正在运行状态。(3)无缝性 一个常见的应用无缝问题,就是在后台进程中对某事件作出响应而弹出对话框,这看起来似乎并没有多大的妨碍,特别是当自己在虚拟机上单独地构建和测试该应用时。但是,当我们的应用在真机上运行时,后台线程显示对话框,我们的应用当时可能就没有获得用户焦点,这就会出现应用在活动的应用后面显示对话框,或者从当前应用中获得焦点并显示

20、对话框的情况,而不管当时用户正在做什么(如正在发短信等);那样的行为可能对应用或用户不起作用。所以,为了避免此类问题的出现,我们的应用应该利用适当的系统资源Notification类,来通知用户。利用通知,我们可以在状态条上显示一个图标,来告诉用户该应用的事件已经发生,而不是获得焦点或者打断用户的操作。3.3系统用例分析用例分析处于需求与设计之间,是连接两者之间的桥梁,当我们进行用例分析之后,我们可以清晰的看到系统多需要的用例以及该用例在系统之中的作用,而在本系统之中,主要的用例是用户对通讯录的一些操作与管理用例,用户可以添加联系人(在添加联系人时可以通过系统授权读取相册图片添加用户的头像)、

21、搜索联系人、删除联系人、修改联系人的信息等,还可以对其他扩展功能进行操作与管理,通过这些用例分析了解该用例在系统中对应的作用。系统用户用例图如图3.1所示:图3.1 系统用户用例图Fig.3.1 System user use case diagram3.4本章总结 本章主要是对系统需求进行分析,从系统的功能需求分析,对系统一些功能需求进行分析;到系统性能需求分析,包括搭建友好的界面、非常流畅的快速响应以及无缝性;对最后再到对本系统的用例进行分析,包括添加联系人(在添加联系人时可以通过系统授权读取相册图片添加用户的头像)、搜索联系人、删除联系人、修改联系人的信息等,还可以对其他扩展功能进行操作

22、与管理等。充分考虑到系统在设计时需要实现的内容,需要在性能方面需要达到的要求以及系统涉及的用例。在设计系统时所需要考虑到用户的一些需求内容。第四章 系统概要设计4.1 系统设计结构及说明 本系统为基于iOS操作系统的多功能通讯录,主体结构划分为:(1) 搜索 用户可以在搜索界面,对联系人进行搜索。我们可以通过手机号、联系人姓名全拼、联系人简拼等进行搜索,也可以模糊搜索,搜索到的联系人我们可以查看详细信息,修改联系人信息,可以发送短信、拨打电话。(2) 通讯录 在通讯录主功能页面我对通讯录所有联系人进行了类似QQ好友界面一样进行分组,我们可以点击每一个分组展开该分组,从而能够快速的找到自己想要找

23、到的联系人,同时也可以对联系人进行操作与管理(3) 其他功能在其他功能里,我对通讯录外的一些常用功能进行了整合,我们可以在里面查看日历,或者写备忘录等。系统结构图如图4.1所示:图4.1 系统结构图Fig.4.1 System architecture diagram4.2 数据库设计4.2.1 系统数据表的设计 数据库表的设计是根据系统的需求来进行设计的,充分考虑了各种数据表之间的划分与关联,保证用户的数据正确且有效,本系统共有三张表:1、 联系人信息表(contact) 联系人表用于记录通讯录里的联系人,包括编号(contact_id)、姓名(contact_name)、手机号(conta

24、ct_phone)、电话号码(contact_tel)、邮箱(contact_email)、地址(contact_address)、头像(contact_photo)、分组(group_id),用户可以对其进行增加联系人信息、删除联系人、修改联系人信息、查询联系人等操作。表具体信息如表4.1所示:表4.1 联系人信息表Table4.1 contact information sheet字段名中文含义数据类型及长度关键字是否可空contact_id联系人编号int主键否contact_name联系人姓名nvarchar(20)是contact_phone手机号码varchar(11)否conta

25、ct_tel电话号码varchar(20)是contact_email电子邮箱varchar(50)是contact_address联系人地址nvarchar(200)是contact_photo联系人头像nvarchar(100)是group_id联系人分组编号int外键否2、 联系人分组表(group) 联系人分组表主要用于记录用户设定的联系人的分组,包括分组编号(group_id)、分组名(group_name)、分组备注(group_identy),用户可以通过分组编号查询出组名把联系人进行分组,在添加联系人的时候可以选择给新添加的联系人进行分组,在修改联系人信息的时候也可以给联系人修

26、改分组。具体表信息如表4.2所示:表4.2 联系人分组表Table4.2 contact group sheet字段名中文含义数据类型及长度关键字是否可空group_id分组编号int主键否group_name分组名nvarchar(20)否group_identy分组备注nvarchar(50)是3、 备忘录表(memorandum) 备忘录表是为了便于用户在录通讯录里使用备忘录而设计的,包括备忘录编号(memorandum_id)、备忘录标题(memorandum_title)、备忘录内容(memorandum_detail)、记录时间(memorandum_time)、已经完成(memo

27、randum_isdone),用户可以对其进行增加备忘录、删除备忘录、记录是否完成等操作。表具体信息如表4.3所示:表4.3 联系人分组表Table4.3 contact group sheet字段名中文含义数据类型及长度关键字是否可空memorandum_id备忘录编号int主键否memorandum_title备忘录标题varchar(20)否memorandum_detail备忘录详细内容nvarchar(200)否memorandum_time备忘录记录时间datatime否memorandum_isdone是否已经完成bit否4.3 数据表关系根据以上表的结构与对应的关系,列出各表之

28、间的关系如图4.2所示:图4.2 系统类图Fig.4.2 class of system diagram4.4 数据库物理结构4.4.1 用Objective-C创建sqllite数据库/ 建库- (void)createDB NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentDirectory = paths objectAtIndex:0; NSString *dbPath = documentDirector

29、y stringByAppendingPathComponent:AddressBookDB.db; _db = FMDatabase databaseWithPath:dbPath; if (!_db open) NSLog(Could not open the db!); return; 4.4.2 用Objective-C创建联系人信息表/ 建表- (void)createTable / 判断表是否存在 if (!_db tableExists:contact) _db executeUpdate:CREATE TABLE contact (contact_id INTEGER PRIM

30、ARY KEY AUTOINCREMENT, contact_name text, contact_phone text, contact_tel text, contact_email text, contact_address text, contact_photo text, group_id text); 4.4.3 用Objective-C创建联系人分组表/ 建表- (void)createTable / 判断表是否存在 if (!_db tableExists:group) _db executeUpdate:CREATE TABLE group (group_id INTEGER

31、 PRIMARY KEY AUTOINCREMENT, group_name text, group_identy text); 4.4.4 用Objective-C创建备忘录表/ 建表- (void)createTable / 判断表是否存在 if (!_db tableExists: memorandum ) _db executeUpdate:CREATE TABLE memorandum (memorandum_id INTEGER PRIMARY KEY AUTOINCREMENT, memorandum_title text, memorandum_detail text, memorandum_time text, memorandum_isdone bit); 4.5 数据流图在此多功能通讯录系统中,由于是面向

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

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