需要創建一個person.txt 文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 15
struct person
{
char name[10] ;
char phone[11];
char classes[10];
char email[20];
}ren[N];
int Load()
{
int i=0;
FILE *fp;
if((fp=fopen("D:\\person.txt","r"))==NULL)
{
printf("通訊錄沒有聯繫人\n");
}
else
{
while(!feof(fp))
{
fscanf(fp,"%s%s%s%s",ren[i].name,ren[i].phone,ren[i].classes,ren[i].email);
i++;
}
}
fclose(fp);
return i;
}
int main()
{
int n,m=1;
do
{
printf(" **********通訊錄**********\n");
printf(" 1.查詢聯繫人\n");
printf(" 2.增加聯繫人\n");
printf(" 3.修改聯繫人\n");
printf(" 4.刪除聯繫人\n");
printf(" 5.查看全部人員\n");
printf(" **************************\n");
printf(" 請選擇您的選項\n");
scanf("%d",&n);
if(n<=5&&n>=1)
{
m=1;
}
else
{
m=0;
getchar();
printf("請輸入正確選項\n");
}
}while(m==0);
switch(n)
{
case 1:
chaxun();//查看模塊
break;
case 2:
jia();//增加模塊
break;
case 3:
gai();//修改模塊
break;
case 4:
shan();//刪除模塊
break;
case 5:
kan();//顯示模塊
break;
}
return 0;
}
void chaxun()
{
FILE *fp;
int k=1,i,n=Load();
char classes[10];
printf("辦公類\n個人類\n商務類\n請輸入您想要查詢的的人屬於的類別:\n");
scanf("%s",classes);
if((fp=fopen("D:\\person.txt","r+"))==NULL)
{
printf("通訊錄沒有聯繫人\n");
}
for(i=0;i<n;i++)
{
if(strcmp(classes,ren[i].classes)==0)
{
k=0;
printf("\n%s %s\n",ren[i].name,ren[i].phone);
}
}
if(k==1)
{
printf("該類沒有聯繫人\n");
}
main();
}
void jia()
{
printf("請輸入您的聯繫人信息\n");
int i,n=Load(),k=1;
FILE *fp;
char name[10] ;
char phone[11];
char classes[10];
char email[20];
scanf("%s %s",name,phone);
if((fp=fopen("D:\\person.txt","r+"))==NULL)
{
printf("通訊錄沒有聯繫人\n");
}
for(i=0;i<n;i++)
{
if(strcmp(name,ren[i].name)==0&&strcmp(phone,ren[i].phone)==0)
{
printf("聯繫人已經存在\n");
k=0;
}
}
if(k==1)
{
if(i<=15)
{
scanf("%s %s",classes,email);
}
else
{
printf("空間已滿");
}
}
fseek(fp,0,2);
fprintf(fp,"\n%s %s %s %s\n",name,phone,classes,email);
fclose(fp);
main();
}
void gai()
{
FILE *fp;
int n=Load();
int i;
int k=1;
char name[10];
int g;
printf("請輸入想要修改聯繫人的姓名:\n");
scanf("%s",name);
if((fp=fopen("D:\\person.txt","r+"))==NULL)
{
printf("通訊錄沒有聯繫人\n");
}
for(i=0;i<n;i++)
{
if(strcmp(name,ren[i].name)==0)
{
k=0;
printf("1.名字\n2.電話\n3.分類\n4.郵箱\n5.修改完畢\n請輸入您的選項:\n");
scanf("%d",&g);
if(g<1||g>5)
{
printf("請輸入正確選項!\n");
}
else if(g==5)
{
break;
}
else
{
switch(g)
{
case 1:
printf("名字:");
scanf("%s",ren[i].name);
break;
case 2:
printf("電話:");
scanf("%s",ren[i].phone);
break;
case 3:
printf("分類:");
scanf("%s",ren[i].classes);
break;
case 4:
printf("郵箱:");
scanf("%s",ren[i].email);
break;
}
}
}
}
if(k==1)
{
printf("沒有找到該聯繫人!\n");
}
for(i=0;i<n;i++)
{
fprintf(fp,"%s %s %s %s\n",ren[i].name,ren[i].phone,ren[i].classes,ren[i].email);
}
fclose(fp);
main();
}
void shan()
{
FILE *fp;
int i,n=Load(),p,k=1;
char name[10] ;
printf("請輸入您需要刪除的聯繫人的名字:\n");
scanf("%s",name);
if((fp=fopen("D:\\person.txt","w"))==NULL)
{
printf("通訊錄沒有聯繫人!\n");
}
for(i=0;i<n;i++)
{
if(strcmp(name,ren[i].name)==0)
{
p=i;
k=0;
}
}
if(k==1)
{
printf("沒有找到該聯繫人\n");
}
else{
for(i=0;i<n;i++)
{
if(i!=p)
{
fprintf(fp,"%s %s %s %s\n",ren[i].name,ren[i].phone,ren[i].classes,ren[i].email);
}
}
}
fclose(fp);
main();
}
void kan()
{
int i,n=Load();
for(i=0;i<n;i++)
{
printf("%s %s %s %s\n",ren[i].name,ren[i].phone,ren[i].classes,ren[i].email);
}
main();
}