前言:
今天我们的目标是,写出我们自己满意的通讯录。实现通讯录的五个功能:增,删,查,改,示,也就是增加联系人,删除联系人,查找联系人,修改联系人信息,展示联系人。那就让我们进入主题吧。
文件建立:
我们分别建立3个文件:一个头文件和两个源文件。
①.头文件Contact.h:
该文件是用于包含其它头文件,并且存放功能实现函数的函数声明。好处就是可以整合整个程序中所用到的全部头文件和函数声明,一目了然。并在引用时只需引用Contact.h头文件。
②.函数定义文件Contact.c:
这个文件主要是用于书写所有的程序功能实现的函数定义。一、将所有定义书写在一起方便我们进行阅读,修改;二来大大提升了程序的可移植性,当他人想要使用我们定义的函数时,只需将整个Contact.c文件发送给对方即可;最后也可以将其设置为静态库从而实现我们函数代码的隐藏。
③.工程测试文件test.c:
这文件里所书写的是我们程序主体部分,并对程序进行执行逻辑的编辑和检查。结合前面两个文件的使用,可以使得我们的程序逻辑变得清晰,既有利于我们进行程序的运行逻辑检查。
通讯录整体实现思路:
首先我们定义两个函数,menu为菜单函数,负责向玩家打印游戏菜单,Contact为通讯录功能函数,负责实现整个通讯录功能的实现。当程序开始编译运行后,首先执行菜单函数供玩家选择功能,接着执行Contact函数实现玩家选择的功能。
//菜单
void menu()
{
printf("*************************************\n");
printf("*************************************\n");
printf("*************************************\n");
printf("*************************************\n");
printf("*************************************\n");
printf("*************************************\n");
printf("*************************************\n");
printf("*************************************\n");
}
//实现通讯录功能函数
void Contact()
{
}
int main()
{
menu();
Contact();
return 0;
}
同时,我们在使用通讯录时,往往会出现一次性添加、删除或修改多个联系人信息的场景,于是我们就需要让我们的程序多次循环执行:
void Contact()
{
int input = 0;
do
{
menu();
printf("请您进行选择:");
scanf("%d", &input);
switch (input)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 0:
printf("正在退出程序\n")
break;
default:
printf("您的选择有误,请重新选择\n");
}
} while (input);
}
我们通过使用do...while循环语句,保证了我们程序多次执行。并且我们通过输入值input作为循环判断条件,减少了变量创建从而节省了空间,也避免了因为输入错误导致直接跳出执行。同时,通过借助switch分支语句,我们也实现了对通讯录不同功能的调用和对输入选择的合法性检测。(这里也可以用if语句实现,看个人喜好)
现在通过编译让我们来看看效果:
menu菜单函数的实现:
在上面我们已经确定好了函数的主题主题实现逻辑,接下来就是实现各个功能模块。当然在实现功能模块之前我们先来实现向用户反馈通讯录功能的函数menu。
void menu()
{
printf("*************************************\n");
printf("************通讯录功能如下***********\n");
printf("************* 1.Add *************\n");
printf("************* 2.Del *************\n");
printf("************* 3.Search *************\n");
printf("************* 4.Modify *************\n");
printf("************* 0.Exit *************\n");
printf("**********************************