以二维数组实现简易的电话号码软件

/*
编写一个简易的电话号码软件,要求如下:
1)可以存储人名和电话(提示用二维字符数组,第一维数组存放姓名,第二维存放电话)
2)可以输入(增加)、根据姓名为条件查找、修改和删除电话。

*/

#include 
#include 

#pragma warning (disable:4996)

#define ROW 128//最多可存储128人的电话,要扩充人数可直接修改此值
#define COL1 9//姓名所占字节 
#define COL2 12/号码所占字节

void menu();//菜单
void add(char tel[][COL1 + COL2], int *personNum);//增加电话
void change(char tel[][COL1 + COL2], int *personNum);//修改电话
void del(char tel[][COL1 + COL2], int *personNum);//删除电话
void lookup(char tel[][COL1 + COL2], int *personNum);//查找电话


int main()
{
	char tel[ROW][COL1 + COL2] = { 0 };
	int n=0;       //选项
	int personNum = 0;//人数
	while (1)
	{
		menu();
		scanf("%d", &n);
		switch (n)
		{
		case 1:
			add(tel, &personNum);
			system("cls");//清除屏幕
			break;
		case 2:
			del(tel, &personNum);
			system("cls");
			break;
		case 3:
			change(tel, &personNum);
			system("cls");
			break;
		case 4:
			lookup(tel, &personNum);
			break;
		case 5:
			exit(0);
			break;
		default:
			printf("输入错误,请重新输入\n");
			break;
		}
	}
	system("pause");
	return 0;
}

void menu()
{//菜单
	printf("请输入您操作选项:\n");
	printf("    1、增加      \n");
	printf("    2、删除      \n");
	printf("    3、修改      \n");
	printf("    4、查找      \n");
	printf("    5、退出      \n");
}

void add(char tel[][COL1 + COL2], int *personNum)
{//增加电话
	printf("请输入要增加的人的姓名:");
	scanf("%s", tel[*personNum]);
	printf("请输入要增加的人的电话:");
	scanf("%s", tel[*personNum] + COL1);
	(*personNum)++;
}

void change(char tel[][COL1 + COL2], int *personNum)
{//修改电话
	char name[8] = { 0 };
	printf("请输入要修改的人的姓名:");
	scanf("%s", name);
	for (int i = 0; i <= *personNum; i++)
	{
		if (strcmp(tel[i], name) == 0)
		{
			printf("请输入要修改的人的电话:");
			scanf("%s", tel[i] + COL1);
			return;
		}
	}
	printf("未找到这个人");
}

void del(char tel[][COL1 + COL2], int *personNum)
{//删除电话
	char name[8] = { 0 };
	printf("请输入要修改的人的姓名:");
	scanf("%s", name);
	for (int i = 0; i <= *personNum; i++)
	{
		if (strcmp(tel[i], name) == 0)
		{
			for (int j = i; j <= *personNum; j++)
			{
				for (int k = 0; k < COL1 + COL2; k++)

				{
					tel[j][k] = tel[j + 1][k];
				}
			}
			(*personNum)--;
			return;
		}
	}
	printf("未找到这个人");
}

void lookup(char tel[][COL1 + COL2], int *personNum)
{//查找电话
	char name[8] = { 0 };
	printf("请输入要查找的人的姓名:");
	scanf("%s", name);
	for (int i = 0; i <= *personNum; i++)
	{
		if (strcmp(tel[i], name) == 0)
		{
			printf("要查找的人的的电话是:");
			for (int j = COL1; j < COL1 + COL2; j++)
			{
				printf("%c", tel[i][j]);
			}
			printf("\n");
			return;
		}
	}
	printf("未找到这个人");
}


运行截图:

以二维数组实现简易的电话号码软件_第1张图片

你可能感兴趣的:(以二维数组实现简易的电话号码软件)