重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
桂林网站建设公司创新互联公司,桂林网站设计制作,有大型网站制作公司丰富经验。已为桂林近1000家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的桂林做网站的公司定做!这篇文章将为大家详细讲解有关用C语言怎么实现个人通讯录管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
主框架:
1、函数声明
关于这里的函数声明,主要是为了可以清楚的了解整个系统的功能,这里不做过多介绍。还有结构体链表的创建,贯穿了各个功能代码部分,必不可少。
2、联系人的添加
这部分主要涉及联系人的姓名、地址、电话、QQ号和邮箱(当然需要其他功能可自行添加),考虑到数组操作不便前提下,使用链表的尾插法,通过不断开创新的结点,然后不断将新的结点的地址指向尾结点,使尾结点不断后移,而新创的结点时按照添加的先后顺序进行连接(参考下图可快速理解,此图片来源于网络),当然其中某些项的条件限制也是必不可少的。比如:电话、QQ号、邮箱
int Addpeo() //添加联系人 { int t,n,a; char flag='y'; //仅作为第一次执行条件 ptcs p=head,q; while(flag!='n'&&flag!='N') //判断是否继续添加 { q=(ptcs)malloc(sizeof(pcs)); //申请内存 p->next=q; //赋予下一个节点 p=q; q->next=NULL; //尾结点地址赋空值 ,尾插法 printf("\n\t请输入:\n"); printf("\t\t姓名:"); scanf("\t\t%s",q->chat.name); printf("\t\t地址:"); scanf("\t\t%s",q->chat.add); printf("\t\t手机号:"); scanf("\t\t%s",q->chat.tel); do { n=0; //仅做记录 if(strlen(q->chat.tel)!=11) //计算手机号的长度 ,判断是否输入规范 { n=1; printf("\t\t您输入的手机号格式不存在,请重新输入:"); scanf("\t\t%s",q->chat.tel); } else { for(t=0;t<11;t++) { if(q->chat.tel[t]<'0'||q->chat.tel[t]>'9') { n=1; printf("\t\t您输入的手机号格式不合理,请重新输入:"); scanf("\t\t%s",q->chat.tel); break; } } } }while(n); //输入QQ号 printf("\t\tQQ号:"); scanf("\t\t%s",q->chat.tecent); do { n=0; if(strlen(q->chat.tecent)>10) //以10位QQ号为准,判断是否符合规范 { n=1; printf("\t\t您输入的QQ号格式不存在,请重新输入:"); scanf("\t\t%s",q->chat.tecent); } else { for(t=0;t<10;t++) { if(q->chat.tecent[t]<'0'||q->chat.tecent[t]>'9') { n=1; printf("\t\t您输入的QQ号格式不合理,请重新输入:"); scanf("\t\t%s",q->chat.tecent); break; } } } }while(n); //输入邮箱 printf("\t\tEmail:"); scanf("\t\t%s",q->chat.email); do { //判断邮箱 @符号输入规范(这里不限定邮箱号码位数) a=0; for(t=0;q->chat.email[t]!='\0';t++) { if(q->chat.email[t]=='@') a++; //@数为1 } if(a!=1) { printf("\t\t输入的邮箱格式不合理,请重新输入:"); scanf("\t\t%s",q->chat.email); } }while(a!=1); //是否输入@ ,为1则终止循环 printf("\n\t是否继续添加?(Y/N)"); scanf("\t%c",&flag); } return 0; }