Contact
1、exe.c 测试
2、contact.c 实现函数的功能
3、contact.h 声明函数
存放好友信息:
1.姓名
2.地址
3.电话
功能:
1、增加好友信息
2、删除指定名字的好友信息
3、查找好友信息
4、保存好友信息
5、显示好友信息
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define max 10
struct people
{
char name[10];
char add[20];
char tel[10];
};
struct Contact
{
struct people peo[max];
int size;
};
void InitContact(struct Contact* con)
{
memset(con->peo,0,sizeof(con->peo));
con->size=0;
}
void AddContact(struct Contact* con)
{
if(con->size==max)
{
printf("通讯录已满,无法添加\n");
}
else
{
printf("请输入姓名:");
scanf("%s",&con->peo[con->size].name);
printf("请输入地址:");
scanf("%s",&con->peo[con->size].add);
printf("请输入电话:");
scanf("%s",&con->peo[con->size].tel);
}
con->size++;
printf("添加成功\n");
}
void DelContact(struct Contact* con)
{
char name[10];
int i=0;
printf("请输入要删除人的姓名:");
scanf("%s",name);
for(i=0;i<con->size;i++)
{
if(strcmp(name,con->peo[i].name)==0)
{
break;
}
}
if(i==con->size)
{
printf("要删除的人不存在\n");
}
else
{
for(int j=i;j<con->size-1;j++)
{
con->peo[j]=con->peo[j+1];
}
con->size--;
printf("删除成功\n");
}
}
void SearchContact(struct Contact* con)
{
char name[10];
int i=0;
printf("请输入要查找人的名字:\n");
scanf("%s",name);
for(i=0;i<con->size;i++)
{
if(strcmp(name,con->peo[i].name)==0)
{
break;
}
}
if(i==con->size)
{
printf("要查找的人不存在\n");
}
else
{
printf("%s %s %s\n",con->peo[i].name,con->peo[i].add,con->peo[i].tel);
}
}
void SaveContact(struct Contact* con)
{
FILE* fp=fopen("Contact.txt","w");
if(fp==NULL)
{
printf("%s\n",strerror(errno));
}
else
{
for(int i=0;i<con->size;i++)
{
fprintf(fp,"%s %s %s\n",con->peo[i].name,con->peo[i].add,con->peo[i].tel);
}
}
fclose(fp);
}
void ShowContact(struct Contact* con)
{
if(con->size==0)
{
printf("通讯录为空\n");
}
else
{
for(int i=0;i<con->size;i++)
{
printf("%s %s %s\n",con->peo[i].name,con->peo[i].add,con->peo[i].tel);
}
}
}
void menu()
{
printf("****************************\n");
printf("***1.add 2.del ***\n");
printf("***3.search 4.save ***\n");
printf("***5.show 0.exit ***\n");
printf("****************************\n");
}
int main()
{
int input;
struct Contact con[max];
InitContact(con);
do
{
menu();
printf("请选择:");
scanf("%d",&input);
switch(input)
{
case 1:
AddContact(con);
break;
case 2:
DelContact(con);
break;
case 3:
SearchContact(con);
break;
case 4:
SaveContact(con);
break;
case 5:
ShowContact(con);
break;
case 0:
printf("退出通讯录\n");
break;
default:
printf("选择错误,请重新输入\n");
break;
}
}while(input);
return 0;
}
****************************
***1.add 2.del ***
***3.search 4.save ***
***5.show 0.exit ***
****************************
请选择:9
选择错误,请重新输入
****************************
***1.add 2.del ***
***3.search 4.save ***
***5.show 0.exit ***
****************************
请选择:1
请输入姓名:li
请输入地址:shandong
请输入电话:12345
添加成功
****************************
***1.add 2.del ***
***3.search 4.save ***
***5.show 0.exit ***
****************************
请选择:1
请输入姓名:wang
请输入地址:beijing
请输入电话:23456
添加成功
****************************
***1.add 2.del ***
***3.search 4.save ***
***5.show 0.exit ***
****************************
请选择:2
请输入要删除人的姓名:wang
删除成功
****************************
***1.add 2.del ***
***3.search 4.save ***
***5.show 0.exit ***
****************************
请选择:3
请输入要查找人的名字:
wang
要查找的人不存在
****************************
***1.add 2.del ***
***3.search 4.save ***
***5.show 0.exit ***
****************************
请选择:3
请输入要查找人的名字:
li
li shandong 12345
****************************
***1.add 2.del ***
***3.search 4.save ***
***5.show 0.exit ***
****************************
请选择:4
****************************
***1.add 2.del ***
***3.search 4.save ***
***5.show 0.exit ***
****************************
请选择:5
li shandong 12345
****************************
***1.add 2.del ***
***3.search 4.save ***
***5.show 0.exit ***
****************************
请选择:0
退出通讯录--------------------------------
Process exited after 70.66 seconds with return value 0
请按任意键继续. . .