c语言问题,求高手帮帮忙啊!!

2024-11-02 08:02:15
推荐回答(1个)
回答1:

#include
#include
struct friends_list // 通讯录联系人结构体
{
char name[10];
int age;
char telephone[13];
};

int Count=0; // 通讯录联系人数目
void new_friend(struct friends_list friends[]);
void search_friend(struct friends_list friends[],char *name);
void modify_friend(struct friends_list friends[],char *name);
void delete_friend(struct friends_list friends[],char *name);

int main(void)
{
int choice;
char name[10];
struct friends_list friends[50];

do
{
printf("通讯录功能选项:1:新建; 2:查询; 3:修改; 4:删除; 0:退出\n");
printf("请选择功能:");
scanf("%d",&choice);
switch(choice)
{
case 1: new_friend(friends);
break;
case 2: printf("请输入要查找的联系人姓名:");
scanf("%s",name);
search_friend(friends,name);
break;
case 3: printf("请输入要修改的联系人姓名:");
scanf("%s",name);
modify_friend(friends,name);
break;
case 4: printf("请输入要删除的联系人姓名:");
scanf("%s",name);
delete_friend(friends,name);
break;
case 0: break;
}
} while(choice!=0);
printf("谢谢使用通讯录功能!\n");

return 0;
}

void new_friend(struct friends_list friends[])
{
struct friends_list f;
if(Count==50)
{
printf("通讯录已满!\n");
return;
}
printf("请输入新联系人的姓名:");
scanf("%s",f.name);
printf("请输入新联系人的年龄:");
scanf("%d",&f.age);
printf("请输入新联系人的联系电话:");
scanf("%s",f.telephone);
friends[Count]=f; // 增加联系人
Count++; // 联系人数目+1
return;
}

void search_friend(struct friends_list friends[],char *name)
{
int i,flag=0;
if(Count==0)
{
printf("通讯录是空的!\n");
return;
}
for(i=0;i if(strcmp(name,friends[i].name)==0)
{ // 找到姓名为name的联系人
flag=1;
break;
}
if(flag)
{ // 打印该联系人信息
printf("姓名:%s\t",friends[i].name);
printf("年龄:%d\t",friends[i].age);
printf("电话:%s\n",friends[i].telephone);
} else
printf("无此联系人!\n");
return;
}

void modify_friend(struct friends_list friends[],char *name){
int i,flag=0;
if(Count==0)
{
printf("通讯录是空的!\n");
return;
}
for(i=0;i if(strcmp(name,friends[i].name)==0)
{
flag=1;
break;
}
if(flag)
{ // 修改联系人信息
printf("请输入该联系人的姓名:");
scanf("%s",friends[i].name);
printf("请输入该联系人的年龄:");
scanf("%d",&friends[i].age);
printf("请输入该联系人的联系电话:");
scanf("%s",friends[i].telephone);
} else
printf("无此联系人!\n");
return;
}

void delete_friend(struct friends_list friends[],char *name){
int i,j,flag=0;
if(Count==0)
{
printf("通讯录是空的!\n");
return;
}
for(i=0;i if(strcmp(name,friends[i].name)==0)
{
flag=1;
break;
}
if(flag)
{ // 打印该联系人信息
printf("姓名:%s\t",friends[i].name);
printf("年龄:%d\t",friends[i].age);
printf("电话:%s\n",friends[i].telephone);
for (j=i; j friends[j] = friends[j+1];
} else
printf("无此联系人!\n");
return;
}
有问题请追问,知无不言,言无不尽!