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

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

关于输出就是按照输入的顺序依次将联系人输出

//输出通讯录列表 
int Display()
{
 ptcs p=head->next;  
 if(!p)  //判断链表是否为空 
 {
 printf("t该通讯录为空!n");
 return 0;
 }
 printf("nt**********************************通讯录列表*************************************nn");
 printf("t姓名t地址ttt手机号ttQQ号ttEmailn");
 printf("t---------------------------------------------------------------------------------n");
 while(p)
 {
 printf("t%-8s%-24s%-16s%-16s%-20sn",p->chat.name,p->chat.add,p->chat.tel,p->chat.tecent,p->chat.email);
 p=p->next;  //继续往后遍历输出 
 printf("t---------------------------------------------------------------------------------n");
 }
 return 0;
}

7、文件的写入与读出

通过新建一个文件并且指定文件的权限,将数据写入到指定文件中,以此实现对文件的整体写入操作。它的读出操作是通过访问已建立的文件,使用fgets函数获取文件中的信息并保存在指定的字符数组中,之后逐个进行输出。

//将数据写入文件
int fwrite()
{
 ptcs p=head->next;
 FILE* fp;
 char filename[30];
 if(!p)
 {
 printf("t该通讯录为空!");
 return 0;
 }
 printf("t请输入所写入的文件名:");
 scanf("t%s",filename);
 if((fp=fopen(filename,"a+"))==NULL)
 {
 printf("t无法打开文件!n");
 system("pause");  //暂停 
 return 0;
 }
 fprintf(fp,"**********************************通讯录列表*************************************nn");
 fprintf(fp,"姓名t地址ttt手机号ttQQ号ttEmailn");
 fprintf(fp,"---------------------------------------------------------------------------------n");
 while(p)
 {
 fprintf(fp,"%-8s%-24s%-16s%-16s%-20sn",p->chat.name,p->chat.add,p->chat.tel,p->chat.tecent,p->chat.email);
 p=p->next;   
 fprintf(fp,"---------------------------------------------------------------------------------n");
 }
 fprintf(fp,"n**********************************共%d个联系人************************************n",cacu(head->next));
 fclose(fp);   //关闭文件 
 printf("t写入成功!n"); 
 return 0;
}

//读取文件 
int fread()
{
 char str[100];
 char filename[30];
 FILE* fp;  //定义文件指针 
 printf("t请输入要读出的文件名:");
 scanf("t%s",filename);
 if((fp=fopen(filename,"a+"))==NULL)  
 {
 printf("t无法打开文件!n");
 system("pause");
 return 0;
 }
 while((fgets(str,100,fp))!=NULL)  //fgets获取文件中的信息 ,存入str中 
 { 
 printf("t%s",str);  //输出文件中的信息 
 }
 return 0;
}

8、模拟通话

通过调用time函数来获取随机数(从1970.1.1算起),根据当前系统时间,利用相关函数产生一个随机数的种子,再利用对应函数产生一个随机数,随后判断是否与通讯录中联系人的项数相符,若相符,则直接将该联系人的信息写入指定文件中,若不相符,则在该文件中写入未知联系人。