实现一个通讯录;
通讯录可以用来存储1000个人的信息,每个人的信息包括:
姓名、性别、年龄、电话、住址
提供方法:
1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
测试函数
通讯录可以用来存储1000个人的信息,每个人的信息包括:
姓名、性别、年龄、电话、住址
提供方法:
1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
6. 清空所有联系人
定义头文件
<span style="font-size:18px;">#ifndef __CONTACT_H__
#define __CONTACT_H__
#define NAME_MAX 20
#define SEX_MAX 5
#define TELE_MAX 11
#define ADDR_MAX 20
#define PEO_MAX 1000
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct people
{
char name[NAME_MAX];
char sex[SEX_MAX];
int age;
char tele[TELE_MAX];
char addr[ADDR_MAX];
}*pPeople;
typedef struct contact
{
int count;
struct people DHB[PEO_MAX];
}*pContact;
void add_peo(pContact pcon);
void del_peo(pContact pcon);
void search_peo(pContact pcon);
void modify_peo(pContact pcon);
void show_peo(pContact pcon);
void clear_peo(pContact pcon);
#endif
</span>
函数实现部分
<span style="font-size:18px;">#include "contact.h"
int find(pContact pcon,char* name)
{
int i = 0;
while(i<pcon->count)
{
if(strcmp(name,pcon->DHB[i].name) == 0)
return i;
i++;
}
return -1;
}
void add_peo(pContact pcon) //添加联系人
{
if(pcon->count == PEO_MAX)
{
printf("电话本容量已达上限\n");
return;
}
printf("name:>");
scanf("%s",(pcon->DHB[pcon->count]).name);
printf("sex:>");
scanf("%s",(pcon->DHB[pcon->count]).sex);
printf("age:>");
scanf("%d",&((pcon->DHB[pcon->count]).age));
printf("tele:>");
scanf("%s",(pcon->DHB[pcon->count]).tele);
printf("addr:>");
scanf("%s",(pcon->DHB[pcon->count]).addr);
pcon->count++;
}
void del_peo(pContact pcon) //删除联系人
{
char tmpName[NAME_MAX];
int ret=0;
printf("输入需删除的联系人姓名:>");
scanf("%s",tmpName);
if(-1 != (ret=find(pcon,tmpName)))
{
int j=ret;
for(;j<pcon->count;j++)
{
pcon->DHB[j] = pcon->DHB[j+1];
}
pcon->count -= 1;
}
else
printf("该联系人不存在\n");
}
void search_peo(pContact pcon) //查找联系人
{
char tmpName[NAME_MAX];
int ret = 0;
printf("请输入要查找的联系人");
scanf("%s",tmpName);
ret = find(pcon,tmpName);
if(ret != -1)
{
printf("%s\t%s\t%d\t%s\t%s\n",
pcon->DHB[ret].name,
pcon->DHB[ret].sex,
pcon->DHB[ret].age,
pcon->DHB[ret].tele,
pcon->DHB[ret].addr);
}
}
void modify_peo(pContact pcon) //修改联系人
{
char tmpName[NAME_MAX];
int ret = 0;
printf("请输入要修改的联系人");
scanf("%s",tmpName);
ret = find(pcon,tmpName);
if(-1 != ret)
{
printf("name:>");
scanf("%s",(pcon->DHB[ret]).name);
printf("sex:>");
scanf("%s",(pcon->DHB[ret]).sex);
printf("age:>");
scanf("%d",&((pcon->DHB[ret]).age));
printf("tele:>");
scanf("%s",(pcon->DHB[ret]).tele);
printf("addr:>");
scanf("%s",(pcon->DHB[ret]).addr);
}
}
void show_peo(pContact pcon) //显示全部联系人
{
int i = 0;
for(i=0;i<pcon->count;i++)
{
printf("%s\t%s\t%d\t%s\t%s\n",
pcon->DHB[i].name,
pcon->DHB[i].sex,
pcon->DHB[i].age,
pcon->DHB[i].tele,
pcon->DHB[i].addr);
}
}
void clear_peo(pContact pcon) //清空全部联系人
{
pcon->count = 0;
}</span>
测试函数
<span style="font-size:18px;">#include "contact.h"
void show_menu()
{
printf("************************\n");
printf("* 1>add 2>del *\n");
printf("* 3>search 4>modify *\n");
printf("* 5>show 6>clear *\n");
printf("************************\n");
}
int main()
{
struct contact my_contact;
my_contact.count = 0;
int input = 1;
while(input)
{
show_menu();
printf("please input:>");
scanf("%d",&input);
switch(input)
{
case 1:
add_peo(&my_contact);
system("cls"); //清屏
break;
case 2:
del_peo(&my_contact);
system("cls");
break;
case 3:
search_peo(&my_contact);
break;
case 4:
modify_peo(&my_contact);
system("cls");
break;
case 5:
show_peo(&my_contact);
break;
case 6:
clear_peo(&my_contact);
system("cls");
break;
default:
break;
}
}
return 0;
}
</span>