基于C语言实现个人通讯录管理系统

2020-06-28 17:01:29于海丽

int Delete()
{
 char nm[20];  //要删除的联系人姓名
 char flag='y';
 ptcs p=head->next,bh,pre;  //bh,pre均为过度节点指针 
 if(!p)  //判断链表是否为空 
 {
 printf("t该通讯录为空!n");
 return 0;
 }
 while(flag!='n'&&flag!='N')
 {
 p=head->next;
 printf("t请输入您要删除的联系人姓名:");
 scanf("t%s",nm);
 while(p!=NULL&&strcmp(p->chat.name,nm)!=0)  //比较输入的联系人是否正确 
 {
 pre=p;
 p=p->next; //往后遍历链表,直至找到联系人,并赋给p 
 }
 if(!p)
 {
 printf("t该联系人不存在!n");
 return 0;
 }
 bh=p->next;  //将next值赋给bh,指向要删除的联系人的下一个地址 
 if(p==head->next)  
 head->next=bh;
 else 
 pre->next=bh;  //使当前联系人的上一个地址,直接指向联系人的下一个地址 
 printf("t该联系人已删除!n");
 printf("t是否继续删除?(Y/N)");
 scanf("t%c",&flag);
 }
 return 0;
}

5、联系人信息的修改

关于联系人的修改,它其实是对链表的某一节点进行修改,通过遍历链表查询到指定节点并直接进行修改,修改过程中依旧沿用部分格式限定条件,若输入某项不符合要求,则一直重复输入,直到该项输入符合要求为止。话不多说,上代码

//修改姓名
int changename(ptcs p)
{
 scanf("t%s",p->chat.name);
 printf("t修改成功!n"); 
 return 0;
 }

//修改地址 
int changeadd(ptcs p)
{
 scanf("t%s",p->chat.add);
 printf("t修改成功!n"); 
 return 0;
 } 
 
//修改手机号内容
int changetel(ptcs p)
{
 int n,t;
 scanf("t%s",p->chat.tel);
 do
 {
 n=0;
 if(strlen(p->chat.tel)!=11)
 {  
 n=1;
 printf("t您输入的手机号格式不存在,请重新输入:");
 scanf("t%s",p->chat.tel);
 }
 else 
 {
 for(t=0;t<11;t++)
 {
 if(p->chat.tel[t]<'0'||p->chat.tel[t]>'9')
 {
  n=1;
  printf("t您输入的手机号格式不合理,请重新输入:");
  scanf("t%s",p->chat.tel);
  break;
 }
 }
 }
 }
 while(n);
 printf("t修改成功!n"); 
 return 0;
}

//修改QQ号码 
int changeQQ(ptcs p)
{
 int n,t;
 scanf("%s",p->chat.tecent);
 do
 {
 n=0;
 if(strlen(p->chat.tecent)!=10)
 {  
 n=1;
 printf("t您输入的QQ号格式不存在,请重新输入:");
 scanf("t%s",p->chat.tecent);
 }
 else 
 {
 for(t=0;t<10;t++)
 {
 if(p->chat.tecent[t]<'0'||p->chat.tecent[t]>'9')
 {
  n=1;
  printf("t您输入的QQ号格式不合理,请重新输入:");
  scanf("t%s",p->chat.tecent);
  break;
 }
 }
 }
 }
 while(n);
 printf("t修改成功!n"); 
 return 0;
}

//修改电子邮箱 
int changeEmail(ptcs p)
{
 int t,a;
 scanf("t%s",p->chat.email);
 do
 {
 a=0;
 for(t=0;p->chat.email[t]!='';t++)
 {
 if(p->chat.email[t]=='@')
 a++;
 }
 if(a!=1)
 {
 printf("t输入的邮箱格式不合理,请重新输入:");
 scanf("t%s",p->chat.email);
 }
 }
 while(a);
 printf("t修改成功!n"); 
 return 0;
}

6、联系人的输出