实现一个通讯录;
通讯录可以用来存储1000个人的信息,每个人的信息包括:
姓名、性别、年龄、电话、住址
提供方法:
1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
//主函数:
通讯录可以用来存储1000个人的信息,每个人的信息包括:
姓名、性别、年龄、电话、住址
提供方法:
1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
6. 清空所有联系人
//头文件:
#ifndef _CONTACT__
#define _CONTACT__
#define NAME_MAX 20
#define SEX_MAX 5
#define TELE_MAX 20
#define ADDR_MAX 30
#define SB_MAX 1000
#include <stdio.h>
#include <string.h>
typedef struct sb
{
char name[NAME_MAX];
char sex[SEX_MAX];
int age;
char tele[TELE_MAX];
char addr[ADDR_MAX];
}*sbcon;
typedef struct contact
{
struct sb telen[SB_MAX];
int count;
}*pCon;
void add(pCon pcon);
void dele(pCon pcon);
void search(pCon pcon);
void modify(pCon pcon);
void show(pCon pcon);
void clear(pCon pcon);
#endif
功能函数如下:
<pre name="code" class="cpp">#include "contact.h"
int find(pCon pcon,char *name)
{
int i = 0;
while( i < pcon->count )
{
if( strcmp(name,pcon->telen[i].name) == 0 )
return i;
i++;
}
return -1;
}
//添加联系人
void add(pCon pcon)
{
//判断电话本是否满了
if(pcon->count == SB_MAX)
{
printf("电话本已满\n");
return;
}
else
{
printf("姓名:");
scanf("%s",(pcon->telen[pcon->count]).name);
printf("性别:");
scanf("%s",(pcon->telen[pcon->count]).sex);
printf("年龄:");
scanf("%d",&(pcon->telen[pcon->count]).age);
printf("联系电话:");
scanf("%s",(pcon->telen[pcon->count]).tele);
printf("家庭住址:");
scanf("%s",(pcon->telen[pcon->count]).addr);
pcon->count++;
}
}
//删除联系人
void dele(pCon pcon)
{
int ret = 0;
char tname[NAME_MAX];
printf("请输入要删除的名字:");
scanf("%s",tname);
ret = find(pcon,tname);
if( -1 != ret )
{
int j = ret;
for(; j < pcon->count-1; j++)
{
pcon->telen[j] = pcon->telen[j+1];
}
pcon->count--;
}
else
printf("没有找到你要删除的人\n");
}
//查找联系人
void search(pCon pcon)
{
int ret = 0;
char tname[NAME_MAX];
printf("请输入要修改的名字:");
scanf("%s",tname);
ret = find(pcon,tname);
if( -1 != ret )
{
printf("%s\t%s\t%d\t%s\t%s\t\n",
(pcon->telen[ret]).name,
(pcon->telen[ret]).sex,
(pcon->telen[ret]).age,
(pcon->telen[ret]).tele,
(pcon->telen[ret]).addr);
}
else
printf("没有找到你要找的人\n");
}
//修改联系人
void modify(pCon pcon)
{
int ret = 0;
char tname[NAME_MAX];
printf("请输入要修改的名字:");
scanf("%s",tname);
ret = find(pcon,tname);
if( -1 != ret )
{
printf("姓名:");
scanf("%s",(pcon->telen[ret]).name);
printf("性别:");
scanf("%s",(pcon->telen[ret]).sex);
printf("年龄:");
scanf("%d",&(pcon->telen[ret]).age);
printf("联系电话:");
scanf("%s",(pcon->telen[ret]).tele);
printf("家庭住址:");
scanf("%s",(pcon->telen[ret]).addr);
}
else
printf("没有找到你要找的人\n");
}
//展示
void show(pCon pcon)
{
int i = 0;
for(; i < (pcon->count); i++)
{
printf("%s\t%s\t%d\t%s\t%s\t\n",
(pcon->telen[i]).name,
(pcon->telen[i]).sex,
(pcon->telen[i]).age,
(pcon->telen[i]).tele,
(pcon->telen[i]).addr);
}
}
//清空
void clear(pCon pcon)
{
pcon->count = 0;
printf("电话本是空的\n");
}
//主函数:
#include "contact.h"
void shou_menue()
{
printf("*********************************\n");
printf("* 1:添加联系人 2:删除联系人 *\n");
printf("* 3:查找联系人 4:修改联系人 *\n");
printf("* 5:显示联系人 6:清空联系人 *\n");
printf("*********************************\n");
}
int main()
{
struct contact my_contact;
int input = 1;
my_contact.count = 0;
while(input)
{
shou_menue();
printf("请选择你想要的操作:");
scanf("%d",&input);
switch(input)
{
case 1:
add(&my_contact);
break;
case 2:
dele(&my_contact);
break;
case 3:
search(&my_contact);
break;
case 4:
modify(&my_contact);
break;
case 5:
show(&my_contact);
break;
case 6:
clear(&my_contact);
break;
default:
break;
}
}
return 0;
}
以下是运行结果截图:
添加联系人以及显示联系人:
删除联系人:
查找联系人:
修改联系人:
清空联系人: