当前位置: 首页 > wzjs >正文

邢台专业网站建设报价河南纯手工seo

邢台专业网站建设报价,河南纯手工seo,seo优化轻松seo优化排名,修改wordpress后台路径【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…

在这里插入图片描述

【作者主页】siy2333
【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是进阶开发者,这里都能满足你的需求!
【食用方法】1.根据题目自行尝试 2.查看基础思路完善题解 3.学习拓展算法
【Gitee链接】资源保存在我的Gitee仓库:https://gitee.com/siy2333/study


文章目录

    • 前言
    • 功能升级介绍
      • 数据保存功能
      • 数据读取功能
    • 技术实现细节
      • 文件存储格式
      • 保存数据实现
      • 读取数据实现
    • 用户体验优化
      • 操作提示
      • 错误处理
    • 测试与验证
    • 总结


前言

在之前的版本中,我们的通讯录系统已经实现了增加、删除、查找、修改、显示以及排序联系人信息等基本功能。然而,数据存储仅依赖于内存,一旦程序关闭,所有数据都将丢失。这在实际使用中显然是不够的,用户需要一个能够长期保存数据的通讯录。今天,我们将通过新增数据持久化功能,解决这个问题,让通讯录系统更加实用。
点击这里跳转前文:[c语言日寄]基于C语言的命令行通讯录管理系统


功能升级介绍

数据保存功能

用户可以通过选择菜单中的“保存数据”选项,将当前通讯录中的所有联系人信息保存到本地文件中。系统会将联系人的性别、年龄、电话号码、姓名和地址等信息按照一定的格式写入到文件中。在保存之前,系统会提示用户确认操作,避免误操作导致数据丢失。如果用户确认保存,系统会覆盖原有数据文件,确保数据的更新。这一功能的实现,让用户不再担心程序关闭后数据丢失的问题,大大提高了数据的安全性。

数据读取功能

为了方便用户在不同设备或不同时间使用通讯录,我们新增了数据读取功能。用户可以通过选择菜单中的“读取数据”选项,从本地文件中读取之前保存的联系人信息。系统提供了两种读取方式:覆盖原有内容和在原有内容后添加内容。如果用户选择覆盖原有内容,系统会先清空当前通讯录中的所有数据,然后从文件中读取数据并添加到通讯录中;如果用户选择在原有内容后添加内容,系统会直接将文件中的数据添加到当前通讯录的末尾。


技术实现细节

文件存储格式

为了确保数据的可读性和可扩展性,我们采用了简单的文本文件格式来存储联系人信息。每个联系人的信息占用一行,字段之间用空格分隔,具体格式为:性别 年龄 电话号码 姓名 地址。这种格式易于理解和解析,同时也方便用户手动编辑和查看数据文件。

保存数据实现

在保存数据时,系统首先通过fopen函数以写模式打开本地文件“address_book_data.txt”。如果文件打开失败,系统会提示用户并返回错误信息。如果文件打开成功,系统会遍历通讯录链表,将每个联系人的信息通过fprintf函数按照指定的格式写入到文件中。写入完成后,关闭文件并提示用户保存成功。

ADD* save(ADD* head)
{// 确认操作system("cls");printf("* 确定要保存数据吗?这将会覆盖原有数据:(Y/N)");while (getchar() != '\n');char check = 0;if (scanf("%c", &check) <= 0){perror("save - scanf");return NULL;}if (check != 'Y'){system("cls");printf("已取消保存。\n");printf("---------------\n");return NULL;}// 保存FILE* data = fopen("address_book_data.txt","w");if (data == NULL){perror("save - fopen");return NULL;}ADD* now = head->next;while (now != NULL){fprintf(data, "%c %d %s %s %s\n", now->sex, now->age, now->phone, now->name, now->address);now = now->next;}fclose(data);system("cls");printf("数据保存成功!\n");printf("-----------------\n");return head;
}

读取数据实现

在读取数据时,系统首先通过fopen函数以读模式打开本地文件“address_book_data.txt”。如果文件打开失败,系统会提示用户并返回错误信息。如果文件打开成功,系统会根据用户选择的读取方式,执行相应的操作。

  • 如果用户选择覆盖原有内容,系统会先调用clear函数清空当前通讯录链表,然后通过fscanf函数从文件中逐行读取联系人信息,并动态分配内存创建新的联系人节点,将读取到的信息存储到节点中,最后将新节点链接到链表末尾。
  • 如果用户选择在原有内容后添加内容,系统会直接将文件中的数据添加到链表末尾。读取完成后,关闭文件并提示用户读取成功。
