|
|
void shanchu()
|
|
|
{
|
|
|
system("cls");
|
|
|
struct txl *p;
|
|
|
char name[20],mail[30];
|
|
|
p=phone;
|
|
|
int i,j=0,m=0;
|
|
|
FILE *ptr1;
|
|
|
ptr1=fopen("sto3.txt","rb");
|
|
|
if(ptr1==NULL)
|
|
|
{
|
|
|
printf("通讯录为空\n");//判断是否有储存文件,没有通讯录就返回菜单。
|
|
|
return;
|
|
|
}
|
|
|
rewind(ptr1);
|
|
|
while(!feof(ptr1))
|
|
|
{
|
|
|
if(fread(&p[m],LEN,1,ptr1)==1)
|
|
|
m++;
|
|
|
}
|
|
|
fclose(ptr1);
|
|
|
printf("请输入被删除人的姓名和邮箱\n");
|
|
|
printf("姓名:");scanf("%s",&name);printf("\n");
|
|
|
printf("邮箱:");scanf("%s",&mail);printf("\n");
|
|
|
for(i=0;i<m;i++)
|
|
|
{
|
|
|
if(strcmp(p[i].name,name)==0&&strcmp(p[i].e_mail,mail)==0)
|
|
|
{
|
|
|
for(;i<m-1;i++)
|
|
|
p[i]=p[i+1];
|
|
|
j=1;
|
|
|
}
|
|
|
}
|
|
|
if(j==1)
|
|
|
{
|
|
|
ptr1=fopen("sto3.txt","w");
|
|
|
for(i=0;i<m-1;i++)
|
|
|
{
|
|
|
fwrite(&p[i],LEN,1,ptr1);
|
|
|
}
|
|
|
fclose(ptr1);
|
|
|
}
|
|
|
if(j==1)
|
|
|
printf("删除成功\n");
|
|
|
else
|
|
|
printf("没有此联系人\n");
|
|
|
}
|
|
|
void xiugai()
|
|
|
{
|
|
|
system("cls");
|
|
|
FILE *ptr1;
|
|
|
struct txl *p;
|
|
|
p=phone;
|
|
|
char name[10],mail[30];
|
|
|
int j,i,x=0,m=0;
|
|
|
p=phone;
|
|
|
ptr1=fopen("sto3.txt","rb");
|
|
|
if(ptr1==NULL)
|
|
|
{
|
|
|
printf("通讯录为空\n");
|
|
|
return;
|
|
|
}
|
|
|
// rewind(ptr1);
|
|
|
while(!feof(ptr1))
|
|
|
{
|
|
|
if(fread(&p[m],LEN,1,ptr1)==1)
|
|
|
m++;
|
|
|
}
|
|
|
fclose(ptr1);
|
|
|
printf("请输入修改人的姓名和邮箱\n");
|
|
|
printf("姓名:");scanf("%s",&name);printf("\n");
|
|
|
printf("邮箱:");scanf("%s",&mail);printf("\n");
|
|
|
for(i=0;i<m;i++)
|
|
|
{
|
|
|
if(strcmp(p[i].name,name)==0&&strcmp(p[i].e_mail,mail)==0)
|
|
|
{
|
|
|
x=1;
|
|
|
printf(" 选择修改的内容\n");
|
|
|
do
|
|
|
{
|
|
|
printf("___________________\n");
|
|
|
printf("1.修改姓名 ");printf("2.修改籍贯\n");
|
|
|
printf("3.修改电话号1 ");printf("4.修改电话号2\n");
|
|
|
printf("5.修改邮箱 ");printf("0.放弃修改/退出修改\n");
|
|
|
printf("___________________\n");
|
|
|
printf("请输入序号:\n");
|
|
|
scanf("%d",&j);
|
|
|
switch(j)
|
|
|
{
|
|
|
case 1:printf("请输入修改姓名: ");scanf("%s",&p[i].name);printf("修改成功\n");break;
|
|
|
case 2:printf("请输入修改籍贯: ");scanf("%s",&p[i].hometown);printf("修改成功\n");break;
|
|
|
case 3:printf("请输入修改电话号1: ");scanf("%s",&p[i].number1);printf("修改成功\n");break;
|
|
|
case 4:printf("请输入修改电话号2: ");scanf("%s",&p[i].number2);printf("修改成功\n");break;
|
|
|
case 5:printf("请输入修改邮箱: ");scanf("%s",&p[i].e_mail);printf("修改成功\n");break;
|
|
|
}
|
|
|
}while(j!=0);
|
|
|
}
|
|
|
}
|
|
|
if(x==0)
|
|
|
printf("没有此人\n");
|
|
|
ptr1=fopen("sto3.txt","w");
|
|
|
for(i=0;i<m;i++)
|
|
|
{
|
|
|
fwrite(&p[i],LEN,1,ptr1);
|
|
|
}
|
|
|
fclose(ptr1);
|
|
|
}
|
|
|
void tianjia()
|
|
|
{
|
|
|
system("cls");
|
|
|
static int i=0; //使用static 来计算已经加入的人数。
|
|
|
int j,t;
|
|
|
struct txl *p;
|
|
|
p=phone;
|
|
|
printf("可以开始添加\n");
|
|
|
printf("电话号不能超过11个呦,亲!\n");
|
|
|
printf("电子邮箱不能超过10个字符呦~~\n");
|
|
|
ptr1=fopen("sto3.txt","ab+");
|
|
|
if(ptr1==NULL)
|
|
|
{
|
|
|
ptr1=fopen("sto3.txt","wb+");
|
|
|
if(ptr1==NULL)
|
|
|
{
|
|
|
printf("Cannot open file");
|
|
|
exit(0);
|
|
|
}
|
|
|
}
|
|
|
fseek(ptr1,0,SEEK_END);//使文件的指针指向文件末尾,可以使其添加新的数据
|
|
|
do
|
|
|
{
|
|
|
printf("请输入姓名:");
|
|
|
scanf("%s",&p[i].name); printf("\n");
|
|
|
printf("请输入籍贯:");
|
|
|
scanf("%s",&p[i].hometown); printf("\n");
|
|
|
printf("请输入电话号码1:");
|
|
|
scanf("%s",&p[i].number1);printf("\n");
|
|
|
printf("请输入电话号码2:");
|
|
|
scanf("%s",&p[i].number2); printf("\n");
|
|
|
printf("请输入电子邮箱:");
|
|
|
scanf("%s",&p[i].e_mail); printf("\n");
|
|
|
fwrite(&p[i],LEN,1,ptr1);
|
|
|
printf("完成一个添加,是否继续添加\n ");
|
|
|
printf("1为继续 0为退出添加\n");
|
|
|
fflush(stdin); //清空缓存,让数据进入到文件中,因为如果数据大小没超过512b不会进入文件,这样使得数据强制的进入文件
|
|
|
scanf("%d",&j);
|
|
|
i++;count++;
|
|
|
}while(j!=0&&count!=100);
|
|
|
fclose(ptr1);
|
|
|
}
|