C语言_简易通讯录


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#define SIZE 1000

typedef struct PersonIFM
{
	char name[100];
	char phone[100];
}PersonIFM;

typedef struct AddrBook
{
	PersonIFM personifm[SIZE];
	int size;
}AddrBook;

AddrBook addrbook;

int Menu()
{
	printf("__________________________________\n");
	printf("\n");
	printf("         1.添加联系人\n");
	printf("         2.删除联系人\n");
	printf("         3.查找联系人\n");
	printf("         4.修改联系人\n");
	printf("         5.显示所有联系人\n");
	printf("         6.清空所有联系人\n");
	printf("         0.退出通讯录\n");
	printf("__________________________________\n");
	printf("请输入您要进行操作的编号: ");
	while (1)
	{
		int choice = 0;
		scanf("%d", &choice);
		if (choice == 0 || choice == 1 || choice == 2 
			|| choice == 3 || choice == 4 || choice == 5
			|| choice == 6 || choice == 7)
		{
			return choice;
		}
		else
		{
			printf("输入有误,请重新输入: ");
		}
	}
}

void Init()
{
	addrbook.size = 0;
	for (int i = 0; i < SIZE; i++)
	{
		strcpy(addrbook.personifm[i].name, "");
		strcpy(addrbook.personifm[i].phone, "");
	}
}

void Add()
{
	if (addrbook.size > SIZE)
	{
		printf("联系人已满,添加失败!\n");
	}
	printf("请输入联系人姓名:");
	scanf("%s", addrbook.personifm[addrbook.size].name);
	printf("请输入联系人电话:");
	scanf("%s", addrbook.personifm[addrbook.size].phone);
	addrbook.size++;
	printf("添加成功!\n");
	return;
}

void Del()
{
	printf("请输入要删除的联系人姓名:");
	char name[10] = {0};
	scanf("%s", &name);
	int i = 0;
	for (; i < addrbook.size; i++)
	{
		if (strcmp(name, addrbook.personifm[i].name) == 0)
		{
			addrbook.personifm[i] = addrbook.personifm[i + 1];
			break;
		}
	}
	if (i < addrbook.size)
	{
		addrbook.size--;
		printf("删除成功!\n");
	}
	else
	{
		printf("没有要删除的联系人!\n");
	}
}

void Find()
{
	printf("请输入要查找的联系人姓名:");
	char name[10] = { 0 };
	scanf("%s", &name);
	if (addrbook.size > 0)
	{
		int i = 0;
		for (; i < addrbook.size; i++)
		{
			if (strcmp(name, addrbook.personifm[i].name) == 0)
			{
				break;
			}
		}
		if (i < addrbook.size)
		{
			printf("%s", addrbook.personifm[i].name);
			printf("\t");
			printf("%s\n", addrbook.personifm[i].phone);
		}
		else
		{
			printf("没有要查找的联系人!\n");
		}
	}
	else
	{
		printf("没有要查找的联系人!\n");
	}
}

void Modify()
{
	printf("请输入要修改的联系人姓名:");
	char name[10] = { 0 };
	scanf("%s", &name);
	int i = 0;
	for (; i < addrbook.size; i++)
	{
		if (strcmp(name, addrbook.personifm[i].name) == 0)
		{
			break;
		}
	}
	if (i < addrbook.size)
	{
		printf("请输入修改后的联系人姓名:");
		scanf("%s", addrbook.personifm[i].name);
		printf("请输入修改后的联系人电话:");
		scanf("%s", addrbook.personifm[i].phone);
	}
	else
	{
		printf("没有要修改的联系人!\n");
	}
}


void Print()
{
	for (int i = 0; i < addrbook.size; i++)
	{
		printf("%s   %s\n", addrbook.personifm[i].name, addrbook.personifm[i].phone);
	}
	printf("\n");
}

void Clear()
{
	addrbook.size = 0;
	printf("联系人已清空!\n");
}

int main()
{
	Init();
	while (1)
	{
		int choice = Menu();
		switch (choice)
		{
		case 1:
			//添加联系人
			Add();
			break;
		case 2:
			//删除联系人
			Del();
			break;
		case 3:
			//查找联系人
			Find();
			break;
		case 4:
			//修改联系人信息
			Modify();
			break;
		case 5:
			//显示所有联系人
			Print();
			break;
		case 6:
			Clear();
			//清空所有联系人
			break;
		case 0:
			printf("通讯录已退出!\n");
			break;
		}
		if (choice == 0)
		{
			break;
		}
	}
	system("pause");
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值