2.LinuxC通讯录实现

一、产品描述

实现一个通讯录完整产品
功能:
1、添加一个人员
2、删除一个人员
3、查找一个人员
4、打印所有人员
5、保存文件
6、加载文件

二、需求分析

逻辑存储方式:看数据如何存储,用什么数据结构,
            并实现对应数据结构的操作
物理存储格式:看文件数据存储的格式,实现读写文件,提取数据

用链表的方式对人员数据进行存储
文件数据存储的格式 name: xxx , phone: xxx

架构层次:支持层,接口层,服务层

1、支持层用来实现链表相关操作和文件的读写
2、接口层实现数据的解报和打包,基于链表操作实现add,del, search,traveral操作
3、业务层调用接口层API实现业务功能函数

接口层作用实现了支持层和业务层分离,这个中间层使得当支持层改变时,业务层不需要发生太大的变化。这是中间层的一大作用,有点和数据库里的三级模式相似哈哈~~

三、代码实现

代码此github链接,欢迎指正
https://github.com/ZSFsmile/contacts/blob/master/contacts.c

四、代码分析

人员对应一个person结构体,并且person结构体是一个链表节点,
支持层:宏函数实现API 包括LIST_INSERT,LIST_REMOVE

接口层:实现person_insert(); person_delete(); person_search(); person_search(); save_file(); parser_token(); load_file();

业务层:实现功能insert_entry(); print_entry(); delete_entry(); search_entry(); save_entry(); load_entry();

代码中出现的文件操作函数也值得学习
fopen();fprintf();fflush();fclose();feof();fgets();fseek();fread();fwrite();ftell()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值