c语言个人通讯录管理系统实验报告_基于C语言实现个人通讯录管理系统

之前利用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]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]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)

{

你可能感兴趣的:(c语言个人通讯录管理系统实验报告_基于C语言实现个人通讯录管理系统)