详解C语言之实现通讯录
目录
- 基本思路和代码实现
- 其他探讨
- 总结
基本思路和代码实现 为了代码清晰易读,我们创建一个Main.c源文件用来实现代码的基本逻辑。创建一个Contact.h源文件用于封装实现功能的函数,创建Contact.h头文件用于函数的声明。
首先就是构架代码基本框架,在主函数中实现打印菜单和循环的功能 (这里为了好截图switch里的语句缩进得比较紧凑)
【详解C语言之实现通讯录】
文章图片
基本逻辑实现后开始考虑创建通讯录,通讯录里会记录人的信息。所以要先能够描述人的信息: 创建表达人的信息的结构体类型,在
Contact.h
中定义:文章图片
而通讯录里记录的是多人的信息,所以创建通讯录实际上就是创建上述结构体的数组。这里需要思考一个问题,在之后实现函数的功能比如增删时,怎么才能得知从哪里增加或者在什么范围内查找并删除。这就需要用到一个能表达当前通讯录有多少个人的变量。而这个变量也能够用来描述通讯录,与其把他独立定义在主函数里不如创建一个通讯录的结构体,将其定义在里面。这样一来此变量的意义更加明确,也不用每次调用函数时都要额外传递他的参数,只需传结构体就行了。创建通讯录的结构体类型,在
Contact.h
中定义:文章图片
创建完了之后接着进行通讯录初始化,封装一个初始化函数InitContact,再设计好其他函数名写在相应位置处:??????
文章图片
然后开始具体实现函数的功能。
初始化函数
InitContact
:文章图片
增加函数
AddContact
:文章图片
删除函数DelContact(这里封装了一个FindName函数,其功能是找到名字相同的结构体数组元素则返回其下标,未找到则返回-1):
文章图片
查找函数
SeachContact
:文章图片
修改函数
ModifyContact
:文章图片
打印函数
ShowContact
:文章图片
FindName
函数:文章图片
SortContact
排列函数可以有多种不同的排列方式,这可以由自己设计。还可用qsort函数加上自己的比较函数来实现更多类型的排列,这里就不实现此函数了。再做好函数声明引好头文件,到这里通讯录的实现就完成了。其他探讨 在设计如名字和电话住址等数组的大小时,可以使用#define定义
文章图片
当之后需要修改这些数组的大小时,不用再去一个一个找到每个使用这些数组的地方进行修改,直接修改全局变量的值即可,非常方便。
在判断数字时,可以使用枚举常量将数字替换成有实际意义的词
文章图片
文章图片
有了枚举常量,即使代码过长,也不用在反复翻阅寻找数字所代表的意义,直接从词语含义上就能得知。增加了代码的可读性。
总结 本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
推荐阅读
- 夜游宫|夜游宫 心语
- 跌跌撞撞奔向你|跌跌撞撞奔向你 第四章(你补英语,我补物理)
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 子龙老师语录
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 【生信技能树】R语言练习题|【生信技能树】R语言练习题 - 中级
- 小学英语必考的10个知识点归纳,复习必备!
- 六步搭建ES6语法环境
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