数据结构--基于顺序表实现通讯录项目
欢迎阅读本篇学习笔记。作为计算机专业的学习记录本文将系统梳理通讯录项目的相关知识点从基础概念到代码实现逐步展开便于后续复习巩固这里我们会用到上篇的知识如果其中有不懂的大家可以翻看一下我的上篇博客。欢迎大家在评论区交流探讨感谢大家的阅读与支持show time话不多说我们直接进入正题在这里我们先明确通讯录一个完整的联系人的信息包含她/他的姓名性别年龄地址还有最重要的电话号码。把这些核心信息梳理好为后续项目进行做好准备。通讯录里面存储的是一个个联系人的数据我们也可以把通讯录看成是是一个顺序表先前我们讲到顺序表里面存储的数据可以是任意类型的像整型char类型等等他们都是比较单一的这些都是内置类型。当然了为了实现我们的通讯录我们让顺序表里面去存储结构体类型里面的一个单元就是一个联系人的数据。接下来我们来定义联系人的数据结构其中包含她/他的姓名性别年龄地址电话。并且为了后续方便使用我们给他进行一个名称的更改--peoInfo。这样我们一个顺序表就定义好了之前我们顺序表里面存储的是int类型我们通讯录则是需要结构体类型我们再对它进行修改。现在我们来看一下需要对通讯录进行怎样的一系列的操作内容如下通讯录初始化我们先来看通讯录的初始化。首先我们对顺序表进行一个名字的转化使其变成通讯录这样我们接下来的看似是对通讯录的操作本质上还是对顺序表进行的增删查改。为了防止头文件的互相包含我们需要进行一下前置声明。由于之前我们已经实现过了顺序表的初始化了。这里我们在实现通讯录的初始化的时候直接调用所需要的函数即可这里为了大家观看同时也把顺序表的初始化代码拿了过来。初始化完成后我们对它进行一个简单的测试。对其进行调试后我们可以看到通讯录已经初始化成功。通讯录的销毁有了通讯录的初始化自然少不了其销毁。销毁和初始化一样我们已经实现过了再次调用顺序表的销毁即可。接下来我们让level上升一丢丢进行通讯录的数据插入。首先我们需要获取用户的输入的内容姓名性别年龄电话地址。当用户输入完成后我们调用顺序表的插入方法我们使用尾插头插在指定位置插入都是没有问题这里我使用的是顺序表的尾插。通讯录的插入可以看到在使用scanf函数的时候有的地方使用到了取地址符有的地方没有。这里我们简单了解一下scanf的语法形式它的第二个参数要求传递的是变量的地址而数组名即是数组首元素的地址所以不需要。我们再来看一下刚才的结构体。可以看到除了age是int类型的其他都是数组所以我们只需对其变量取地址即可。通讯录的删除接下来我们进行的是通讯录数据的删除。我们删除联系人通常是根据他/她的姓名来查找并进行删除的所以在删除之前我们先写一个函数FindByname。这里用户输入的名字在与通讯录存储的名字在进行比较时我们使用到strcmp函数因为这里的name与用户输入的name都是字符串字符串与字符串比较我们就使用strcmp当它们匹配时strcmp返回0不相同时返回非零。代码如下有了名字的查找我们就可以进行下一步----通讯录联系人的删除。思路也是比较简单的有了刚才的函数加持最后调用一下顺序表的数据删除即可。通讯录的展示我们希望能让通讯录里面的数据可以直观的展示上我们的屏幕上让它按照我们之前姓名性别格式那样每个所对应的数据显现出来这里我们先写一个表头再让它依次打印出来。代码如下我们随机测试一下。这里的打印格式大家可以自行去调整让它更美观一点。通讯录的修改当然了一个通讯录我们可以往里面存联系人对其删除有时候联系人也会发生变化这时候就需要我们对其进行修改。首先这个联系人是必须是要存在的所以我们再次使用到函数FindByname判断我们所要修改的联系人是否存在如果联系人存在我们再对其进行相应的修改。通讯录的查找最后我们来到了通讯录操作的最后一步--通讯录的查找。这里的查找相较于刚才那个删除的查找多了联系人数据的打印道理是一样的这里我们就直接上代码了。OK以上就是我们对于通讯录的所有操作了。以为到这就结束了嘛其实不然我们这里要实现的是一个项目项目不可能单单只有测试最终我们是要体现在一个界面上的。接下来我们就来实现一下。最终项目实现一个完整通讯录里面包含了很多方法我们希望它可以像下图展示的一样根据用户不同的选择去实现不一样的操作。为了使用户看到上图的界面我们先来编写一个相应的菜单。有了菜单我们就可以选择进行通讯录的相关操作了当然我们这个菜单不可能只是昙花一现只展示那么一次所以我们使用到do-while循环。最后再使用switch语句使其能根据用户不同的选择进行相应的操作。代码如下:这篇内容就先整理到这里这次把顺序表应用的相关知识整理了一下为了方便自己日后复习回顾也希望能给正在学习的小伙伴一些参考。如果文中有理解不到位或是书写有误的地方欢迎大家在评论区指出一起交流共同进步。谢谢大家
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2516989.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!