//
// AddressContact.h
// OCHomeWorkSet
//
// Created by lanouhn on 14-8-8.
// Copyright (c) 2014年 vaercly@163.com 陈聪雷. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface AddressContact : NSObject {
NSString *_name;//姓名
NSString *_gender;//性别
NSString *_phoneNumber;//电话号码
NSString *_address;//住址
NSString *_groupName;//分组名称
NSInteger _age;//年龄
}
//自定义初始化方法
- (id)initWithName:(NSString *)name phoneNumber:(NSString *)phoneNumber;
//显示联系人信息
- (NSString *)description;
//setter
- (void)name:(NSString *)name;
- (void)gender:(NSString *)gender;
- (void)phoneNumber:(NSString *)phoneNumber;
- (void)address:(NSString *)address;
- (void)groupName:(NSString *)groupName;
//getter
- (NSString *)name;
- (NSString *)gender;
- (NSString *)phoneNumber;
- (NSString *)address;
- (NSString *)groupName;
@end
//
// AddressContact.m
// OCHomeWorkSet
//
// Created by lanouhn on 14-8-8.
// Copyright (c) 2014年 vaercly@163.com 陈聪雷. All rights reserved.
//
#import "AddressContact.h"
@implementation AddressContact
//自定义初始化方法
- (id)initWithName:(NSString *)name phoneNumber:(NSString *)phoneNumber {
self = [super init];
if (self) {
_name = name;
_phoneNumber = phoneNumber;
}
return self;
}
//显示联系人信息
- (NSString *)description
{
return [NSString stringWithFormat:@"name:%@, phoneNumber:%@", _name, _phoneNumber];
}
//setter
- (void)name:(NSString *)name {
_name = name;
}
- (void)gender:(NSString *)gender {
_gender = gender;
}
- (void)phoneNumber:(NSString *)phoneNumber {
_phoneNumber = phoneNumber;
}
- (void)address:(NSString *)address {
_address = address;
}
- (void)groupName:(NSString *)groupName {
_groupName = groupName;
}
//getter
- (NSString *)name {
return _name;
}
- (NSString *)gender {
return _gender;
}
- (NSString *)phoneNumber {
return _phoneNumber;
}
- (NSString *)address {
return _address;
}
- (NSString *)groupName {
return _groupName;
}
@end
//
// AddressBook.h
// OCHomeWorkSet
//
// Created by lanouhn on 14-8-8.
// Copyright (c) 2014年 vaercly@163.com 陈聪雷. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "AddressContact.h"
@interface AddressBook : NSObject
//添加联系人对象,如果姓名或电话号码为空,添加失败。添加联系人到匹配的分组
- (void)addAddressContact:(AddressContact *)addressContact dic:(NSMutableDictionary *)dic;
//从通讯录中根据电话号码搜索联系人
- (void)searchAddressContact:(NSString *)tempPhoneNumber dic:(NSMutableDictionary *)dic;
//根据姓名删除某个联系人
- (void)removeAddressContactByName:(NSString *)tempName dic:(NSMutableDictionary *)dic;
//删除某个分组的全部联系人
- (void)removeAddressContactByGroupName:(NSString *)tempGroupName dic:(NSMutableDictionary *)dic;
@end
//
// AddressBook.m
// OCHomeWorkSet
//
// Created by lanouhn on 14-8-8.
// Copyright (c) 2014年 vaercly@163.com 陈聪雷. All rights reserved.
//
#import "AddressBook.h"
@implementation AddressBook
//添加联系人对象,如果姓名或电话号码为空,添加失败。添加联系人到匹配的分组
- (void)addAddressContact:(AddressContact *)addressContact dic:(NSMutableDictionary *)dic {
if ([[addressContact name] isEqualToString:@""] || [[addressContact phoneNumber] isEqualToString:@""]) {
NSLog(@"添加失败");
} else {
unichar c = [[addressContact name] characterAtIndex:0];
NSString *strKey = [NSString stringWithFormat:@"%c", c];
[[dic objectForKey:strKey] addObject:addressContact];
NSLog(@"添加%@成功", [addressContact name]);
}
}
//从通讯录中根据电话号码搜索联系人
- (void)searchAddressContact:(NSString *)tempPhoneNumber dic:(NSMutableDictionary *)dic {
for (NSString *key in dic) {
NSMutableArray *arr = [dic objectForKey:key];
for (AddressContact *addressContact in arr) {
if ([[addressContact phoneNumber] isEqualToString: tempPhoneNumber]) {
NSLog(@"%@", addressContact);
}
}
}
}
//根据姓名删除某个联系人
- (void)removeAddressContactByName:(NSString *)tempName dic:(NSMutableDictionary *)dic {
for (NSString *key in dic) {
NSMutableArray *arr = [dic objectForKey:key];
NSArray *tempArr = [NSArray arrayWithArray:arr];
for (AddressContact *addressContact in tempArr) {
if ([[addressContact name] isEqualToString: tempName]) {
[arr removeObject:addressContact];
NSLog(@"删除联系人%@成功",tempName);
}
}
}
}
//删除某个分组的全部联系人
- (void)removeAddressContactByGroupName:(NSString *)tempGroupName dic:(NSMutableDictionary *)dic {
NSDictionary *tempdic = [NSDictionary dictionaryWithDictionary:dic];
for (NSString *key in tempdic) {
if ([key isEqualToString: tempGroupName]) {
[[dic objectForKey:key] removeAllObjects];
}
}
NSLog(@"删除%@分组全部联系人成功", tempGroupName);
}
@end
//
// main.m
// OCHomeWorkSet
//
// Created by lanouhn on 14-8-8.
// Copyright (c) 2014年 vaercly@163.com 陈聪雷. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "AddressContact.h"
#import "AddressBook.h"
#define kWork 4
int main(int argc, const char * argv[])
{
@autoreleasepool {
//创建联系人
AddressContact *wangYi = [[AddressContact alloc] initWithName:@"WangYi" phoneNumber:@"15036894675"];
AddressContact *songEr = [[AddressContact alloc] initWithName:@"SongEr" phoneNumber:@"15569894675"];
AddressContact *zhangSan = [[AddressContact alloc] initWithName:@"ZhangSan" phoneNumber:@"15654894675"];
AddressContact *liSi = [[AddressContact alloc] initWithName:@"LiSi" phoneNumber:@"15036894987"];
AddressContact *wangWu = [[AddressContact alloc] initWithName:@"WangWu" phoneNumber:@"15036865478"];
AddressContact *zhaoLiu = [[AddressContact alloc] initWithName:@"ZhaoLiu" phoneNumber:@"13486894675"];
AddressContact *chenQi = [[AddressContact alloc] initWithName:@"ChenQi" phoneNumber:@"13056894675"];
AddressContact *zhangJiu = [[AddressContact alloc] initWithName:@"ZhangJiu" phoneNumber:@"13566894987"];
AddressContact *songBa = [[AddressContact alloc] initWithName:@"SongBa" phoneNumber:@"15036541275"];
AddressContact *wuShi = [[AddressContact alloc] initWithName:@"WuShi" phoneNumber:@"15039812375"];
//创建可变数组存储联系人
NSMutableArray *arrC = [NSMutableArray arrayWithObjects:chenQi, nil];
NSMutableArray *arrL = [NSMutableArray arrayWithObjects:liSi, nil];
NSMutableArray *arrS = [NSMutableArray arrayWithObjects:songEr, songBa, nil];
NSMutableArray *arrW = [NSMutableArray arrayWithObjects:wangYi, wangWu, nil];
NSMutableArray *arrZ = [NSMutableArray arrayWithObjects:zhangSan, zhaoLiu, zhangJiu, nil];
//创建字典分组和数组
NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObjectsAndKeys:arrC, @"C", arrL, @"L", arrS, @"S", arrW, @"W", arrZ, @"Z", nil];
// NSLog(@"%@", dic);
//创建一个AddressBook对象
AddressBook *addressBook = [[AddressBook alloc] init];
#if kWork == 1
//添加联系人对象,如果姓名或电话号码为空,添加失败。添加联系人到匹配的分组
NSLog(@"添加联系人到匹配的分组");
[addressBook addAddressContact:wuShi dic:dic];
NSLog(@"%@", dic);
#elif kWork == 2
//从通讯录中根据电话号码搜索联系人
NSLog(@"从通讯录中根据电话号码搜索联系人");
NSLog(@"请输入要查找的联系人的电话号码");
char a[20] = {0};
scanf("%s", a);
NSString *str = [NSString stringWithUTF8String:a];
[addressBook searchAddressContact:str dic:dic];
#elif kWork == 3
//根据姓名删除某个联系人
NSLog(@"根据姓名删除某个联系人");
NSLog(@"请输入要删除联系人的姓名");
char a[20] = {0};
scanf("%s", a);
NSString *str = [NSString stringWithUTF8String:a];
[addressBook removeAddressContactByName:str dic:dic];
NSLog(@"%@", dic);
#elif kWork == 4
//删除某个分组的全部联系人
NSLog(@"删除分组的全部联系人");
NSLog(@"请输入要删除联系人的分组");
char a[20] = {0};
scanf("%s", a);
NSString *str = [NSString stringWithUTF8String:a];
[addressBook removeAddressContactByGroupName:str dic:dic];
NSLog(@"%@", dic);
#endif
}
return 0;
}