我是靠谱客的博主 满意泥猴桃,最近开发中收集的这篇文章主要介绍详解C语言之实现通讯录,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

基本思路和代码实现

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

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

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

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

 

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

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

初始化函数InitContact

  

增加函数AddContact

 

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

 查找函数SeachContact

 修改函数ModifyContact

 打印函数ShowContact:

 FindName函数:

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

其他探讨

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

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

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

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

总结

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

最后

以上就是满意泥猴桃为你收集整理的详解C语言之实现通讯录的全部内容,希望文章能够帮你解决详解C语言之实现通讯录所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(125)

评论列表共有 0 条评论

立即
投稿
返回
顶部