服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - 详解C语言之实现通讯录

详解C语言之实现通讯录

2022-02-21 15:08iEucliwood C/C++

这篇文章主要为大家详细介绍了用C语言实现通讯录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

基本思路和代码实现

为了代码清晰易读,我们创建一个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语言之实现通讯录

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

 

总结

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

原文链接:https://blog.csdn.net/iEucliwood/article/details/121058644

延伸 · 阅读

精彩推荐
  • C/C++详解c语言中的 strcpy和strncpy字符串函数使用

    详解c语言中的 strcpy和strncpy字符串函数使用

    strcpy 和strcnpy函数是字符串复制函数。接下来通过本文给大家介绍c语言中的strcpy和strncpy字符串函数使用,感兴趣的朋友跟随小编要求看看吧...

    spring-go5642021-07-02
  • C/C++C++之重载 重定义与重写用法详解

    C++之重载 重定义与重写用法详解

    这篇文章主要介绍了C++之重载 重定义与重写用法详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...

    青山的青6062022-01-04
  • C/C++深入理解goto语句的替代实现方式分析

    深入理解goto语句的替代实现方式分析

    本篇文章是对goto语句的替代实现方式进行了详细的分析介绍,需要的朋友参考下...

    C语言教程网7342020-12-03
  • C/C++学习C++编程的必备软件

    学习C++编程的必备软件

    本文给大家分享的是作者在学习使用C++进行编程的时候所用到的一些常用的软件,这里推荐给大家...

    谢恩铭10102021-05-08
  • C/C++c++ 单线程实现同时监听多个端口

    c++ 单线程实现同时监听多个端口

    这篇文章主要介绍了c++ 单线程实现同时监听多个端口的方法,帮助大家更好的理解和学习使用c++,感兴趣的朋友可以了解下...

    源之缘11542021-10-27
  • C/C++C/C++经典实例之模拟计算器示例代码

    C/C++经典实例之模拟计算器示例代码

    最近在看到的一个需求,本以为比较简单,但花了不少时间,所以下面这篇文章主要给大家介绍了关于C/C++经典实例之模拟计算器的相关资料,文中通过示...

    jia150610152021-06-07
  • C/C++C语言中炫酷的文件操作实例详解

    C语言中炫酷的文件操作实例详解

    内存中的数据都是暂时的,当程序结束时,它们都将丢失,为了永久性的保存大量的数据,C语言提供了对文件的操作,这篇文章主要给大家介绍了关于C语言中文件...

    针眼_6702022-01-24
  • C/C++C语言实现电脑关机程序

    C语言实现电脑关机程序

    这篇文章主要为大家详细介绍了C语言实现电脑关机程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    xiaocaidayong8482021-08-20