手机电话簿管理系统设计(C语言课程设计)
程序员文章站
2022-04-11 12:57:23
...
需要创建一个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();
}