OC 第六講 通訊錄作業

2021-06-23 02:01:06 字數 4691 閱讀 2139

/* 實現中等難度通訊錄。需求:

1、定義聯絡人類addresscontact。例項變數:姓名(拼音,首字母大寫)、性別、**號碼、住址、分組名稱、年齡。方法:自定義初始化方法(姓名、**號碼)、顯示聯絡人資訊

2、在main.m中定義字典,分組管理所有聯絡人。分組名為26個大寫的英文本母。

3、可以新增聯絡人物件,如果姓名或**號碼為空,新增失敗。新增聯絡人到匹配的分組。

4、獲取某個分組名稱下所有聯絡人,並且按照姓名公升序排列。

5、從通訊錄中根據**號碼搜尋聯絡人。

6、獲取所有女性的聯絡人,並且按照年齡的降序排列。

7、根據姓名刪除某個聯絡人。

8、刪除某個分組的全部聯絡人。*/

addresscontact.h

#import

@inte***ce addresscontact : nsobject

//初始化

- (id)initwithname:(nsstring *)name telnum:(nsstring *)telnum;

+ (id)initwithname:(nsstring *)name telnum:(nsstring *)telnum;

//顯示該聯絡人資訊

- (void)showinfo;

//顯示所有聯絡人資訊

- (void)showallinfo:(nsmutabledictionary *)addressbook;

//新增聯絡人到通訊錄

- (void)addtoaddressbook:(nsmutabledictionary *)adressbook;

//顯示某個分組下的所有聯絡人的姓名

- (void)getallbykey:(nsstring *)key ofaddressbook:(nsmutabledictionary *)addressbook;

//獲得某個分組下的所有聯絡人

- (nsmutablearray *)getalladdresscontectbygroup:(nsstring *)groupname ofaddressbook:(nsmutabledictionary *)addressbook;

//根據**號碼搜尋,顯示目標聯絡人所有資訊

- (void)getallinfobytelnum:(nsstring *)telnum ofaddressbook:(nsmutabledictionary *)addressbook;

//根據**號碼搜尋,獲取所有聯絡人的陣列

- (nsmutablearray *)getalladdresscontectsbytelnum:(nsstring *)telnum ofaddressbook:(nsmutabledictionary *)addressbook;

//刪除某個分組所有聯絡人

- (void)deleteallwithkey:(nsstring *)key ofaddressbook:(nsmutabledictionary *)addressbook;

//按姓名刪除某個聯絡人

- (void)deletewithname:(nsstring *)name ofaddressbook:(nsmutabledictionary *)addressbook;

- (nsstring *)getname;

- (nsstring *)get***;

- (nsstring *)gettelnum;

- (nsstring *)getaddress;

- (nsstring *)getgroup;

- (int)getage;

- (void)setage:(int)age;

@end

addresscontact.m

#import "addresscontact.h"

@implementation addresscontact

//初始化

- (id)initwithname:(nsstring *)name telnum:(nsstring *)telnum

return self;

}+ (id)initwithname:(nsstring *)name telnum:(nsstring *)telnum

- (nsstring *)getname

- (nsstring *)get***

- (nsstring *)gettelnum

- (nsstring *)getaddress

- (nsstring *)getgroup

- (int)getage

- (void)setage:(int)age

//顯示該聯絡人資訊

- (void)showinfo

//顯示所有聯絡人資訊

- (void)showallinfo:(nsmutabledictionary *)addressbook}}

//新增聯絡人到通訊錄

- (void)addtoaddressbook:(nsmutabledictionary *)adressbookelse

}//顯示某個分組下得所有聯絡人的姓名

- (void)getallbykey:(nsstring *)key ofaddressbook:(nsmutabledictionary *)addressbook

}//獲得某個分組下的所有聯絡人物件,並按姓名公升序排序

- (nsmutablearray *)getalladdresscontectbygroup:(nsstring *)groupname ofaddressbook:(nsmutabledictionary *)addressbook

//根據**號碼搜尋,顯示聯絡人所有資訊

- (void)getallinfobytelnum:(nsstring *)telnum ofaddressbook:(nsmutabledictionary *)addressbook}}

}//根據**號碼搜尋,獲取所有聯絡人的陣列

- (nsmutablearray *)getalladdresscontectsbytelnum:(nsstring *)telnum ofaddressbook:(nsmutabledictionary *)addressbook}}

arr = (nsmutablearray *)[arr sortedarrayusingselector:@selector(comparewithname:)];

return arr; //返回聯絡人陣列 }

//刪除某個分組所有聯絡人

- (void)deleteallwithkey:(nsstring *)key ofaddressbook:(nsmutabledictionary *)addressbook

//按姓名刪除某個聯絡人

- (void)deletewithname:(nsstring *)name ofaddressbook:(nsmutabledictionary *)addressbook}}

//按姓名比較聯絡人

- (nscomparisonresult)comparewithname:(addresscontact *)anotherac

- (nscomparisonresult)comparewithage:(addresscontact *)anotherac else if ([self getage] == [anotherac getage]) else

//    return result * -1;

return [self getage] > [anotherac getage]; //>:公升序

<:降序 }

@end

main.m

@autoreleasepool

//將資訊新增進通訊錄

[p1 addtoaddressbook:addressbook];

[p2 addtoaddressbook:addressbook];

[p3 addtoaddressbook:addressbook];

[p4 addtoaddressbook:addressbook];

[p5 addtoaddressbook:addressbook];

//按首字母查詢所有資訊

//        [p1 getallbykey:@"w" ofaddressbook:addressbook];

nsmutablearray * acs = [p1 getalladdresscontectbygroup:@"w" ofaddressbook:addressbook];

for (addresscontact * ac in acs)

//顯示通訊錄中所有資訊

//[p1 showallinfo:addressbook];

//通過**號碼搜尋聯絡人

//[p1 getallinfobytelnum:@"18686886570" ofaddressbook:addressbook];

//刪除某個分組下得所有聯絡人

//[p1 deleteallwithkey:@"z" ofaddressbook:addressbook];

//[p1 showallinfo:addressbook];

//按姓名刪除聯絡人

//[p1 deletewithname:@"zang wang wang" ofaddressbook:addressbook];

//[p1 showallinfo:addressbook];

}

OC簡易通訊錄

addressbook.m implementation addressbook 重寫初始化方法 instancetype init return self instancetype init return self 新增新聯絡人 void addcontact contact contact el...

實現中等通訊錄 OC

實現中等難度通訊錄。需求 1 定義聯絡 類contact。例項變數 姓名 拼 音,首字母 大寫 性別 號碼 住址 分組名稱 年齡。方法 定義初始化方法 姓名 號碼 顯示聯絡人資訊 2 在main.m中定義字典,分組管理所有聯絡人。分組名為26個大寫的英文本母。3 可以新增聯絡 物件,如果姓名或 號碼...

OC第三題通訊錄

通訊錄是乙個字典,key為a z,對應的value為陣列,陣列裡存的是相應的資訊,人的資訊也寫成了字典.僅供參考,可以實現要求功能 主函式內容 nsmutabledictionary addressbook nsmutabledictionaryalloc init person k personp...