欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解C语言之实现通讯录

程序员文章站 2022-06-21 23:12:10
目录基本思路和代码实现其他探讨总结基本思路和代码实现为了代码清晰易读,我们创建一个main.c源文件用来实现代码的基本逻辑。创建一个contact.h源文件用于封装实现功能的函数,创建contact....

基本思路和代码实现

为了代码清晰易读,我们创建一个main.c源文件用来实现代码的基本逻辑。创建一个contact.h源文件用于封装实现功能的函数,创建contact.h头文件用于函数的声明。

首先就是构架代码基本框架,在主函数中实现打印菜单和循环的功能 (这里为了好截图switch里的语句缩进得比较紧凑)

详解C语言之实现通讯录

基本逻辑实现后开始考虑创建通讯录,通讯录里会记录人的信息。所以要先能够描述人的信息: 创建表达人的信息的结构体类型,在contact.h中定义:

详解C语言之实现通讯录

而通讯录里记录的是多人的信息,所以创建通讯录实际上就是创建上述结构体的数组。这里需要思考一个问题,在之后实现函数的功能比如增删时,怎么才能得知从哪里增加或者在什么范围内查找并删除。这就需要用到一个能表达当前通讯录有多少个人的变量。而这个变量也能够用来描述通讯录,与其把他独立定义在主函数里不如创建一个通讯录的结构体,将其定义在里面。这样一来此变量的意义更加明确,也不用每次调用函数时都要额外传递他的参数,只需传结构体就行了。创建通讯录的结构体类型,在contact.h中定义:

详解C语言之实现通讯录 

创建完了之后接着进行通讯录初始化,封装一个初始化函数initcontact,再设计好其他函数名写在相应位置处:​​​​​​

详解C语言之实现通讯录

然后开始具体实现函数的功能。

初始化函数initcontact

详解C语言之实现通讯录  

增加函数addcontact

 详解C语言之实现通讯录

删除函数delcontact(这里封装了一个findname函数,其功能是找到名字相同的结构体数组元素则返回其下标,未找到则返回-1): 

详解C语言之实现通讯录

 查找函数seachcontact

详解C语言之实现通讯录

 修改函数modifycontact

详解C语言之实现通讯录

 打印函数showcontact:

详解C语言之实现通讯录

 findname函数:

详解C语言之实现通讯录

sortcontact排列函数可以有多种不同的排列方式,这可以由自己设计。还可用qsort函数加上自己的比较函数来实现更多类型的排列,这里就不实现此函数了。再做好函数声明引好头文件,到这里通讯录的实现就完成了。

其他探讨

在设计如名字和电话住址等数组的大小时,可以使用#define定义

详解C语言之实现通讯录

当之后需要修改这些数组的大小时,不用再去一个一个找到每个使用这些数组的地方进行修改,直接修改全局变量的值即可,非常方便。

在判断数字时,可以使用枚举常量将数字替换成有实际意义的词

详解C语言之实现通讯录

详解C语言之实现通讯录

有了枚举常量,即使代码过长,也不用在反复翻阅寻找数字所代表的意义,直接从词语含义上就能得知。增加了代码的可读性。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!