OC试题 ——通讯录(AddressBook)
要求描述:⽤用OC语言完成简易通讯录(实现增删改查)功 能.
(注:使用MRC)
⼀一、功能描述:
main函数中通过使用Person类和AddressBook类,创建对象、调用方法,实现以下8个功能 :
中.
话:456);
1).使用便利构造器创建四个Person类的实例(联系⼈人).
姓名:Lucy性别:女 电话:123年龄:21姓名:Joe性别:男 电话:456年龄:17姓名:Baby性别:女 电话:789年龄:27姓名:Linda性别:女 电话:000年龄:21
2).创建⼀一个AddressBook类的实例对象(通讯录). 3).使⽤用AddressBook类中定义的⽅方法实现:添加联系人,将四个联系⼈人添加到通讯录
4).使用AddressBook类中定义的⽅法实现:根据电话查找联系人,并打印(查找电
5).使用AddressBook类中定义的⽅法实现:根据性别查找联系人,并将查到的联系人
按照年龄升序排序,并打印(查找性别:⼥女)
6).使⽤AddressBook类中定义的方法实现:根据姓名,更改联系人信息.(修改Linda的 信息:性别:女 电话:012年龄:25)
7).使用AddressBook类中定义的方法实现:按照姓名删除联系人,并展⽰通信录中所 有人信息.(删除联系人:Baby)
8).使用AddressBook类中定义的方法实现:删除一个分组,并展⽰通信录中所有人信
息.(删除L组)所有联系⼈人信息。
9).使用AddressBook类中定义的方法实现:实现3~8之间每个功能后,输出通讯录中
⼆二、功能实现提⽰示:
1、功能⼀一 定义Person类
1)声明属性:姓名,年龄,性别,电话,分组。注:年龄是int类型,其余属性时NSString类型;分组是姓名首字母(大写),使用提供的类目:NSString+Characters中的方法获取。(3分)
2)重写description⽅方法,输出Person对象的信息。例如:“姓名:张三 性别:男 年龄:22电话:123456789”.(2分)
3)定义Person类的便利构造器⽅法,方法包含参数:姓名、年龄、性别、电话.(5分)
2、功能⼆二 定义AddressBook类.
1)声明属性:allPersonDic(字典类型)。使⽤用声明的字典作为容器,分组管理通讯录中 所有联系人;字典的Key值为分组名(姓名首字母,⼤写),value值为数组,数组中存放联系人(Person实例).(5分)
2)在AddressBook的初始化方法中,初始化allPersonDic。(5分)3)重写dealloc⽅法,在dealloc⽅法中实现AddressBook类的内存管理。(5分)
3、功能三 添加联系⼈.要求(15分)
不能有重名).
a.在AddressBook类中定义⽅法:
- (BOOL)addPerson:(Person*)aPerson;
b.判断姓名和电话不能为空否则添加失败. c.判断是否已经存在分组,存在直接存储.不存在创建分组后再存储.(注:联系人
d.添加成功返回YES,姓名为空或者有重名的添加失败返回NO. e.数据使用Person存储.
4、功能四 根据电话查找某个联系人.(10分)
a:在AddressBook类中定义⽅方法:
-(Person*)findPersonWithPhoneNum:(NSString*)aPhoneNum;
b:如果找到返回该联系人,否则返回nil. c.忽略电话重复问题,只返回第一个查找到的联系人。
5、功能五
根据性别查找联系人,并将查到的联系人按照年龄升序排序(15分)a:在AddressBook类中定义方法:
-(NSArray*)findPersonsWithSex:(NSString*)aSex; b:查找到联系⼈人放⼊入数组,排序的时候使⽤用block.
6、功能六 根据姓名,更改联系人信息.(10分)
a:在AddressBook类中定义⽅方法:-(BOOL)changePersonWithName:(NSString*)name phoneNum:
(NSString*)aNum sex:(NSString*)aSex age:(NSUInteger) aAge; b:找到该联系人并修改该成功返回YES,否则返回NO
c.修改电话、性别、年龄,参数不能为空。
7、功能七 按照姓名删除联系人.(15分)
a.在AddressBook类中定义⽅方法:
- (BOOL)deletePersonWithName:(NSString*)aPersonName;
b.删除成功返回YES,否则返回NO; c.当删除联系人后分组为空时,需要删除该分组。
8、功能八 删除⼀个分组.(5分)
a.在AddressBook类中定义⽅方法:
- (BOOL)deleteGroup:(NSString*)aGroupName;
b.删除成功返回YES,否则返回NO;
9、功能九 展⽰示通讯录中的所有联系人信息(5分)
a:在AddressBook类中定义方法:-(void)showAll;
OC试题 ——通讯录(AddressBook)相关推荐
- 手机通讯录AddressBook的使用
通过使用两个框架:AddressBook.framework和AddressBookUI.framework,我们可以在程序中访问并显示iPhone数据库中的联系人信息. 1.AddressBookU ...
- 基于C++实现(控制台+界面)通讯录管理系统【100010012】
个人通讯录管理系统 问题描述: 主要内容: 个人通讯录是记录了同学(包含一起上学的学校名称).同事(包含共事的单位名称).朋友(包含认识的地点).亲戚(包含称呼)等与本人有关人员的数据集. 具体要求: ...
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总...
iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用系统应用.使用系统服务: ...
- 短信、邮件、通讯录、蓝牙、社交、Game Center、应用内购买、iClould、Passbook
来源于:http://www.cocoachina.com/ios/20150129/11068.html iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会 ...
- 基于C++和QT实现的个人通讯录管理系统
资源下载地址:https://download.csdn.net/download/sheziqiong/85722043 资源下载地址:https://download.csdn.net/downl ...
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook详解
代码改变世界 Posts - 69, Articles - 0, Comments - 812 Cnblogs Dashboard Login Home Contact Gallery RSS Ken ...
- iOS开发系列--通讯录、蓝牙、
iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用系统应用.使用系统服务: ...
- 微信小程序查看通讯录 联系人
通讯录 addressBook() {//通讯录操作 wx.chooseContact({ success: function (res) { // console.log(res, '成功回调') ...
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总,icloudpassbook...
--系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...
- iOS通讯录,蓝牙,内购等开发系列
–系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用系 ...
最新文章
- 美团副总裁夏华夏:科技应该为每一个普通人服务,要做“接地气的AI” | MEET2021...
- IBatis.Net学习笔记六--再谈查询
- 30. 多线程编程之threading模块
- php ob静态缓存
- 工业工程专业C语言,工欲善其事必先利其器——工业工程课程设置及其核心专业课简介...
- python3.6字典有序_Python如何按值对字典进行排序?
- 字体类形:font-family, font-style
- 【Python】IDE环境Pycharm运行虚拟环境Django
- HTML5新特征、窍门和技术(16~20)
- Redis工作笔记-spring-data-redis的基本使用
- DAY3 scp,rsync,chmod,chown,setfacl
- python基础系列教程——python中的字符串和正则表达式全解
- eclipse导入javaWeb项目
- 苹果ipad怎么刷机_苹果手机:iOS12刷机iOS12正式版刷机教程
- webmax函数高级教程整理集2
- 帆软日期格式转换_FineReport中日期时间函数使用总结
- Samsung SENS R60plus
- matlab 空集判定,在使用matlab 符号运算中的solve函数时,为啥计算的结果是空集?该怎么办?...
- matlab 类型强制转换,关于数据类型强制转换的分析和应用
- 微软2016校园招聘4月在线笔试2-403 Forbidden
热门文章
- 阿里巴巴与山东省人民政府签署战略合作协议
- HTML5高级之position(定位)
- 装修行业怎么找精准客户?有那些获客渠道?
- 腾讯云认证考试考点列表有哪些?
- S32K144_新建KEIL工程
- Oracle 12c中的MGMTDB
- 赛前练习(百度之星资格赛及初赛真题+Codeforces(div2级别))
- 矩阵论极简笔记(1):如何降维度打击
- c语言电子表格复制数据错误循环冗余检查,xp系统提示“数据错误(循环冗余检查)”如何解决...
- 宿主机无法访问虚拟机web服务器,宿主机无法访问虚拟机中的docker容器怎么办_网站服务器运行维护,宿主机,虚拟机,docker...