在上一篇文章中我们了解了顺序表的基础,我们接下来可以基于顺序表完成通讯录项目。
一,对于通讯录的实现
后面会附上码云,方便大家阅读理解。
在上一篇顺序表基础中, 我们将int重命名为SLdatetype,在实现通讯录中我们将struct重命名为SLdatetype,下面先创建一个contact.h,来定义我们需要的结构体
这样就根据表中所需的功能定义我们的结构体
下一步在我们的Seqlist.h中把顺序表中的int 替换为我们刚才创建的结构体
顺序表中的所有内容都是结构体,改变一个内容,内层的结构体都会受到影响
重命名结构体为contact更好区分
下面我们正式开始了。
1,通讯录的初始化
在contact.h中声明函数
test进行函数测试
直接调用我们之前在顺序表中的初始化函数,这个是在新的.c文件中进行通讯录函数的实现。
2,通讯录的销毁
声明函数
传地址
也是直接调用顺序表中已经实现的函数
3,通讯录的添加
先进行函数声明
传地址
我们创建一个之前定义存储那些数据(姓名。。等),输入每个字段对应的数据,
那我们如何把这些数据放到顺序表呢,
用之前的尾填函数,把一个一个结构体直接放到顺序表中,这样就完成了通讯录的添加。
4,通讯录的展示
依旧是声明函数
进行传地址
结构体的访问
展示完成;
5,通讯录的删除
还是先声明函数
传地址进行测试
在函数进行之前我们需要一个查找函数来确定删除的数据是否存在,因为删除联系人数据的时候先删名字之后就一并删除了,我们传过去需要删除的名字,用字符串比较函数strcmp,在遍历顺序表内的结构体中的name如果存在返回对应顺序表的下标,没有就返回一个无法访问的数。
在函数中如果存在就调用顺序表中的SLErase函数进行指定位置的删除,没有则提前返回。
任务效果图如上。
6,通讯录的查找和修改
1.查找
还是先声明函数
传地址
和上文中findname函数的原理相同找到下标并且打印那一列
任务效果图如上。
2,修改
依旧是声明函数
传地址
和前面添加的思路一模一样。
任务效果图。
这时候我们通讯录的所有功能就实现了。
下面修改test.c函数让他更加美观,这里就不做过多介绍了
下面附上顺序表基础和通讯录项目的gitee