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

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

//呼叫或被呼叫 
int call()
{
 int n;
 ptcs p=head->next;
 //用时间做种,每次产生随机数不一样,随着系统时间的改变而改变
 srand((unsigned) time(NULL));  
 n=rand()%(cacu(p)+5)+1;  //产生一个从1到联系人总数+5之间的一个随机数
 return n;
}

int save(int n,char *filename)//保存通话记录 
{
 FILE* fp;
 ptcs p=head->next;
 int i=1;
 if((fp=fopen(filename,"a+"))==NULL)
 {
 printf("t通话记录将失去!n");
 system("pause");
 return 0;
 }
 if(n<=cacu(p))
 {
 while(i<n)
 {
 p=p->next;
 i++;
 }
 //输出对应联系人信息 
 fprintf(fp,"%-16s%-16s%-16s%-20sn",p->chat.name,p->chat.tel,p->chat.tecent,p->chat.email);
 fprintf(fp,"----------------------------------------------------------------------n");
 }
 else 
 fprintf(fp,"未知号码n");
 fclose(fp); //关闭文件 
 return 0;
}

附上系统功能运行图:

说明:为什么选择使用链表结构呢?主要是因为在添加联系人之前并不会指定添加的个数,因此它是一个动态添加的过程,链表大小可变,扩展性强,并且针对于联系人的删除操作,使用链表不需要改变内存地址,只需要修改节点指针的指向以及节点的值即可,而数组大小固定,不适合于动态的存储,并且在对数组元素进行操作的过程中,这个元素以后的所有元素的内存地址都要移动,操作起来比较麻烦。

整体源码可参考:C语言实现个人通讯录管理系统

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易采站长站。