项目目的:
制作一个通讯录项目,通过通讯录能够存入好友的id号,姓名,性别,手机号和地址
菜单功能:
菜单显示通讯录的主要功能:增加、删除、查找、修改、排序、显示、退出、保存
创建文件:
test.c:主要完成整个项目的规划(功能模块)
contact.c:主要用来实现函数
contact.h:只做函数的声明和一些其他预处理指令所进行的,编译后不产生代码
首先将功能模块在test.c中用函数的形式做成一个菜单
void menu()
{
printf("******* 1. add ********\n");
printf("******* 2. del ********\n");
printf("******* 3. search ********\n");
printf("******* 4. modify ********\n");
printf("******* 5. show ********\n");
printf("******* 6. sort ********\n");
printf("******* 0. exit ********\n");
printf("******* 7. save ********\n");
}
将大致思路写在test.c的mian函数中
int main()
{
int input=0;
int size=0;//通讯录中好友的个数
struct InforContact con[MAX];//创建一个存有1000个人信息的通讯录
InitContact(&con,size);//初始化通讯录
do
{
menu();
switch(input)
{
//case后面的数字是和上面菜单上对应的
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
default:
printf("选择错误\n");
break;
}
}while(input);
}
1.由于case后面的数字可读性很低,所以这里可以借助枚举类型增强代码的可读性
2.通讯录的功能都是要用函数来实现的,所以传参数时都需要将&con和size传递到功能函数中所以这里我们可以再创建一个结构体,将这两个变量包含进去
3.创建结构体变量和函数声明都是在contact.h中实现的,所以test.c和contact.c中都应该包含头文件#include"contact.h"
通过上述的分析,我们可以修改代码:
- test.c
#include"contact.h"
void menu()
{
printf("******* 1. add ********\n");
printf("******* 2. del ********\n");
printf("******* 3. search ********\n");
printf("******* 4. modify ********\n");
printf("******* 5. show ********\n");
printf("******* 6. sort ********\n");
printf("******* 0. exit ********\n");
printf("******* 7. save ********\n");
}
int main()
{
int input=0;
//int size=0;//通讯录中好友的个数
//struct InforContact con[MAX];//创建一个存有1000个人信息的通讯录
struct Contact con;
InitContact(&con);//初始化通讯录
do
{
menu();
switch(input)
{
//case后面的数字是和上面菜单上对应的
case EXIT:
break;
case ADD:
break;
case DEL:
break;
case SEARCH:
break;