【c语言】实现一个通讯录

实现一个通讯录;
通讯录可以用来存储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;
}

以下是运行结果截图:

添加联系人以及显示联系人:

技术分享

删除联系人:

技术分享

查找联系人:

技术分享

修改联系人:

技术分享

清空联系人:

技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。