单链表制作通讯录

news2024/11/23 3:39:37

1 问题

通讯录具有输入信息,显示信息,查找以姓名作为关键字,删除信息。

2 方法

实现一个基于面向对象思想的,具有添加、查看、删除、修改、查找、保存数据功能的通讯录程序。

class Node:
   def __init__(self, name, phone_number):
       self.name = name
       self.phone_number = phone_number
       self.next = None
class ContactList:
   def __init__(self):
       self.head = None
   def add_contact(self, name, phone_number):
       new_contact = Node(name, phone_number)
       new_contact.next = self.head
       self.head = new_contact
   def display_contacts(self):
       current = self.head
       while current:
           print(current.name + " : " + current.phone_number)
           current = current.next
   def search_by_name(self, name):
       current = self.head
       while current:
           if current.name == name:
               return current.phone_number
           current = current.next
       return "联系人未找到"
   def delete_contact(self, name):
       current = self.head
       if current and current.name == name:
           self.head = current.next
           return
       while current and current.next:
           if current.next.name == name:
               current.next = current.next.next
               return
           current = current.next
       return "联系人未找到"

3 结语

8961316205b6e81bf55277803caba2fb.png

联系人信息包括姓名、性别、手机号。
设计一个Friend类,该类中包括__ init_ _( )、 welcome( )、add_ friend( )、show_ _friend( )、 del_ friend( )、modify_ _friend( )、find_ _friend( )、 save_ _to_ file( )、recover_ data( )共9个方法。
数据保存到文件"backup.data"中,程序运行时自动从文件恢复数据,若没有数据则捕获异常,新建一个空白文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/910772.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HCIP的交换机(STP,VRRP)实验

题目 拓扑图 链路聚合 LSW1 [lsw3]interface Eth-Trunk 1 [lsw3-Eth-Trunk1]trunkport GigabitEthernet 0/0/3 0/0/4 [lsw3-Eth-Trunk1]q [lsw3]vlan batch 1 2 [lsw3]interface Eth-Trunk 1 [lsw3-Eth-Trunk1]port link-type trunk [lsw3-Eth-Trunk1]port trunk allow-pass…

多线程与并行计算(python与c++)基础入门篇

目录 1.简介 1.1什么事多线程 1.2概念 2.python多线程基础知识讲解 创建线程: 启动线程: 线程函数/方法: 线程同步: 线程间通信: 线程结束与等待: 线程常用方法: 3.c多线程基础知识…

无涯教程-PHP - ereg()函数

ereg() - 语法 int ereg(string pattern, string originalstring, [array regs]); ereg()函数在string指定的字符串中搜索pattern指定的字符串,如果找到pattern,则返回true,否则返回false。搜索对于字母字符区分大小写。 可选的输入参数re…

拒绝摆烂!C语言练习打卡第五天

🔥博客主页:小王又困了 📚系列专栏:每日一练 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、选择题 📝1.第一题 📝2.第二题 &#x1f4d…

论文复现--关于yolov8在姿态估计方面的研究

分类:动作捕捉 github地址:https://github.com/ultralytics/ultralytics 所需环境: Windows10,CUDA11.6,conda 4.13.0,Visual Studio 2017; 目录 环境搭建Conda list使用测试 环境搭建 # 创建环…

企业出海营销:如何借助HubSpot将潜在用户引导为忠实客户

在全球化的商业环境中,企业出海营销已成为实现可持续增长的重要策略之一。然而,成功吸引潜在客户并将其转化为忠实客户并非易事。 这正是HubSpot这款强大的综合性平台发挥作用的时候,它不仅帮助企业引导潜在客户进入销售漏斗,还在…

PyQty5—第一课:安装及简单的界面设计(附代码)

在日常办公中我们将经常使用的代码与PyQty5进行配合,从而设计出GUI的小程序,这样不经界面好看而且可以进行打包,发给自己的亲朋好友们进行使用,那么今天我们就来进行PyQty5的第一节课 1、首先我们需要安装PyQty5的库 库名安装si…

Jmeter压测 —— 动态数据关联

在进行压测时,经常需要对一些动态的数据进行数据关联。要不然容易造成脚本回放失败,或者多个虚拟用户执行时,只有一个用户运行成功。如下图:未关联数据时,脚本参数及回放结果 因此,在进行压测时&#xff0c…

