目录
实现目标
- 通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址
- 实现7个功能
- 添加联系人信息
- 删除指定联系人信息
- 查找指定联系人信息
- 修改指定联系人信息
- 显示所有联系人信息
- 清空所有联系人
- 以名字排序所有联系人
功能实现
主函数功能选择菜单
既然要实现多种功能,那就得有菜单进行选择,可以利用switch函数进行选择
void meu()
{
printf("*****************************************************************\n");
printf("********1、新建联系人 2、删除联系人*************\n");
printf("********3、查找联系人 4、修改联系人*************\n");
printf("********5、显示所有联系人 6、清空所有联系人*********\n");
printf("********7、以名字排序所有联系人 0、退出程序***************\n");
printf("*****************************************************************\n");
}
int main()
{
int i = 1;
con pc;
init(&pc);
while (i)
{
meu();
printf("请输入你的选择->");
scanf("%d", &i);
switch (i)
{
case 0:
printf("exit\n");
break;
case 1:
add(&pc);
break;
case 2:
delete(&pc);
break;
case 3:
seek(&pc);
break;
case 4:
revise(&pc);
break;
case 5:
display(&pc);
break;
case 6:
clear(&pc);
break;
case 7:
sort(&pc);
break;
default:
printf("输入错误\n");
break;
}
}
return 0;
}
创建结构体类型
每一位联系人中都包含了几个个人信息,所以就得创建新的结构体变量来存储信息
(代码中用到的宏定义在下面头文件代码展示中会有),用宏定义后方便我们以后对代码进行改动
typedef struct people
{
char name[max_name];//名字
char sex[max_sex];//性别
char phone[max_phone];//电话号码
char home[max_home];//住址
int age;//年龄
}people;
创建好了结构体联系人类型后,由于通讯录需要存放1000个联系人,所以我们还得创建一个结构体类型
typedef struct con
{
int count;//联系人总数
people date[max];
}con;
初始化函数
创建好通讯录后,首先得进行初始化,这里把通讯录里的内容全部初始化为0
void init(con* pc)
{
assert(pc);
pc->count = 0;
//利用库函数对数组里的每一项都初始化
memset(pc->date, 0, sizeof(pc->date));
}
新增联系人
-
判断通讯录人数是否已满
-
如果没满,则给通讯录类型中的联系人结构体中的每一项赋值
-
通讯录中联系人总数加1
//增加联系人
void add(con* pc)
{
assert(pc);
if (pc->count < 1000)
{
printf("请输入联系人名字->");
scanf("%s", pc->date[pc->count].name);
printf("请输入联系人性别->");
scanf("%s", pc->date[pc->count].sex);
printf("请输入联系人年龄->");
scanf("%d", &(pc->date[pc->count].age));
printf("请输入联系人电话->");
scanf("%s", pc->date[pc->count].phone);
printf("请输入联系人住址->");
scanf("%s", pc->date[pc->count].home);
pc->count++;
printf("添加成功\n");
}
else
printf("通讯录已满\n");
printf("\n");
}
查找指定联系人下标
因为下面的查找、修改都需要用到这一步,所以我们通过一个函数来实现这一步
//查找某联系人下标函数
int find(char* arr,con* pc)
{
int i = 0<