在掌握了C语言的指针,函数,结构体,并对他们有着一些了解之后。
可以试着完成一个通讯录。
实现思路:
一、创建好结构体
要做一个通讯录,它保存的联系人信息肯定有很多种类,可以把他们封装成一个结构体。
其中联系人包含信息有:姓名,性别,年龄,电话,住址
//联系人信息:姓名,性别,年龄,电话,住址
typedef struct PeoInFo
{
char name[NAME_MAX];
char sex[SEX_MAX];
int age;
char tele[TELE_MAX];
char addr[ADDR_MAX];
}PeoInFo; //这里重命名结构体名字为PeoInFo(增加可读性)
那通讯录其实就算这么多个联系人信息的集合呀。(结构体嵌套)
因此可以创建一个通讯录结构体类型,其中包含:
1.联系人信息
2.保存了多少个信息
就是这个样子:
二、整体框架
依然是熟悉的do while结构。先打印菜单,再根据菜单中的提示完成相应的选择。
为显得简洁易读,这里创建三个工作单元。
test.c: 代码的逻辑思路。
contact.h: 所用到的头文件和函数的声明、全局变量的定义
contact.h: 实现的函数的具体代码
先将test.c的代码放出来:
#define _CRT_SECURE_NO_WARNINGS 1
#include"contact.h"
void menu()
{
printf("\n\n\n************************************\n");
printf("***** 1.Add 2.Del *****\n");
printf("***** 3.Search 4.Modify *****\n");
printf("***** 5.Sort 6.Print *****\n");
printf("***** 0.Exit *****\n");
printf("************************************\n");
}
void test()
{
int input = 0;
//创建通讯录
Contact con;
//初始化通讯录
InitContact(&con);
do
{
menu();
printf("请选择:");
scanf("%d", &input);
switch (input) //这里case部分用到了contact.h中的枚举类型。增加程序可读性
{
case ADD:
AddContact(&con); //增
break;
case DEL:
DeleContact(&con); //删
break;
case SEARCH:
SearchContact(&con); //查
break;
case MODIFY: