实现一个通讯录;
通讯录可以用来存储1000个人的信息,每个人的信息包括:
姓名、性别、年龄、电话、住址
提供方法:
1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
6. 清空所有联系人
#include"stdio.h"
#include
#include
struct People//联系人结构体
{
char name[10];
char sex[5];
int age;
char tel[20];
char addr[20];
};
struct Contacts//通讯录结构体
{
struct People person[1000];
int user_count;
};
typedef struct Contacts *pContacts;//自定义指向通讯里结构体的指针变量
int find_entry(pContacts pcon)//查找入口
{
int i = 0 ;
char name[20];
printf("Please input name:");
scanf("%s",name);
for(i = 0;i < pcon->user_count;i++)
{
if(strcmp(pcon->person[i].name ,name) == 0)
{
return i;
}
}
return -1;
}
int add(pContacts pcon)//增加联系人
{
if(pcon->user_count == 1000)
{
printf("Telephone book is full!\n");
return -1;
}
printf("Please input name:");
scanf("%s",pcon->person[pcon->user_count].name);
printf("Please input sex:");
scanf("%s",pcon->person[pcon->user_count].sex);
printf("Please input age:");
scanf("%d",&(pcon->person[pcon->user_count].age));
printf("Please input tele:");
scanf("%s",pcon->person[pcon->user_count].tel);
printf("Please input addr:");
scanf("%s",pcon->person[pcon->user_count].addr);
pcon->user_count++;
return 1;
}
int del(pContacts pcon)//删除联系人
{
int i = 0;
int ret = find(pcon);
if(ret != -1)
{
for(i = ret;i < pcon->user_count-1;i++)
{
pcon->person[i] = pcon->person[i+1];
}
pcon->user_count--;
return 1;
}
else
{
printf("not exist!\n");
return -1;
}
}
int clear(pContacts pcon) //清理全部联系人
{
pcon->user_count = 0;
return 1;
}
int find(pContacts pcon) //查找联系人
{
int ret = find_entry(pcon);
if(ret != -1)
{
printf("name:%s\n",pcon->person[ret].name);
printf("sex:%s\n",pcon->person[ret].sex);
printf("age:%d\n",pcon->person[ret].age);
printf("tele:%s\n",pcon->person[ret].tel);
printf("addr:%s\n",pcon->person[ret].addr);
return 1;
}
else
{
printf("not exist!\n");
return -1;
}
}
int modify(pContacts pcon) //编辑联系人
{
int ret = find(pcon);
if(ret != -1)
{
printf("Please input name:");
scanf("%s",pcon->person[ret].name);
printf("Please input sex:");
scanf("%s",pcon->person[ret].sex);
printf("Please input age:");
scanf("%s",pcon->person[ret].age);
printf("Please input tele:");
scanf("%s",pcon->person[ret].tel);
printf("Please input addr:");
scanf("%s",pcon->person[ret].addr);
return 1;
}
else
{
printf("not exist!\n");
return -1;
}
}
void show(pContacts pcon) //显示全部联系人
{
int i = 0;
for(i = 0;i < pcon->user_count;i++)
{
printf("\n\t\tname:\t%-10s",pcon->person[i].name);
printf("\n\t\tsex:\t%-5s", pcon->person[i].sex);
printf("\n\t\tage:\t%-2d",pcon->person[i].age);
printf("\n\t\ttel:\t%-20s",pcon->person[i].tel);
printf("\n\t\taddr:\t%-20s\n",pcon->person[i].addr);
}
printf("\n");
}
int main()//主函数
{
char flag=1;
struct Contacts person;
person.user_count=0;
printf("\t\t1.增加联系人\n");
printf("\t\t2.删除联系人\n");
printf("\t\t3.修改联系人\n");
printf("\t\t4.查找联系人\n");
printf("\t\t5.显示所有联系人\n");
printf("\t\t6.清空联系人列表\n");
printf("\t\t0.退出通讯录\n");
while(flag>0&&flag<=6)//先进入系统,然后再仅进行操作!
{
printf("\n\n\t\t请键入您要执行操作的序号:");
scanf("%d",&flag);
switch(flag)
{
case 1:add(&person);break;
case 2:del(&person);break;
case 3:modify(&person);break;
case 4:find(&person);break;
case 5:show(&person);break;
case 6:clear(&person);break;
case 0:printf("\n\n\n\t\t*********************exit!********************\n\n\n\n");break;
default :printf("\n\t\tyour enter is error!\n");
}
}
return 0;
}