大家好,我是《大话C语言》这本书的作者蔡苏北,许久没有和大家见面了,甚是想念!哈哈!在《大话C语言》这本书中主要介绍的都是些知识点,列举的也都是些程序片段,没有一个相对完整的C语言程序,可能会让大家感觉不过瘾 。
于是乎,今天就带着大家一起学习用C语言编写一个简单的通讯录系统,这个通讯录系统能实现简单的增、删、改、查和文件的导入导出功能 。通过程序的编写,能够巩固对C语言中的变量、数组、结构、枚举、指针、函数等结识点的实际运用,通过采用一个简单的单向链表来对数据进行存储和管理,从而加深大家对C语言的灵魂-指针的认识,努力让大家对C语言有进一步的理解 。
在编写代码之前,有必要说明一下我所使用的开发环境:操作系统为Windows 10专业版(64位),编辑器为Code::Blocks16.01,编译器为GCC(版本为6.3.0,采用C99标准) 。如果你们的开发环境与此不同,可能在编译过程会有所差别或者错误产生 。如使用微软公司的IDE(集成开发环境)时,可能会认为C标准库中的某些函数具有安全性的问题,在编译过程会产生警告甚至错误的提示,解决的办法是使用微软建议的安全性更高的替代函数,另一种可行方案是使用宏或#pragma指令来屏蔽安全性检查,以使代码顺利通过编译 。
好了,废话不多说,下面就开始代码实战啦!整个程序我们可以简单分为底层链表实现和上层用户交互两块 。为了简单化,链表采用的是单向性的,即单向链表,是程序的数据处理核心,而用户交互的主要目的是为程序使用者创造良好的使用体验 。
01
实现单向链表
单向链表就像小火车一样,火车头后面拖着一节一节的小车厢,大家可以视这一节节的车厢里装载着的都是我们的程序数据,只不过这辆小火车不是驰骋在广袤的大地上,而是在我们计算机的内存中 。小火车的每个车厢都装着一些数据,我们若想查找某些数据,就得从火车头位置开始,一节一节车厢的去寻找 。所以,把这辆小火车看成单向链表的话,那一节一节的车厢就是单向链表中的一个一个的节点 。同理,我们把整个通讯录用单向链表管理起来,那么通讯录中的具体每个人的部分,我们就把它称之为各个节点 。
(一)定义通讯录节点 。
typedefstruct_ addr_book
//数据域部分
char_name[ 20]; //姓名
unsigned_age; //年龄
char_address[ 128]; //地址
char_phone_num[ 12]; //电话号码
//指针域部分
struct_ addr_book* next; //结构体类型的指针,用来指向下一节点
}ADDRBOOK, *PADDRBOOK;
节点其实就是一个C语言中的结构体,所以定义节点就是定义一个结构体类型 。现在我们将这个结构体类型的名字定义为struct _addr_book,同时为了简便使用,我们使用关键字typedef为这个结构体类型起了个别名ADDRBOOK,而PADDRBOOK则是这个结构体指针类型的别名 。由于节点就是结构体,所以我们也可以说,ADDRBOOK就是我们的通讯录节点类型,而PADDRBOOK就是通讯录节点指针类型 。
每个通讯录节点里都有5个数据成员,我们将其分成数据域部分和指针域部分 。数据域部分用于存储每个人的姓名、年龄、地址和电话号码,其中表示年龄的成员_age不可能是负数,所以将其用无符号整型unsigned来定义,其它四个成员皆为字符型的数组 。指针域部分为一个名为next的成员,为这个结构体指针类型,用于指向下一个节点 。指针域是链表的关键部分,负责各节点之间的纽带作用,就像火车上的车钩,能够把车厢与车厢相互连接起来,形成一个整体 。如果没有它,各节点就是一个个单独的个体,而有了它,则能把这些个体节点连接起来,形成一个完整的链表 。
以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!
「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助:- 2010海淀区一模理综
- 这对“神仙母女”又出新搭配,三木一身牛油果绿大衣,温柔又迷人
- 打底裤下面不一定配雪地靴,现流行这样穿,时髦洋气,冬季穿很美
- 秋天的时尚感怎能少了奶茶色?跟着博主学搭配,每一套都温柔软萌
- 一张图证明:好看的眉毛到底对一个人有多重要!
- 为什么有些人不化妆也好看?多做这一步,素颜也很美
- 最近流行一种裤子,叫“盖住脚一半”,高级还特显腿长
- “衬衫”下面不一定要配牛仔裤,试试这样穿,显瘦不说还不撞衫
- 今冬流行把“大衣裙化”,学会这几种组合,保暖时尚一手抓
- 去泰国旅游,看到这5种美妆好物,建议多囤一点,价不高但真好用