建立一个简单的通讯录

1、定义联系人类AddressContact。实例变量:姓名、性别、电话号码、住址、分组名称。方法:自定义初始化方法(姓名、电话号码)、显示联系人信息

2、在main.m中定义可变数组,管理所有联系人。可以添加新联系人对象,如果姓名或电话号码为空,打印添加失败。

3、获取某个分组下的所有联系人。

4、根据电话号码搜索联系人。

5、获取所有女性联系人

6、根据姓名删除联系人

7、删除某个分组全部联系人

8、展示通讯录中所有联系人

9、选做:定义AddressBook类,封装上述功能。

main.m

//创建地址簿对象

AddressBook * book = [[AddressBook alloc] init];

AddressContact * p1 = [[AddressContact alloc] initWithName:@"小明" sex:@"男"phoneNum: @"12345566" address:@"龙东大道" groupName:@"同学"];

[book addPerson:p1];

[book showAddressBook];

//    [book getPersonWithGroupName:@"同学"];

[book removePersonWithGroupName:@"同学"];

[book showAddressBook];

创建类—AddressContact

.h

#import <Foundation/Foundation.h>

@interface AddressContact : NSObject

@property(nonatomic,retain) NSString * name;

@property(nonatomic,retain) NSString * sex;

@property(nonatomic,retain) NSString * phoneNum;

@property(nonatomic,retain) NSString * address;

@property(nonatomic,retain) NSString * groupName;

- (id)initWithName:(NSString *)name sex:(NSString *)sex phoneNum:(NSString*)phoneNum address:(NSString *)address groupName:(NSString *)groupName;

//1、定义联系人类AddressContact。实例变量:姓名、性别、电话号码、住址、分组名称。方法:自定义初始化方法(姓名、电话号码)、显示联系人信息

- (void)information;

@end

.m

#import "AddressContact.h"

@implementation AddressContact

- (id)initWithName:(NSString *)name sex:(NSString *)sex phoneNum:(NSString*)phoneNum address:(NSString *)address groupName:(NSString *)groupName

{

self = [super init];

if (self) {

_name = name;

_sex = sex;

_phoneNum = phoneNum;

_address = address;

_groupName = groupName;

}

return self;

}

- (void)information

{

NSLog(@"%@ %@ %@ %@ %@",_name,_sex,_phoneNum,_address,_groupName);

}

@end

创建类—AddressBook

.h

#import <Foundation/Foundation.h>

#import "AddressContact.h"

@interface AddressBook : NSObject

{

NSMutableArray *_data;

}

//2、在main.m中定义可变数组,管理所有联系人。可以添加新联系人对象,如果姓名或电话号码为空,打印添加失败。

- (void)addPerson:(AddressContact *)per;

//3、获取某个分组下的所有联系人。

- (void)getPersonWithGroupName:(NSString *)groupName;

//4、根据电话号码搜索联系人。

- (void)getPersonWithphoneNum:(NSString *)phoneNum;

//5、获取所有女性联系人

- (void)getPersonWithSex:(NSString *)sex;

//6、根据姓名删除联系人

- (void)removePerson:(AddressContact *)per;

- (void)removePersonWithName:(NSString *)name;

// 7、删除某个分组全部联系人

- (void)removePersonWithGroupName:(NSString *)groupName;

//展示所有联系人信息

- (void)showAddressBook;

@end

.m

#import "AddressBook.h"

@implementation AddressBook

- (id)init

{

self = [super init];

if (self) {

_data = [[NSMutableArray alloc] init];

}

return self;

}

//2、在main.m中定义可变数组,管理所有联系人。可以添加新联系人对象,如果姓名或电话号码为空,打印添加失败。

- (void)addPerson:(AddressContact *)per

{

if ([[per name] length] == 0 || [[per phoneNum] length] == 0) {

NSLog(@"添加失败");

return;

}

[_data addObject:per];

}

//3、获取某个分组下的所有联系人。

- (void)getPersonWithGroupName:(NSString *)groupName

{

for (AddressContact * p in _data) {

if ([[p groupName] isEqualToString:groupName]) {

[p information];

}

}

}

//4、根据电话号码搜索联系人。

- (void)getPersonWithphoneNum:(NSString *)phoneNum

{

for (AddressContact * p in _data) {

if ([[p phoneNum] isEqualToString:phoneNum]) {

[p information];

}

}

}

//5、获取所有女性联系人

- (void)getPersonWithSex:(NSString *)sex

{

for (AddressContact * p in _data) {

if ([[p sex] isEqualToString:sex]) {

[p information];

}

}

}

//6、根据姓名删除联系人

- (void)removePerson:(AddressContact *)per

{

[_data removeObject:per];

}

- (void)removePersonWithName:(NSString *)name

{

for (AddressContact * p in _data) {

if ([[p name] isEqualToString:name]) {

[self removePerson:p];

}

}

}

// 7、删除某个分组全部联系人

- (void)removePersonWithGroupName:(NSString *)groupName

{

NSMutableArray * delete = [NSMutableArray array];

for (AddressContact * p in _data) {

if ([[p groupName] isEqualToString:groupName]) {

[delete addObject:p];

}

}

[_data removeObjectsInArray:delete];

}

