【C语言进阶】C语言实现通讯录 升级版 { 含动态扩容/销毁/信息保存功能 }(强烈建议收藏食用)

本文介绍了C语言实现的通讯录升级版,支持动态扩容和信息保存功能。解决了之前静态限制1000人存储的问题,允许无限增加联系人,并在退出时自动保存数据。新增了清空所有联系人和保存联系人信息的功能,详细阐述了通讯录菜单、主函数、枚举选项、内容定义等关键部分的实现。
摘要由CSDN通过智能技术生成

前言:

  • 由于之前实现的通讯录在存储方面只能支持静态的1000人的存储量,但是如果联系人较少,则会造成较大的内存浪费。
  • 而当联系人一旦超过1000时,就不能再继续存储信息了。因此我将通讯录改成动态扩容版本,就不会减少内存的浪费,同时也可以无限增加通讯录的内部信息。
  • 之前的通讯录在程序退出后内部的数据就会消失,再次打开程序后只能重新输入数据,为此我们增加了一个保存功能来保存信息。

此版本将实现的功能:

  1. 新增联系人
  2. 查找联系人
  3. 删除联系人
  4. 修改联系人
  5. 查看所有联系人
  6. 清空所有联系人(新增)

  7. 按姓名排序联系人
  8. 保存联系人信息(新增)

注:之前版本写过的代码就不多做赘述了

如果有代码上的疑惑可以移步去 手把手教你用C语言实现通讯录(简易版  查看

本次仅对新增的内容进行解释和说明

通讯录(C语言升级版)

目录

一、通讯录菜单

二、通讯录主函数

三、枚举主函数内部选项

四、定义通讯录内容

五、全局变量声明

六、初始化通讯录

七、读取通讯录函数

八、通讯录扩充函数

九、头文件

十、实现通讯录新增功能

(一)清空所有联系人

(二)保存联系人信息

十一、完整代码


一、通讯录菜单

新增:

清空所有联系人选项(7)

保存联系人信息选项(8)

 代码如下: 

void menu()
{
	printf("*********************************\n");
	printf("**      1. 添加联系人          **\n");
	printf("**      2. 删除联系人          **\n");
	printf("**      3. 查找联系人          **\n");
	printf("**      4. 修改联系人          **\n");
	printf("**      5. 显示所有联系人      **\n");
    printf("**      6. 按姓名排序联系人    **\n");
    printf("**      7. 清空所有联系人      **\n");
    printf("**      8. 保存联系人信息      **\n");
	printf("**      0. exit                **\n");
	printf("*********************************\n");
}

 执行结果:


二、通讯录主函数

 新增:

case 分支中 清空通讯录选项 & 清空实现函数

case 分支中 保存通讯录选项 & 保存实现函数

case 分支中 退出时自动保存实现函数

 代码如下: 

int main()
{
    int input = 0;
    //创建通讯录
    struct Contact con;//通讯录
    //初始化通讯录
    InitContact(&con);
    do
    {
        menu();
        printf("请选择:>");
        scanf("%d", &input);
        switch(input)
        {
        case ADD:
            AddContact(&con);
            break;
        case DEL:
            DelContact(&con);
            break;
        case SEARCH:
            SearchContact(&con);
            break;
        case MODIFY:
            MoidfyContact(&con);
            break;
        case SHOW:
            ShowContact(&con);
            break;
        case DESTROY:
            DestroyContact(&con);
            break;
        case SORT:
            SortContact(&con);
            break;
        case SAVE:
            SaveContact(&con);
            break;
        case EXIT:
            SaveContact(&con);
            printf("退出通讯录\n");
            break;
        default:
            printf("选择错误\n");
            break;
        }
    } while (input);
    return 0;
}


三、枚举主函数内部选项

新增:

enum枚举 选择中新增 DESTROY  &  SAVE   的选项,通过枚举的方法对应 main 函数中的 case 分支。

 代码如下: 

//枚举:选择功能
en
  • 71
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 63
    评论
评论 63
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HyDraZya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值