C语言实现的通讯录

通讯录

姓名、性别、电话,最多存储50个联系人

功能:

1、添加联系人
2、按名字删除联系人
3、按名字修改联系人的信息
4、查找联系人,可以通过电话、名字查找,支持模糊查找
5、显示所有联系人信息

代码

#include <stdio.h>
#include <string.h>
#include <getch.h>
#include <stdlib.h>
static char count = 0;			//记录有效的联系人数量

static char name[50][20] = {};	//姓名
static char sex[50] = {};		//性别
static char tel[50][12] = {};	//电话

//	按任意按键继续
void anykey_continue(void)
{
	puts("按任意按键继续...");
	stdin->_IO_read_ptr = stdin->_IO_read_end;
	getch();
}

//	显示提示信息几秒
void show_msg(const char* msg,float sec)
{
	printf("%s",msg);
	fflush(stdout);
	usleep(sec*1000000);
}

//添加联系人
void add(void)
{
	if(50 <= count)
	{
		puts("升级正在系统,请稍后...");
		return;
	}
	int i = 0;
	while(sex[i]) i++;
	/*
	while(sex[i])
	{
		i++;
	}*/  //循环直到sex[i]为真
	printf("请输入添加的姓名 性别 电话:");
	scanf("%s %c %s",name[i],&sex[i],tel[i]);
	count++;
	show_msg("添加联系人成功!\n",1.5);
}
//删除联系人
void del(void)
{
	printf("请输入要删除联系人姓名:");
	char key[20] = {};
	scanf("%s",key);
	for(int i = 0; i<50 ;i++)
	{
		if(sex[i])	//先找到sex[i]是真
		{
			if(!strcmp(key,name[i]))//比较输入的名字与已有的名字是否相同
			{
				printf("删除%s %c %s成功\n",name[i],sex[i],tel[i]);
				sex[i] = 0;//把sex[i]置零,以后就找不到该sex[i],所以删除了
				count--;
				show_msg("",1.5);
				return;
			}
		}
	}
	show_msg("没找到联系人,检查查询条件",1.5);
}
//修改联系人信息
void modify(void)
{
	
	char key[20] = {};
	printf("请输入要修改联系人姓名:");
	scanf("%s",key);
	for(int i = 0; i<50 ;i++)
	{
		if(sex[i])	
		{
			if(!strcmp(key,name[i]))
			{
				printf("请重新输入该联系人姓名 性别 电话:");
				scanf("%s %c %s",name[i],&sex[i],tel[i]);
				show_msg("修改成功\n",1.5);
				return;
			}
		}
	}
	show_msg("没找到联系人,检查查询条件",1.5);

}
//查询联系人
void find(void)
{	
	char key[20] = {};
	printf("请输入要查询的关键词:");
	scanf("%s",key);
	for(int i=0;i<50;i++)
	{
		if(sex[i] && strstr(name[i],key) || strstr(tel[i],key))
		{
			printf("%s %c %s\n",name[i],sex[i],tel[i]);
		}
	}
	anykey_continue();
}
//显示所有联系人
void list(void)
{
	for(int i = 0;i<50;i++)
	{
		if(sex[i])	
		{
			printf("%s %s %s\n",name[i],'w' == sex[i]?"女":"男",tel[i]);
		}
	}
	anykey_continue();
}

//菜单
void menu(void)
{
	system("clear");
	puts("*****欢迎使用通讯录*****");
	puts("1、添加联系人");
	puts("2、删除联系人");
	puts("3、修改联系人");
	puts("4、查询联系人");
	puts("5、显示联系人");
	puts("6、退出通讯录");
	puts("----------------------------");
	puts("请输入指令:");
}

int main()
{
	for(;;)
	{
	//显示菜单
	menu();
	//输入指令数字并输出
	char a;
	a=getch();
	printf("%c\n",a);
	//接收指令数字
	switch(a)
	{
		case '1':	add();		break;
		case '2':	del();		break;
		case '3':	modify();	break;
		case '4':	find();		break;
		case '5':	list();		break;
		case '6':	return 0;
	}
	}
	
	return 0;
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值