opencv 进阶15-检测DoG特征并提取SIFT描述符cv2.SIFT_create()

前面我们已经了解了Harris函数来进行角点检测,因为角点的特性,这些角点在图像旋转的时候也可以被检测到。但是,如果我们放大或缩小图像时,就可能会丢失图像的某些部分,甚至有可能增加角点的质量。这种损失的现象需要一…

纯js封装一个弹出窗口

先上效果图: 左图是默认的样式(默认标题是黑色的。不是橙色的。截图时我改了点东西所以变了色。。。)。右图是通过传递参数自定义了外观的样式。 封装实现: function showWindow() {this.rnd Math.random();this.obj null;this.title ;this.content …

NER(命名实体识别)的介绍与使用--附源码

概述 本文将向您简要介绍命名实体识别,这是一种用于识别文本文档中存在的实体的流行方法。本文针对 NLP 领域的初学者。在本文末尾,已经实现了预训练的 NER 模型来展示实际用例。 为什么是NER? 图1 通过观察上

排序算法之详解选择排序

引入 选择排序顾名思义是需要进行选择的,那么就要问题了,选择到底是选择什么呢?选择排序的选择是选择数组中未排序的数组中最小的值,将被选择的元素放在未排序数组的首位 如果你对 ‘未排序数组’ , ‘选择’ 的概念不理解&#…

C++中机器人应用程序的行为树(ROS2)

马库斯布赫霍尔茨 一、说明 以下文章为您提供了对机器人应用程序或框架中经常使用的行为树的一般直觉:ROS,Moveit和NAV2。了解行为 Tress (BT) 框架的原理为您提供了在游戏领域应用知识的绝佳机会。BT可以与Unity或Unreal集成。 由…

淘宝有哪些值得抓取的数据?通过API可以获取到哪些数据?

淘宝是中国最大的在线购物平台,有丰富的数据可供抓取。以下是一些值得抓取的数据以及通过API可以获取到的数据: 1. 商品信息:包括商品标题、价格、销量、评价等。 2. 店铺信息:包括店铺名称、店铺信用、开店时间等。 3. 物流信…

java测试抽红包接口概率《搬代码》

1.首先我们进行抽红包概率测试的时候,为了测试抽取红包的概率完全正确。个人建议不使用线程池多线程执行,建议直接使用for循环执行 2.我们调取抽红包接口返回的信息值进行判断 3.下面就是判断代码,然后是抽红包接口代码 Test public static …

探索智能文字识别:技术、应用与发展前景

探索智能文字识别:技术、应用与发展前景 前言一张图全览大赛作品解读随心记你不对我对小结 智能文字识别体系化解读图像预处理文字定位和分割文字区域识别图像校正字体识别和匹配结果后处理小结 如何应对复杂场景下挑战复杂场景应对方法小结 人才时代对人才要求合合…

源代码审计对企业有哪些好处?

源代码扫描 源代码扫描,对应用程序进行静态漏洞扫描,分析源代码中存在的安全风险,运行应用于模拟器中对应用进行实时漏洞攻击检测。 你是否了解源代码扫描对企业的好处? 一、源代码扫描,通常能够帮助企业解决这些问题…

docker 01(初识docker)

一、docker概念 Docker是一个开源的应用容器引擎;诞生于2013年初,基于Go 语言实现,dotCloud公司出品(后改名为Dockerlnc);Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux …

KCC@杭州-在初秋,来一场智力与体能的比拼

本次主题: 开源知识问答桌游/运动(一场智力与体力的比拼) KCC杭州活动又来啦! 在这个如火的八月,我们将要开启KCC杭州的一场特色开源活动。 为了让活动更加有趣味,更加具有互动性,我们将采用知识…

QTreeWidget和QTreeWidgetItem

QTreeWidget介绍 QTreeWidget 是一个用于显示层次结构数据的 Qt 控件,它以树状结构的形式展示项目和子项。每个项目都可以包含子项,并且可以通过展开和折叠来浏览整个树。 QTreeWidget类是一个方便的类,它提供了一个带有经典基于项目的界面…