c语言中等程序,OC语言实现中等难度通讯录

实现中等难度通讯录。需求:

1、定义联系⼈人类Contact。实例变量:姓名(拼⾳音,⾸首字⺟母⼤大写)、性别、电话号码、 住址、分组名称、年龄。⽅方法:⾃自定义初始化⽅方法(姓名、电话号码)、显⽰示联系⼈人信息

2、在main.m中定义字典,分组管理所有联系⼈人。分组名为26个⼤大写的英⽂文字⺟母。

3、可以添加联系⼈人对象,如果姓名或电话号码为空,添加失败。添加联系⼈人到匹配的分 组。

4、获取某个分组名称下所有联系⼈人,并且按照姓名升序排列。

5、从通讯录中根据电话号码搜索联系⼈人。

6、获取所有⼥女性的联系⼈人,并且按照年龄的降序排列。

7、根据姓名删除某个联系⼈人。

8、删除某个分组的全部联系⼈人。

Contact.h

#import

@interface Contact : NSObject

@property(nonatomic,retain)NSString*name;

@property(nonatomic,assign)NSIntegerage;

@property(nonatomic,retain)NSString*sex;

@property(nonatomic,retain)NSString*phoneNumber;

@property(nonatomic,retain)NSString*addr;

@property(nonatomic,retain)NSString*group;

- (id)initWithName:(NSString *)name

age:(NSInteger)age

sex:(NSString *)sex

phoneNumber:(NSString *)phone;

+ (id)contactWithName:(NSString *)name

age:(NSInteger)age

sex:(NSString *)sex

phoneNumber:(NSString *)phone

addr:(NSString *)addr;

- (NSComparisonResult)sortContactByAge:(Contact *)otherCont;

- (NSComparisonResult)sortContactByName:(Contact *)otherCont;

- (void)info;

@end

Contact.m

#import"Contact.h"

@implementationContact

- (id)initWithName:(NSString *)name

age:(NSInteger)age

sex:(NSString *)sex

phoneNumber:(NSString *)phone

{

self = [super init];

if (self) {

_name = name;

_age = age;

_sex = sex;

_phoneNumber = phone;

}

returnself;

}

+ (id)contactWithName:(NSString *)name

age:(NSInteger)age

sex:(NSString *)sex

phoneNumber:(NSString *)phone

addr:(NSString *)addr

{

Contact *con = [[Contact alloc]initWithName:name age:age sex:sex phoneNumber:phone];

con.addr = addr;

con.group= [[con.namesubstringToIndex:1]uppercaseString];

return con;

}

- (NSComparisonResult)sortContactByAge:(Contact *)otherCont

{

if (self.age > otherCont.age) {

returnNSOrderedDescending;

}

else if (self.age < otherCont.age){

returnNSOrderedAscending;

}

else

returnNSOrderedSame;

}

- (NSComparisonResult)sortContactByName:(Contact *)otherCont

{

if ([self.name compare:otherCont.name] > 0) {

returnNSOrderedAscending;

}

else if ([self.name compare:otherCont.name]

returnNSOrderedDescending;

}

else

returnNSOrderedSame;

}

- (void)info

{

NSLog(@"name:%@, age:%ld, sex:%@, phone:%@, addr:%@, group:%@",_name,_age,_sex,_phoneNumber,_addr,_group);

}

@end

AddressBook.h

//

// AddressBook.h

// 07_字典实现通讯录

//

// Created by zhangzhipeng on 15/4/15.

// Copyright (c) 2015年 www.lanou3g.com蓝欧3G. All rights reserved.

//

#import

#import"Contact.h"

@interface AddressBook : NSObject

@property(nonatomic,retain)NSMutableDictionary*conDic;

- (id)init;

- (void)addContactPersonName:(NSString *)name

age:(NSInteger)age

sex:(NSString *)sex

phoneNumber:(NSString *)phone

addr:(NSString *)addr;

- (void)getAllContactByGroupAndSortByNameAsceding:(NSString*)group;

- (void)searchContactByPhoneNumber:(NSString *)phoneNumber;

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

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

- (void)deleteContactByGroup:(NSString *)group;

- (void)listAllContact;

@end

AddressBook.m

//

// AddressBook.m

// 07_字典实现通讯录

//

// Created by zhangzhipeng on 15/4/15.

// Copyright (c) 2015年 www.lanou3g.com蓝欧3G. All rights reserved.

//

#import"AddressBook.h"

@implementationAddressBook

- (id)init

{

self = [super init];

if (self) {

self.conDic= [NSMutableDictionarydictionary];

}

returnself;

}

- (void)addContactPersonName:(NSString *)name

age:(NSInteger)age

sex:(NSString *)sex

phoneNumber:(NSString *)phone

addr:(NSString *)addr

{

if (name == nil || [name isEqualToString:@" "] || phone ==nil || [phone isEqualToString:@" "]) {

NSLog(@"增加联系人失败");

}

else

{

Contact *con = [Contact contactWithName:name age:age sex:sex phoneNumber:phone addr:addr];

NSMutableArray *conArr = [self.conDicvalueForKey:con.group];

if (conArr == nil) {

conArr = [NSMutableArray array];

[conArr addObject:con];

[self.conDic setObject:conArr forKey:con.group];

}

else{

[conArr addObject:con];

}

}

}

