编写程序,实现一个简单的基于字典数据结构的通信录管理系统。系统采用JSON文件保存数据。通信录设计为字典{name:tel}。程序开始时从adressbook.json文件中读取通信录,然后显示主菜单,具体包括如下功能: (1)显示通信录清单,如果通信录字典中存在用户信息,则显示通信录清单,包括姓名和电话号码。如果通讯录中不存在任何用户,则提示通信录用户为空。 (2)查询联系人,提示用户输入姓名name,在通讯录字典中查询该键。如果存在,输出联系人信息;如果不存在,提示是否新建联系人。 (3)插入新的联系人。提示用户输入姓名name,在通讯录字典中查询该键,如果存在,提示是否更换新联系人信息;如果不存在,提示输入电话号码,并插入字典键值对。 (4)删除已有联系人,提示用户输入姓名name,在通讯录字典中查询该键,如果不存在,输出联系人不存在的提示信息,如果存在,从通讯录字典中删除键值对,并输出信息。 (5)退出,保存通讯录字典到adressbook.json中,推出循环

时间: 2024-02-21 07:57:11 浏览: 16
好的,以下是一个简单的基于字典数据结构的通讯录管理系统的Python程序,满足您的需求: ```python import json # 从文件中读取通信录 try: with open('adressbook.json', 'r') as f: address_book = json.load(f) except (FileNotFoundError, json.JSONDecodeError): address_book = {} # 主菜单显示函数 def main_menu(): print("="*30) print(" 通信录管理系统") print("="*30) print("1. 显示通信录") print("2. 查询联系人") print("3. 插入新的联系人") print("4. 删除已有联系人") print("5. 退出") print("="*30) # 显示通信录函数 def display_address_book(): if address_book: print("通信录:") for name, tel in address_book.items(): print(f"{name}: {tel}") else: print("通信录用户为空!") # 查询联系人函数 def search_contact(): name = input("请输入要查询的联系人姓名:") if name in address_book: print(f"{name}: {address_book[name]}") else: choice = input("联系人不存在,是否新建联系人?(Y/N)") if choice.lower() == 'y': tel = input("请输入联系人电话号码:") address_book[name] = tel print(f"{name}已成功加入通信录!") # 插入新的联系人函数 def insert_contact(): name = input("请输入要插入的联系人姓名:") if name in address_book: choice = input("该联系人已存在,是否更换新联系人信息?(Y/N)") if choice.lower() == 'y': tel = input("请输入新的联系人电话号码:") address_book[name] = tel print(f"{name}的信息已更新!") else: tel = input("请输入新联系人的电话号码:") address_book[name] = tel print(f"{name}已成功加入通信录!") # 删除联系人函数 def delete_contact(): name = input("请输入要删除的联系人姓名:") if name in address_book: del address_book[name] print(f"{name}已从通信录中删除!") else: print("联系人不存在!") # 主循环 while True: main_menu() choice = input("请输入您的选择:") if choice == '1': display_address_book() elif choice == '2': search_contact() elif choice == '3': insert_contact() elif choice == '4': delete_contact() elif choice == '5': break else: print("无效的输入,请重新输入!") # 保存通信录到文件 with open('adressbook.json', 'w') as f: json.dump(address_book, f) print("感谢使用通信录管理系统!") ``` 您可以将上面的代码复制到一个Python文件中,然后运行即可。在程序运行时,它会从`adressbook.json`文件中读取通信录数据(如果存在的话),然后显示一个主菜单,允许您执行各种操作。在您退出程序时,它会将通信录数据保存回`adressbook.json`文件中。

相关推荐

最新推荐

recommend-type

智能停车收费系统数据流程图和数据字典

智能停车场收费系统数据流程图 智能停车场收费系统数据字典 1数据流词条 2数据元素词条 3数据文件词条 4加工词条 5外部实体
recommend-type

OA系统-A8-V7.1SP1数据字典.pdf

企业OA软件,致远OA办公系统的,A8-V7版本的数据字典,PDF版本,可供DBA,OA管理员等人士使用
recommend-type

合作式智能运输系统车用通信系统应用层及应用数据交互标准(报批稿).pdf

合作式智能运输系统车用通信系统应用层及应用数据交互标准,报批稿。本标准定义了合作式智能交通系统车用通信系统基础应用及基本要求,定义了应用层数据集字典、数据交换标准及接口规范。
recommend-type

python小练习——图书管理系统(增加数据存储)

上一次我们做了一个小的图书馆里系统,用来学习python基础部分的:函数、模块、列表、字典、循环、判断 现在我们在上一次的基础上增加一个功能,将写入系统的书籍存放起来,这样才是一个真正意义上的系统,毕竟没有...
recommend-type

国家医院数据上报管理方案-医疗数据字典.docx

整理的卫健委的医疗行业的标准字典数据,例如医院的区域数据中心、集成平台之类的数据标准化字典数据!标准的医疗行业标准数据字典,特别是要过互联互通的等级非常实用!
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用 Python 画一个可以动的爱心

好的,我可以帮助您使用Python来绘制一个动态的爱心。您可以使用turtle库来实现。以下是实现代码: ```python import turtle import math # 设置画布和画笔 canvas = turtle.Screen() canvas.bgcolor("black") pencil = turtle.Turtle() pencil.speed(0) pencil.color("red", "pink") pencil.pensize(3) # 定义爱心函数 def draw_love(heart_size, x_offset=0, y_offset=0):
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。