目录
创建通讯录整体框架
制定菜单:
让别人清楚自己的什么操作会实现什么功能
void menu()
{
printf("****************************\n");
printf("***1.add 2.del ******\n");
printf("***3.search 4.modifi****\n");
printf("***5.show 6.sort******\n");
printf("*** 0.quit ***\n");
printf("****************************\n");
}
创建菜单顺序实现的枚举
为了方便后续代码的编写,可以直接写功能 而非对照1 2 3 来判断功能
(在默认情况下 可能列表的取值从0 分别递增1 如QUIT = 0 ,ADD = 1)
enum Option
{
QUIT,
ADD,
DEL,
SEARCH,
MODIFI,
SHOW,
SORT,
};
制定实现菜单的功能结构:
有了上一步的铺垫 我们可以直接用ADD取代1...
先罗列实现菜单功能的基本框架,不考虑实际实现
int main()
{
int input = 0;
menu();
struct contact con;
//初始化结构体
Init_con(&con);
do
{
scanf("%d", &input);
switch (input)
{
case ADD:
//添加联系人
add_con(&con);
break;
case DEL:
//删除联系人
del_con(&con);
break;
case SEARCH:
//搜索联系人
search_con(&con);
break;
case MODIFI:
//修改
modifi_con(&con);
break;
case SHOW:
//显示
show_con(&con);
break;
case SORT:
//按xx排序
sort_con_name(&con);
//sort_con_age(&con);
break;
case QUIT:
printf("退出程序\n");
break;
default:
printf("输入错误 请重新输入\n");
break;
}
} while (input);
return 0;
}
制定所需结构的结构体类型
首先创建一个结构体类型 用来存放成员结构体类型 和 存放成员的数量
进而创建成员结构体类型 存放一个成员的姓名 年龄等身份信息
struct peoinf//成员身份
{
char name[max_name];
char sex[max_sex];
int age;
char addr[max_addr];
char phonenum[max_phonenum];
};
struct contact
{
struct peoinf data[max];
int sz;
};
创建宏
在整体功能实现中 会需要较多的变量 而为了提升代码的可维护性 我们在这里可以采用宏的方式 。
宏在编写代码的过程中 不断完善 可以先创建目前需要的 如max_name (姓名字符数组的大小)...
后期不断完善
#define max 100
#define max_name 12
#define max