首页
学习
活动
专区
圈层
工具
发布

通讯录实现(中)

前言: 上篇我们通过结构体的构建来创造通讯录的联系人内容以及封装100个联系人,并实现了通讯录的增删查改等基本功能,这篇我们要进行改造的内容就是将固定的100个联系人容量改为不定长,有几个联系人就进行扩容...1.进阶通讯录特点: ①基本的增删查改功能; ②通讯录的空间是不固定的,大小是可以调整的 ③默认能放3个人的信息,如果不够就每次增加2个人的信息 2.实现步骤: (1)定义一个结构体来存储联系人的基本信息例如...printf("****** 0.EXIT ******\n"); }//后面通过case语句来进行你想要的操作 (5)基本功能函数 可以通过http://t.csdnimg.cn/gIo96百行代码实现简单通讯录来查看哦...#define _CRT_SECURE_NO_WARNINGS 1 //contact函数实现contact.c源文件 #define _CRT_SECURE_NO_WARNINGS 1 #include"contact.h...break; default: printf("选择错误,请重新输入\n"); } printf("\n"); } return 0; } 4.运行结果(如图) 5.结语 以上就是通讯录不定容实现增删查改功能的完整代码啦

28710
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    c++实现个人通讯录

    期末考试作业: 主要结合教材1-4章所学知识开发一个个人版通讯录,要求通讯录可以实现以下功能: 添加联系人 删除联系人 查找联系人 联系人列表 通讯录存盘 读出通讯录 退出 功能提示: 为存储通讯录中联系人信息...,需定义一个类Address,成员包括姓名、电话、邮箱地址、地址、邮编等;而且需要定义获取这些成员的成员函数,以及用于添加联系人、判断通讯录是否为空等函数。...初步设想用数组来存储这些联系人信息,数组大小就是通讯录的容量,每个数组元素是一个类对象,当添加联系人时,需要查找数组中是否有空位,如果有,则将联系人添加进来;当删除一个联系人时,将这个位置标记为空,可以用于下一次添加...nu[]);//根据电话号码查找联系人; void searchPostCodedress2(char na[]);//根据姓名查找联系人; void Save(); //实现保存功能...break; } } } } void POSTCODEDRESDBOOK::Save()//实现保存功能

    86450

    【C语言】通讯录实现(下)

    1.进阶通讯录特点(下) ①基本的增删查改功能; ②通讯录的空间不固定,大小可以调整; ③通过C语言文件操作来储存通讯录信息到硬盘上; 2.实现步骤 基本实现步骤同上、中两篇 【[C语言]通讯录实现(中...) - CSDN App】http://t.csdnimg.cn/K5tqO 【【C语言】通讯录实现(上) - CSDN App】http://t.csdnimg.cn/ZrZQk 此外还有文件加载、写入...、关闭等实现如下: (1)保存增加的联系人数据到文件中 void SaveContact(Contact* pc)//保存联系人到文件中 { FILE* pf = fopen("contact.dat...#define _CRT_SECURE_NO_WARNINGS 1 //contact函数实现contact.c源文件 #include"contact.h" int CheckCapacity(Contact...} //关闭文件 fclose(pf); pf = NULL; } 4.结语 三版通讯录循序渐进,从最开始的定容增删查改等功能的实现(上篇),到可以不定容的通讯录(中篇),最后到可以保存数据到文件并从文件中加载保存的联系人

    31510

    【C语言】通讯录实现(上)

    1.通讯录功能:    实现增、删、查、改等基本功能 2.实现步骤: (1)定义一个结构体来存储联系人的基本信息例如:名字、电话、性别等; typedef struct PeoInfo { char...; void InitContact(Contact* pc) //传递通讯录的指针来修改通讯录 { memset(pc->data, 0, sizeof(pc->data));//使用memset库函数来初始化...].age, pc->data[i].tele, pc->data[i].addr);//打印查找到的联系人 } return; } ...更多功能可关注等待后续或者私信我哦~ 3.完整代码实现...--基本功能实现的函数代码  //contact函数实现contact.c源文件 #define _CRT_SECURE_NO_WARNINGS 1 #include"contact.h" int Search_by_name...--整个通讯录的流程框架 //test.c文件--流程 #define _CRT_SECURE_NO_WARNINGS 1 #include"contact.h" void menu()//菜单 {

    28510

    c语言实现通讯录

    前言 目录 前言 一、通讯录: 1.1 通讯录介绍: 1.2 通讯录功能介绍: 效果展示: 二、通讯录的实现: 2.1 通讯录类型的声明: 2.2 通讯录的初始化: 2.3 添加联系人函数: 2.4...查询指定联系人函数: 2.5 删除联系人函数 动态图解: 2.6 修改指定联系人函数 总结 总代码: 主测试区: 函数实现区: 函数声明区: 一、通讯录: 1.1 通讯录介绍: 本次通讯录采用...用一个参数 sz 记录当前联系人个数. 1.2 通讯录功能介绍: 1.添加联系人 2.删除联系人 3.修改联系人 4.查询联系人 5.展示通讯录 效果展示: 二、通讯录的实现: 2.1...我们知道,后面我们需要实现下列功能 删除联系人 修改联系人 这些功能都需要先找到目标联系人,所以我们先实现这个函数,后续需要在删除联系人和修改联系人时,可以直接调用该函数即可, 为了更好让该函数可以被其他函数复用..."请输入要修改的联系人的姓名:\n"); scanf("%s", name); ret = FindName(cont, name); if (ret == -1) { printf("通讯录中没有该联系人

    1.2K30

    C语言通讯录功能的实现

    C语言通讯录功能的实现 一、项目需求: 我们需要一个通讯录,可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址。...并且在通讯录中要求实现下述功能: 添加联系人信息 删除指定联系人信息 查找指定联系人信息 修改指定联系人信息 显示所有联系人信息 以名字排序所有联系人 二、模块化代码 在代码编辑中,为了避免代码过于冗长...建立如下文件 contact.h (头文件,用来引入库函数,存放声明) contact.c (实现通讯录每个部分的功能) test.c (主函数,用于测试通讯录功能是否成功实现) 注意:.c文件需要使用自定义头文件的声明...enum { Exit, Add, Del, Search, Modify, Show, Sort, }; 写在contact.h头文件中 那么循环可以更改为上述名字。...我们在将exit功能和default功能实现一下。

    41410

    【C】—文件版本通讯录的实现

    关于C语言的知识放在专栏:C 小菜坤日常上传gitee代码:https://gitee.com/qi-dunyan ❤❤❤ 个人简介:双一流非科班的一名小白,期待与各位大佬一起努力!...目录 思路 代码实现 完整代码(可自取) 思路 在前面的文章中,已经讲解了动态版本的通讯录的实现,但是动态通讯录存在一个致命缺陷,就是它不能自动保存数据,而前面一篇文章中学到了数据持久化的方法之一:即把数据存放在磁盘文件上...假如我们在退出的时候,通过文件操作,把我们所写的数据存在磁盘文件里,然后我们再进行下一次的使用的时候,在初始化阶段就从磁盘中读取这些数据,这不就实现了。...代码实现 代码的实现并不困难,只不过是在动态内存版本的基础上进行了一些文件操作,用来保存和读取数据。...从文件中读取信息(初始化阶段完成) //读通讯录文件信息 //size_t fread(void* ptr, size_t size, size_t count, FILE* stream) void

    68540

    C语言实现通讯录(超详细)

    7.显示所有联系人信息  2.通讯录的实现 2.1创建两个源文件和一个头文件 首先我们创建contact.c和test.c,contact.h,在头文件中包含了程序所需的各种头文件并且实现对各种函数的声明...InitContact(&con);//初始化通讯录 在contact.h中声明函数: void InitContact(Contact* pc);//初始化通讯录 在contact.c中进行函数的实现...中实现:  首先判断一下通讯录空间是否满了,使用if判断sz是不是等于MAX。...: case DEL: DelContact(&con); break; 在contact.c中实现: 删除联系人先判断一下通讯录是否为空,名字单独创建一个数组,然后输入名字,然后开始在通讯录查找名字...);//查找联系人 在contact.c中实现: 这里其实是使用到了Findbyname这个函数和展示函数,需要注意的是要把下标换成ret。

    78710

    类似 golang 的 c 语言通讯录实现

    简单介绍golang 在云计算场景下可以说是风头无量,而且 golang 的很多设计理念基于 c,大家可能想不到,c 也是可以实现面向对象编程的,我们可以参考 golang 中面向对象来实现一波。...注意:面向对象是一种编程思想或者说设计思想,并不是那个语言特有的,所以哪怕 c 也可以实现这种思想。通讯录整体分析通讯录首先就是需要设计结构体,通讯录的结构体就比较简单,首先就是通讯录的人和电话。...person *person}func(contacts *cts)person_delete(person **ppeople, person *ps){...}因此说,面向对象其实是一种思想,c 语言这样的面向过程的语言也是可以实现这样的开发...不过对于通讯录操作跟普通的增删改查还是不太一样的,我们通讯录需要持久化,简单来说就是刷新到硬盘上,这最简单涉及两个操作,一个是把当前的通讯录持久化到硬盘文件,另一个就是将硬盘中文件加载到内存中数据结构中...,知道很多人会说,都什么年代了,还在做通讯录这种老掉牙的东西,这里主要是为了引入两个方向问题:1、使用向 c 语言其实也可以说实现面向对象,面向对象其实一个思想。

    28810

    通讯录管理系统实现(C++版本)

    1.菜单栏的设置 (1)我么自定义了一个showmenu函数,用来打印输出我们的菜单栏; (2)菜单栏里面设置一些我们的通讯录里面需要用到的功能,例如增加联系人,删除联系人等等 2.退出功能的实现 在我们的主函数里面...这个结构体是把所有的联系人放进去,并且记录联系人的个数(使用的是int变量),我们可以设置通讯录里面的人数的上限,我们可以使用宏的方式进行定义,这样当通讯录的规模进行变动的时候,我们可以直接进行修改;...(3)主函数里面对应的参数的设置 这个里面我们首先要创建一个结构体的变量,初始化里面的size,也就是对应的通讯录里面的人数 (4)添加联系人的函数 因为我们的通讯录设置的最大的人数上限是1000,所以如果人数超过...,如果存在就返回对应的下标,如果不存在就直接-1;函数的实现如下: 相当于就是在通讯录里面进行遍历的操作,看看我们输入的姓名是否和通讯录里面一致的姓名符合,如果符合,就表明我们输入的联系人在通讯录里面是存在的...如果并存在就会提示没有这个人 7.修改联系人 我们首先要判断修改的联系人是否存在,如果存在就重新进行输入并且进行赋值; 我们需要对每一项信息进修重新录入和赋值; 8.清除联系人 我们只是逻辑上面把size的数值变为0,就可以实现清除的目的

    24700

    C语言-手机通讯录的实现(静态版)

    1.通讯录需要哪些文件 一共三个文件:头文件、通讯录函数源文件、主函数源文件。 1)头文件:用来进行函数声明、以及类型的定义。...2)通讯录函数文件:用来实现我们所需要的函数的。 3)主函数文件:程序逻辑实现、编译执行的文件。...如下图所示: 2.通讯录的实现步骤 2.1 打印主界面 void menu() { printf("****************************************"); printf...*******************************"); printf("****************************************"); } 2.2 主函数的逻辑实现...主函数内使用dowhile循环体来实现这样的一个循环,具体的不同功能,采用了switch语句,通过输入不同数值来进入不同的功能区。

    34700

    C语言-手机通讯录的实现(动态版)

    静态版的通讯录实现会出现一个问题就是我们一开始就创建了一个1000容量的通讯录,这样会使得空间极大的浪费,也有可能会出现以下的问题,因此我们考虑动态开辟内存空间,根据用户的实时情况来进行扩容等问题。...2)通讯录函数文件:用来实现我们所需要的函数的。            3)主函数文件:程序逻辑实现、编译执行的文件。...2.通讯录的实现步骤 2.1 打印主界面 void menu() { printf("****************************************\n"); printf("**...         主函数内使用dowhile循环体来实现这样的一个循环,具体的不同功能,采用了switch语句,通过输入不同数值来进入不同的功能区,由于需要对堆区开辟的空间进行释放,在静态实现的基础上增加了...2.5 增加用户信息函数 void addcontact(Contact* pa) //增加用户信息 { if (pa->sz == pa->capacity) { printf("成员已满,扩容中\

    32810

    【C语言项目实战】使用单链表实现通讯录

    为了更好地满足这些需求,我们有必要对通讯录的实现方式进行深入研究和探索。 在众多的数据结构中,单链表以其独特的优势成为了实现通讯录的一种理想选择。...二、单链表的基本概念 通讯录项目的实现直接借用了单链表实现的头文件SLinkList.h 和 源文件SLinkList.c 关于单链表的问题请参照前置文章 【数据结构/C语言】单链表的实现-CSDN...声明并重命名 接下来,就可以来实现通讯录项目的方法了 五、通讯录的接口 通讯录的基本方法接口包括 初始化与销毁通讯录 数据的导入导出 对联系人的增删改查 以及展示通讯录中的联系人信息 需要对单链表数据进行修改的函数...单链表方法实现源文件 //SLinkList.c //单链表方法实现源文件 #include"SLinkList.h" //void SLTPrint(SLTNode* phead)//链表打印 //{...通讯录方法实现源文件 //Contact.c #include"Contact.h" #include"SLinkList.h" //导入数据到通讯录 void LoadContact(contact*

    32210

    C 链表 - linux 如何实现

    链表是基本数据结构, 一开始学习数据结构时, 我一般这么定义, 对应实现从头或尾插入的处理函数, struct int_node_old { int val; struct int_node_old...查看linux的源码, 发现linux中也为我们提供了相似的实现(源码), 把一些共性统一起来。 类是 python 中for_each处理,有些意思。...linux 下的链表定义在文件 include/linux/types.h, 采用的是双向列表 struct list_head { struct list_head *next, *prev;...list 利用这个定义, 我定义了一个自己的list数据结构, 并copy了一些接口实现,感受下,linux 是如何管理链表的。...另外一种做法是定义list_head中, 包含一个成员变量,指向其所属,FreeRTOS是如此做的。

    3.1K30

    并发中的同步--WCF并发体系的同步机制实现

    在《WCF 并发的本质》中,我们谈到了WCF提供的三种不同的并发模式,使开发者可以根据具体的情况选择不同的并发处理的策略。...串行执行即同步执行,在WCF并发框架体系中,这样的同步机制是如何实现的呢?...一、Concurrency.Single模式下的同步实现 实际上,WCF并发框架体系下针对Concurrency.Single模式的实现非常简单,其本质就是对InstanceContext进行加锁。...二、Concurrency.Reentrant模式下的同步实现 在ConcurrencyMode.Single并发模式下,从请求被WCF服务端运行时分发给相应的InstanceContext到请求处理完成的整个过程中...在下一篇文章中,我将从具体的实例上下文模式的角度来剖析WCF的并发,敬请期待。

    1K60

    c语言通讯录实现,静态和动态扩容版本

    我们可以先想一下通讯录的信息包含有哪些 姓名 年龄 性别 地址 手机号…等(我们可以额外增加其他的内容) 通讯录的一些功能实现如:增加联系人、修改联系人、查看联系人、整理联系人(由首字母开始向后...)、查找联系人和删除联系人 首先我们需要创建三个文件进行整理 test.c用来测试代码正常运行 contact.h作为头文件来进行函数分装的声明 contact.c来进行函数的实现功能...(创建通讯录) 因为我们通讯录中需要包含的信息有很多,我们可以使用struct来自定义类型,后续可以通过结构体成员来访问 结构体类型我们只是声明,我们可以将声明放到头文件中 这里我们可以将数组的元素...Contact con;//分装自定义类型 4.初始化通讯录信息 我们将Contact con中的结构体成员和成员个数初始化为0 main.c InitContact(&con); 这里我们声明一下...pc);//查找指定联系人 void ModifyContact(Contact* pc);//修改联系人 void SortContact(Contact* pc);//整理联系人 Contact.c函数实现

    20510
    领券