- (void)getAllContactByGroupAndSortByNameAsceding:(NSString*)group

{

NSMutableArray *mArr = [self.conDic valueForKey:group];

[mArr sortUsingSelector:@selector(sortContactByName:)];

for (Contact *cont in mArr) {

[cont info];

}

}

- (void)searchContactByPhoneNumber:(NSString *)phoneNumber

{

NSMutableArray*arrPhoneNumber = [NSMutableArrayarray];

for (NSString *key in self.conDic) {

NSMutableArray *mArr = [self.conDic objectForKey:key];

for (Contact *cont in mArr) {

if ([cont.phoneNumber isEqualToString:phoneNumber]) {

[arrPhoneNumber addObject:cont];

}

}

}

for (Contact *cont in arrPhoneNumber) {

[cont info];

}

}

- (void)getAllContactBySexAndSortByNameDescding:(NSString *)sex

{

NSMutableArray*arrSex = [NSMutableArrayarray];

for (NSString *key in self.conDic) {

NSMutableArray *arr = [self.conDic valueForKey:key];

for (Contact *cont in arr) {

if ([cont.sex isEqualToString:sex]) {

[arrSex addObject:cont];

}

}

}

[arrSex sortUsingSelector:@selector(sortContactByAge:)];

for (Contact *cont in arrSex) {

[cont info];

}

}

- (void)deleteContactByName:(NSString *)name

{

NSMutableArray*arrDelete = [NSMutableArrayarray];

for ( NSString *key in self.conDic) {

NSMutableArray *arr = [self.conDic valueForKey:key];

for (Contact *cont in arr) {

if ([cont.name isEqualToString:name]) {

[arrDelete addObject:cont];

}

}

[arr removeObjectsInArray:arrDelete];

}

}

- (void)deleteContactByGroup:(NSString *)group

{

[self.conDicremoveObjectForKey:group];

}

- (void)listAllContact

{

for (NSString *key in self.conDic) {

NSMutableArray *mArr = [self.conDic valueForKey:key];

for (Contact *con in mArr) {

[con info];

}

}

}

@end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言通讯录程序的删除操作可以通过以下步骤实现: 1. 首先,提示用户输入要删除的联系人的姓名或编号。 2. 接下来,程序会遍历通讯录中的每个联系人,并与待删除的姓名或编号进行比较。 3. 如果找到了匹配的联系人程序会向用户确认是否删除该联系人。 4. 如果用户确认删除,则程序会删除该联系人,并将通讯录中后续联系人的信息向前移动。 5. 最后,程序会显示删除后的通讯录内容,并输出删除成功的信息。 下面是一个简单的C语言通讯录删除程序的示例代码: ```c #include <stdio.h> #include <string.h> #define MAX_CONTACTS 100 #define MAX_NAME_LENGTH 20 #define MAX_PHONE_LENGTH 15 typedef struct { char name[MAX_NAME_LENGTH]; char phone[MAX_PHONE_LENGTH]; } Contact; Contact contacts[MAX_CONTACTS]; int contactCount = 0; void deleteContact(int index) { for (int i = index; i < contactCount - 1; i++) { contacts[i] = contacts[i + 1]; } contactCount--; } int main() { // 添加一些联系人通讯录(用于示例) strcpy(contacts[contactCount].name, "张三"); strcpy(contacts[contactCount].phone, "123456789"); contactCount++; strcpy(contacts[contactCount].name, "李四"); strcpy(contacts[contactCount].phone, "987654321"); contactCount++; // 提示用户输入要删除的姓名或编号 char nameOrNum[MAX_NAME_LENGTH]; printf("请输入要删除的联系人的姓名或编号:"); fgets(nameOrNum, sizeof(nameOrNum), stdin); nameOrNum[strcspn(nameOrNum, "\n")] = '\0'; // 去掉输入中的换行符 // 在通讯录中查找匹配的联系人并删除 int deletedIndex = -1; for (int i = 0; i < contactCount; i++) { if (strcmp(contacts[i].name, nameOrNum) == 0 || i+1 == atoi(nameOrNum)) { deletedIndex = i; break; } } if (deletedIndex != -1) { // 询问用户是否确认删除该联系人 printf("确认删除联系人:%s 电话:%s?(y/n): ", contacts[deletedIndex].name, contacts[deletedIndex].phone); char confirm; scanf("%c", &confirm); getchar(); // 读取并忽略用户输入的换行符 if (confirm == 'y') { deleteContact(deletedIndex); printf("联系人删除成功!\n"); } else { printf("取消删除联系人。\n"); } } else { printf("未找到匹配的联系人。\n"); } // 显示删除后的通讯录内容 printf("剩余联系人列表:\n"); for (int i = 0; i < contactCount; i++) { printf("联系人 %d: 姓名:%s 电话:%s\n", i+1, contacts[i].name, contacts[i].phone); } return 0; } ``` 请注意,这只是一个简单的示例代码,只能删除一个联系人。如果要实现更复杂的功能,如批量删除或根据不同的条件进行删除,请相应地修改代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值