c语言静态通讯录、动态通讯录、文件通讯录详解

c语言呢,真的是个好玩的东西。我曾经拿c语言编写过扫雷、三子棋的游戏,没有能将这些游戏思路的编写成博客是一件不太好的事情。在今后呢,我会在意料之外的日子,更新这两款游戏编程思路及代码的博客。

本篇博客将以拿c语言编写静态通讯录、动态通讯录、文件通讯录的思路及代码为主。倾情推出,含泪讲解。(因为东西内容是在太多,但是不写不可以。

c语言静态通讯录、动态通讯录、文件通讯录详解_第1张图片

一.静态通讯录思路加代码

静态通讯录有七个功能,分别是每次增加一个联系人、每次根据姓名定位减少一个联系人(这里,不考虑通讯录好友有重名的现象,只是最简单的功能实现)、根据姓名查找联系人并打印出该联系人的全部信息、根据姓名锁定联系人修改其信息、打印出通讯录所有的联系人、根据姓名字符串排序、退出通讯录

首先,制定菜单,根据多个printf输出实现。在测试函数主体内部,通过对do..while循环的使用,输入选项选择相应的功能。其中的小妙招是while循环判断条件为选择功能按键不为0,当为0时提醒退出通讯录。优化部分:switch内部的数字选项,可以用enum枚举的形式定义常量标识符,通过标识符直接明了每个数字选项对应的功能。

c语言静态通讯录、动态通讯录、文件通讯录详解_第2张图片

c语言静态通讯录、动态通讯录、文件通讯录详解_第3张图片

大体框架构建好后,就要实现填充其中的功能。其实,主要就是要完成几个函数的声明定义和编写。

第一,根据题目要求设置好变量。

c语言静态通讯录、动态通讯录、文件通讯录详解_第4张图片

c语言静态通讯录、动态通讯录、文件通讯录详解_第5张图片

第二,开始补充各种函数。

1.认真思考,通讯录需要初始化。初始化通讯录,可以再创建变量时直接全部初始化为0,如上图所示。亦可以写个初始化函数。建议写初始化函数,在创建动态通讯录和文本通讯录都有相应的便利之处。

c语言静态通讯录、动态通讯录、文件通讯录详解_第6张图片

2.各种功能的函数实现。

增加一个联系人

c语言静态通讯录、动态通讯录、文件通讯录详解_第7张图片

 显示一个联系人

c语言静态通讯录、动态通讯录、文件通讯录详解_第8张图片

删除一个联系人

c语言静态通讯录、动态通讯录、文件通讯录详解_第9张图片

 

查找联系人

c语言静态通讯录、动态通讯录、文件通讯录详解_第10张图片

 

修改联系人信息

c语言静态通讯录、动态通讯录、文件通讯录详解_第11张图片

 

根据姓名字符串排序联系人

c语言静态通讯录、动态通讯录、文件通讯录详解_第12张图片

 

二.动态通讯录思路加代码

动态通讯录较静态通讯录,在定义Contact中会有不同,Peo类型不再是数组,而是指针,可以通过使用malloc、calloc函数开辟空间,通过使用realloc函数增加空间。并且还要多一个成员变量容量,通过通讯录实际人数和可容量人数比较来判断是否需要增容。增容的判断和发生时在增加人数的函数中发生的。并且在退出通讯录的时候要销毁开辟的空间。

定义Contact的结构体

c语言静态通讯录、动态通讯录、文件通讯录详解_第13张图片

 初始化通讯录 

c语言静态通讯录、动态通讯录、文件通讯录详解_第14张图片

 

增加一个联系人

c语言静态通讯录、动态通讯录、文件通讯录详解_第15张图片

 

销毁开辟的空间

c语言静态通讯录、动态通讯录、文件通讯录详解_第16张图片

 

三.文件通讯录思路加代码

文件通讯录较之静态通讯录、动态通讯录无疑多了能将联系人的资料信息存放在一个文件当中去,保证程序第二次执行仍旧可以看到上一次执行输入的联系人的信息。

在初始化阶段就有加载通讯录文件信息的功能,在退出通讯录的时候要有保存通讯录联系人信息到文件的功能上去。

保存联系人信息到文件上

c语言静态通讯录、动态通讯录、文件通讯录详解_第17张图片

 

加载通讯录

再来仔细地分析分析加载通讯录的功能是如何实现的。读取文件中的内容然后将文件中的内容再拷贝到pc->peo的空间中去。但是有一个问题,初始化pc->peo的空间只允许存储三个联系人的信息,如果文件中联系人个数远超于3呢,该怎么办呢?不够就继续增容吗。

c语言静态通讯录、动态通讯录、文件通讯录详解_第18张图片

 

你可能感兴趣的:(c语言)