【C语言】实现一个简单的通讯录

<span style="font-size:18px;">#include<stdio.h>
#include"contact.h"

void print_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()
{
	PCON pco;
	int input=1;
	pco.count=0;
	while(input)
	{
		print_menu();
		printf("请选择:");
		scanf("%d",&input);
		switch(input)
		{
		case 1:
			add_peo(&pco);
			break;
		case 2:
			del_peo(&pco);
			break;
		case 3:
			search(&pco);
			break;
		case 4:
			modify(&pco);
			break;
		case 5:
			show(&pco);
			break;
		case 6:
			clear(&pco);
			break;
		default :
			break;
		}
	}
	return 0;
}
</span>
<span style="font-size:18px;">#ifndef __CONTACT_H
#define __CONTACT_H_

#define NAME_LEN 20
#define SEX_LEN 5
#define TELE_LEN 12
#define ADDR_LEN 20
#define MAX_PEO 1000

typedef struct Peo
{
	char name[NAME_LEN];
	int age;
	char sex[SEX_LEN];
	char tele[TELE_LEN];
	char addr[ADDR_LEN];

}PEO,*PPEO;
typedef struct Contact
{
	PEO dhb[MAX_PEO];//存储人的信息
	int count;//记录有效人的个数
}PCON,*Pcon;

void add_peo(Pcon pcon);
void del_peo(Pcon pcon);
void search(Pcon pcon);
void modify(Pcon pcon);
void show(Pcon pcon);
void clear(Pcon pcon);

#endif
</span>

<span style="font-size:18px;">#include<string.h>
#include"contact.h"

int find(Pcon pcon)
{
	int i=0;
	char name[NAME_LEN];
	printf("请输入姓名:");
	scanf("%s",name);
	for(i=0;i<=pcon->count;i++)
	{
		if(strcmp(name,pcon->dhb[i].name)==0)
			return i;
	} 
	return -1;
}


void add_peo(Pcon pcon)
{
	if(pcon->count>MAX_PEO)
		printf("电话本已满");
	else
	{
		printf("姓名:");
		scanf("%s",pcon->dhb[pcon->count].name);
		printf("年龄:");
		scanf("%d",&(pcon->dhb[pcon->count].age));
		printf("性别:");
		scanf("%s",pcon->dhb[pcon->count].sex);
		printf("电话:");
		scanf("%s",pcon->dhb[pcon->count].tele);
		printf("住址:");
		scanf("%s",pcon->dhb[pcon->count].addr);
	}
	pcon->count++;
	printf("添加成功!")
}
void del_peo(Pcon pcon)
{
	int i=0;
	int ret=find(pcon);
	if(ret!=-1)
	{
		for(i=ret;i<pcon->count-1;i++)
		{
			pcon->dhb[i]=pcon->dhb[i+1];
		}
		pcon->count--;
		
	}
	else
		printf("未找到要删除的人");
	printf("删除成功!");
}
void search(Pcon pcon)
{
	int ret=find(pcon);
	if(ret!=-1)
	{
		printf("%10s\t",pcon->dhb[ret].name);
		printf("%10d\t",pcon->dhb[ret].age);
		printf("%10s\t",pcon->dhb[ret].sex);
		printf("%10s\t",pcon->dhb[ret].tele);
		printf("%10s\t",pcon->dhb[ret].addr);
	}
	else
		printf("未找到此人");
}
void modify(Pcon pcon)
{
	int ret;
	ret=find(pcon);
	if(ret!=-1)
	{
		printf("姓名:");
		scanf("%s",pcon->dhb[ret].name);
		printf("年龄:");
		scanf("%d",&(pcon->dhb[ret].age));
		printf("性别:");
		scanf("%s",pcon->dhb[ret].sex);
		printf("电话:");
		scanf("%s",pcon->dhb[ret].tele);
		printf("住址:");
		scanf("%s",pcon->dhb[ret].addr);
	}
	else
		printf("未找到要修改的人");
}
void show(Pcon pcon)
{
	int i=0;
	for(i=0;i<pcon->count;i++)
	{
		printf("%10s\t",pcon->dhb[i].name);
		printf("%10d\t",pcon->dhb[i].age);
		printf("%10s\t",pcon->dhb[i].sex);
		printf("%10s\t",pcon->dhb[i].tele);
		printf("%10s\t",pcon->dhb[i].addr);
	}
}
void clear(Pcon pcon)
{
	pcon->count=0;
}</span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值