ADD* read(ADD* head)
{system("cls");
again:printf("# 请选择读取方式:\n");printf("  1.覆盖原有内容\n");printf("  2.在原有内容后添加内容\n");printf("----------\n");printf("  0.取消读取\n");printf("# 请输入操作数:");int mode = 0;if (scanf("%d",&mode) == 0){perror("read-scanf");return NULL;}switch (mode){case 1:// 清空链表clear(head);case 2:read_2(position(head));break;case 0:system("cls");printf("已取消读取。\n");printf("-------------\n");return NULL;default:system("cls");printf("操作符错误,请从新输入:\n");printf("-------------\n");goto again;//重新启动函数}system("cls");printf("读取成功\n");printf("-------------\n");return head;
}

用户体验优化

操作提示

在数据保存和读取过程中,系统会通过清晰的操作提示引导用户进行操作。例如,在保存数据时,系统会提示用户确认操作,避免误操作导致数据丢失;在读取数据时,系统会提示用户选择读取方式,让用户能够根据自己的需求进行操作。这些操作提示不仅提高了用户操作的准确性,也增强了用户体验。

错误处理

在文件处理过程中,可能会出现各种错误情况,如文件打开失败、读写错误等。为了提高系统的稳定性和可靠性,我们在代码中加入了详细的错误处理机制。如果出现错误,系统会通过perror函数输出错误信息,让用户能够及时了解错误原因,并采取相应的措施。同时,系统会在出现错误时及时终止操作,避免对数据造成进一步的损坏。


测试与验证

为了确保新增功能的稳定性和可靠性,我们对数据保存和读取功能进行了全面的测试。测试用例包括但不限于以下几种情况:

  1. 保存数据测试
    • 保存空通讯录数据,验证文件是否正确生成且为空。
    • 保存包含多个联系人的通讯录数据,验证文件内容是否正确。
    • 连续多次保存数据,验证数据是否正确覆盖。
  2. 读取数据测试
    • 读取空文件,验证系统是否正确提示用户文件为空。
    • 读取包含多个联系人的数据文件,验证数据是否正确读取并添加到通讯录中。
    • 读取格式错误的文件,验证系统是否正确提示用户文件格式错误。
    • 覆盖原有内容读取数据,验证原有数据是否被正确清空并替换为新数据。
    • 在原有内容后添加内容读取数据,验证新数据是否正确添加到通讯录末尾。

经过测试,新增功能在各种情况下均表现良好,能够满足用户对数据持久化的需求。


总结

本次通讯录系统的升级,新增了数据保存和读取功能,实现了数据的持久化存储。这一功能的实现,不仅解决了用户数据丢失的问题,还提高了数据的可移植性,让用户在不同设备之间能够轻松地同步通讯录数据。

关注窝,每三天至少更新一篇优质c语言题目详解~

[专栏链接QwQ] :⌈c语言日寄⌋CSDN
[关注博主ava]:siy2333
感谢观看~ 我们下次再见!!

http://www.dtcms.com/wzjs/519157.html

相关文章:

  • 做网站需要用到什么技术seo网络推广专员招聘
  • 遵义网站建设有限公司seo关键字排名
  • 怎样在网站做推广2345网址导航中国最好
  • 南充网站建设狐灵网络站长工具国产
  • ui做的好的网站有哪些内容cps推广是什么意思
  • 视觉中国网站建设公司口碑营销的名词解释
  • 青岛cms模板建站免费网站java源码大全
  • 深圳网站建设服务哪家专业全网推广外包公司
  • 企业网站维护合同如何做好口碑营销
  • id创建网站360搜索首页网址是多少
  • wordpress网站防伪查询模板2345网址大全设主页
  • 青岛公司建设网站跨境电商哪个平台比较好
  • wordpress内容关键字seo专业技术培训
  • 网站的现状辽源seo
  • 企业信息门户网站建设方案海外广告联盟平台推广
  • 服装 营销型网站案例seo优化包括什么
  • 焦作网站建设活动软文模板
  • 有什么网站专门做美食的吗个人网页制作成品欣赏
  • 网站开源系统bt kitty磁力猫
  • 文字logo免费设计在线生成优化关键词步骤
  • 江苏专业做网站的公司免费推广的预期效果
  • 中国最厉害的室内设计师seo做什么网站赚钱
  • 做常识的网站动态网站的制作与设计
  • 怎样自己做卖商品的网站自助建站网
  • 一流的网站建设搜索引擎外部优化有哪些渠道
  • 深圳企业网站建设制作网络公司外贸网站设计
  • 叮当快药网站谁做的网站建设推广服务
  • 在深圳做网站平台需要什么备案怎么查询最新网站
  • 万能进销存软件免费版seo网站怎么优化
  • 网店代运营收费标准佛山优化网站关键词