//8、展示通讯录中所有联系人

- (void)showAddressBook

{

for (AddressContact * per in _data){

[per information];

}

}

@end

时间: 2024-10-12 22:55:54

建立一个简单的通讯录的相关文章

Hibernate学习——建立一个简单的Hibernate项目

最近老师让做个web小应用,大三的时候学习过一点J2EE的东西,也做过一些web相关的XXX管理系统,都是用servlet,jsp这些完成的,虽然勉强能够完成任务,但其中各种代码掺杂在一起,不好看而且维护起来也很麻烦,出了一点问题要调试好久才能解决.这次打算让自己多学一点东西,在项目的架构上我使用了struts2实现了多层代码的分离,在数据库方面,因为以往的经历都需要对连接数据库进行一个封装,里面包含有数据库的连接,记录的添加,查询,修改和删除等操作,每次使用的过程中都需要先实现一个连接对象然后

【Java编程】建立一个简单的JDBC连接-Drivers, Connection, Statement and PreparedStatement

本blog提供了一个简单的通过JDBC驱动建立JDBC连接例程,并分别通过Statement和PreparedStatement实现对数据库的查询.在下一篇blog中将重点比较Statement与PreparedStatement的差异. 1.为项目添加JDBC驱动 1)JDBC驱动下载 官方下载地址:mysql-connector-java-5.0.8.zip CSDN资料下载地址:mysql-connector-java-5.0.8.zip 2)为项目添加JDBC驱动 建立项目Java项目J

一个简单的通讯录。。。

上课的时候老师布置了一个作业,利用结构体实现一个简单地通讯录,这可是我们大一的时候学期末的课设题目啊,不过还好现在的水平比之前高了那么一点.. 实现一个通讯录: 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名.性别.年龄.电话.住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人 这个是通讯录的主要功能. 这个比较大,所以我们写在三个文件里.

Ogre: 建立一个简单的框架——关于场景节点

[转载请保证内容的完整性和正确性] 建立一个简单的框架——关于场景节点 如果我们要做一个类似于<跑跑卡丁车>的游戏,人物模型是需要随着卡丁车模型一起进行各种变换的(平移.旋转等),我们需要分别计算两个关联的模型的位置吗?这样能解决问题,但是太麻烦了,利用Ogre的场景节点可以很方便地解决这种问题. 添加一个新的模型 之前添加的模型都是由3DMAX等软件导出的模型,接下来我们利用Ogre生成一个Cube模型. 1 //DemoManager.cpp 2 Ogre::ManualObject* c

Ogre: 建立一个简单的框架——响应键盘事件

[转载请保证内容的完整性和正确性] 建立一个简单的框架——响应键盘事件 上一节我们在场景中添加了一个机器人,这一节我们将建立一个FrameListener类(顾名思义,这是一个侦听类),来控制模型进行移动. 创建FrameListener类 FrameListener类主要负责事件的侦听,如帧结束.键盘输入等事件.它继承自ExampleFrameListener类,如果需要的话还可以继承KeyListener(键盘事件).MouseListener(鼠标事件)和JoyStickListener(

TCP学习之建立一个简单的客户/服务器系统--回射系统

TCP学习之建立一个简单的客户/服务器系统--回射系统 相关的资料可以参考Unix网络编程,这个只是修改版,不需要依赖任何文件,可以独立编译通过,而且是在两台不同的主机上进行的. fggets和fputs这两个函数来自标准I/O函数库,writen和readline见my_unp.h头文件 //my_unp.h #include<stdarg.h> #include<syslog.h> #include<stdio.h> #include<netinet/in.h

WebADI_建立一个简单的WebADI实现日记账上传(案例)

2014-06-01 BaoXinjian 一.摘要 WebADI原本固定资产导入和日记账导入的一些工具发展而来,因为财务部门人员大多非常熟悉Excel,希望竟可能尽量多的使用Excel工具去进行财务操作 而WebADI提供了这样一种可能性通过excel,将资料建立客制化的API或Interface处理,导入至EBS中 在11i中,WebADI可能还不够完善,还需要很多代码操作和注册 在R12中,WebADI的功能有进一步的加强 个人觉得,如果资料导入API或Interface不是太过频繁,数据

Hyperledger Fabric 建立一个简单网络

p { margin-bottom: 0.25cm; line-height: 120% } Building you first network 网络结构: 2个Orgnizations(每个Org包含2个peer节点)+1个solo ordering service 打开fabric-sample下的示例first-network p { margin-bottom: 0.25cm; line-height: 120% } 其中byfn.sh为启动这个网络的启动脚本,启动脚本中除建立一个包含

学习用node.js建立一个简单的web服务器

一.建立简单的Web服务器涉及到Node.js的一些基本知识点: 1.请求模块 在Node.js中,系统提供了许多有用的模块(当然你也可以用JavaScript编写自己的模块,以后的章节我们将详细讲解),如http.url等.模块封装特定的功能,提供相应的方法或属性,要使用这些模块,需要先请求模块获得其操作对象. 例如要使用系统的http模块,可以这样写: var libHttp = require('http'); //请求HTTP协议模块 这样,以后的程序将可以通过变量libHttp访问ht