#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
FILE *fp;
int n=0;
struct tongxunlu
{
char xingming[20];
char dianhua[20];
char dizhi[40];
}txl[100];
void readfile()
{
FILE *fp;
if((fp=fopen("e:\\通讯录.txt","r"))==NULL)
{
printf("通讯录不存在");
if ((fp=fopen("e:\\通讯录.txt","w"))==NULL)
{
printf("\n\t\t建立失败");
exit(0);
}
else
{
printf("\n\t-----------------欢迎使用通讯录管理系统------------------");
printf("\n\t 通讯录文件已建立 ");
printf("\n\t 按任意键进入主菜单 ");
printf("\n\t---------------------------------------------------------");
getch();
}
exit(0);
}
fseek(fp,0,2); /*文件位置指针移动到文件末尾*/
if (ftell(fp)>0)
{
rewind(fp);
for (n=0;!feof(fp) && fread(&txl[n],sizeof(struct tongxunlu),1,fp);n++);
printf("\n\t-------------欢迎使用通讯录管理系统-----------------------");
printf("\n\t 文件导入成功 ");
printf("\n\t 按任意键返回主菜单 ");
printf("\n\t---------------------------------------------------------");
getchar();
}
printf("\n\t--------------欢迎使用通讯录管理系统----------------------");
printf("\n\t 文件导入成功 ");
printf("\n\t 通讯录文件中无任何纪录 ");
printf("\n\t 按任意键返回主菜单 ");
printf("\n\t---------------------------------------------------------");
getch();
return;
}
void zengjia()
{
printf("\n\t\t---------------请输入联系人信息-----------------");
printf("\n\t\t输入联系人姓名:");
scanf("%s",txl[n].xingming);
printf("\n\t\t输入联系人电话:");
scanf("%s",txl[n].dianhua);
printf("\n\t\t输入联系人地址:");
scanf("%s",txl[n].dizhi);
n++;
printf("\n\t\t是否继续添加联系人?(Y/N):");
if (getch()=='y')
zengjia();
return;
}
void chazhao_xingming()
{
int mark=0;
int i;
char name[20];
printf("\n\t\t----------------按姓名查找 --------------------");
printf("\n\t\t请输入您要查找的姓名:");
scanf("%s",name);
for(i=0;i<n;i++)
{
if (strcmp(txl[i].xingming,name)==0)
{
printf("\n\t\t------------ 以下是您查找的联系人信息 ---------------");
printf("\n\t\t姓名: %s",txl[i].xingming);
printf("\n\t\t电话: %s",txl[i].dianhua);
printf("\n\t\t地址: %s",txl[i].dizhi);
printf("\n\t\t---------------------------------------------------");
mark++;
getch();
return;
}
}
if (mark==0)
{
printf("\n\t\t没有找到联系人的信息");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
void chazhao_dianhua()
{
int mark=0;
int i;
char phone[15];
printf("\n\t\t------------------- 按电话查找 -------------------------");
printf("\n\t\t请输入电话号码:");
scanf("%s",phone);
for(i=0;i<n;i++)
{
if (strcmp(txl[i].dianhua,phone)==0)//对比查找函数
{
printf("\n\t\t------------ 以下是您查找的学生信息 ------------");
printf("\n\t\t姓名: %s",txl[i].xingming);
printf("\n\t\t电话: %s",txl[i].dianhua);
printf("\n\t\t地址: %s",txl[i].dizhi);
printf("\n\t\t------------------------------------------------");
printf("\n\t\t按任意键返回主菜单:");
mark++;
getch();
return;
}
}
if (mark==0)
{
printf("\n\t\t没有找到联系人的信息");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
}
void xianshi()
{
int i;
system("cls");
if(n!=0)
{
printf("\n\t\t----------欢迎您查询通讯录所有联系人信息-------------");
for (i=0;i<n;i++) /*依次序显示*/
{
printf("\n\t\t姓名: %s",txl[i].xingming);
printf("\n\t\t电话: %s",txl[i].dianhua);
printf("\n\t\t地址: %s",txl[i].dizhi);
printf("\n\t\t--------------------------------------------------");
if (i+1<n)
{
printf("\n\t\t-----------------------");
system("pause");//返回错误信息
}
}
printf("\n\t\t---------------------------------------------");
}
else /*无联系人*/
printf("\n\t\t通讯录中无任何纪录");
printf("\n\t\t按任意键返回主菜单:");
getch();
}
void chazhao()
{
char c;
system("cls");
printf("\n\t\t------------------- 显示和查询联系人 ------------------");
printf("\n\t\t| 1-逐个显示所有 2-按姓名查询 |");
printf("\n\t\t| 3-按电话查询 4-返回主菜单 |");
printf("\n\t\t|------------------------------------------------------");
printf("\n\t\t请选择您所所要的服务:");
c=getch();
switch (c)
{
case '1':xianshi();break; /*显示所有号码*/
case '2':chazhao_xingming();break; /*调用按姓名查询函数*/
case '3':chazhao_dianhua();break; /*调用按号码查询函数*/
case '4':void zhucaidan();break; /*主菜单*/
}
}
void shanchu()
{
char c;
if(n==0) /*如果通讯录中没有一个记录输出以下部分*/
{
printf("\n\t\t对不起,文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
system("cls");
printf("\n\t\t----------------- 删除菜单 ----------------------");
printf("\n\t\t| 1-删除所有 2-删除单个 |");
printf("\n\t\t| 3-返回主菜单 |");
printf("\n\t\t|-------------------------------------------------");
printf("\n\t\t请选择您所所要的服务:");
c=getchar(); /*输入的赋予choice*/
switch(c)
{
case '1':void shanchu_quanbu();break;
case '2':void shanchu_dange();break;
case '3':void zhucaidan();
default: void zhucaidan();break;
}
}
void shanchu_quanbu()
{
printf("\n\t\t确认删除?(y/n)");
if (getch()=='y')
{
fclose(fp);
if ((fp=fopen("通讯录.txt","w"))==NULL) /*文件空输出*/
{
printf("\n\t\t不能打开文件,删除失败");
readfile();
}
n=0;
printf("\n\t\t纪录已删除,按任意键返回主菜单");
getch();
return;
}
else
return;
}
void shanchu_xingming()
{
int i,m,mark=0,a=0;
char name[20];
printf("\n\t\t请输入要删除联系人姓名:");
scanf("%s",name); /*键盘输入姓名*/
for (i=a;i<n;i++)
{
if (strcmp(txl[i].xingming,name) == 0) //对比字符串查找到要删除的联系人
{
printf("\n\t\t以下是您要删除的联系人纪录:");
printf("\n\t\t--------------------------------");
printf("\n\t\t姓名: %s",txl[i].xingming);
printf("\n\t\t电话: %s",txl[i].dianhua);
printf("\n\t\t地址: %s",txl[i].dizhi);
printf("\n\t\t--------------------------------");
printf("\n\t\t是否删除?(y/n)");
if (getch()=='y') // 实现删除功能
{
for (m=i;m<n-1;m++)
txl[m]=txl[m+1]; /*将通讯录的想前移*/
n--;
mark++;
printf("\n\t\t删除成功");
printf("\n\t\t是否继续删除?(y/n)");
if (getch()=='y')
shanchu_xingming(); /*继续调用删除函数*/
return;
}
else
return;
}
continue;
}
if (mark==0)
{
printf("\n\t\t没有该联系人的纪录");
printf("\n\t\t是否继续删除?(y/n)");
if (getch()=='y')
shanchu_xingming();
return;
}
}
void shanchu_dianhua()
{
int i,m,mark=0; /*变量定义*/
char phone[20];
printf("\n\t\t请输入要删除联系人电话号码:");
scanf("%s",phone);
if(n==0)
{
printf("\n\t\t对不起,文件中无任何纪录");
printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
for (i=0;i<n;i++)
{
if (strcmp(txl[i].dianhua,phone)==0)
{
printf("\n\t\t以下是您要删除的联系人纪录:");
printf("\n\t\t姓名: %s",txl[i].xingming);
printf("\n\t\t电话: %s",txl[i].dianhua);
printf("\n\t\t地址: %s",txl[i].dizhi);
printf("\n\t\t是否删除?(y/n)");
if (getch()=='y')
{
for (m=i;m<n-1;m++) //递推替换实现删除
txl[m]=txl[m+1];
n--;
mark++; //记录删除次数
printf("\n\t\t删除成功");
printf("\n\t\t是否继续删除?(y/n)");
if (getch()=='y')
shanchu_dianhua();
return;
}
else
return;
}
continue;
}
if (mark==0)
{
printf("\n\t\t没有该联系人的纪录");
printf("\n\t\t是否继续删除?(y/n)");
if (getch()=='y')
return ;
}
}
void shanchu_dange()
{
char c;
printf("\n\t----------------------------------------------------------");
printf("\n\t\t 1-按姓名删除 2-按电话删除");
printf("\n\t\t请选择您所所要的服务:");
printf("\n\t----------------------------------------------------------");
c=getch();
switch (c)
{
case '1':shanchu_xingming();break;
case '2':shanchu_dianhua();break;
}
}
void xiugai_xingming()
{
char c;
int i,mark=0;
char name[20];
printf("\n\t\t请输入要修改的联系人姓名:");
scanf("%s",name);
if(n==0)
{
printf("\n\t\t文件中无任何联系人");
printf("\n\t\t按任�
评论0