首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >通讯录文件中存有若干联系人的信息,每个联系人的信息由姓名和电话号码组成。编写程序完成以下功能:输入姓名,若通讯录文件中存在,则将该联系人信息输出;若不存在,则输出“Not Found”。

通讯录文件中存有若干联系人的信息,每个联系人的信息由姓名和电话号码组成。编写程序完成以下功能:输入姓名,若通讯录文件中存在,则将该联系人信息输出;若不存在,则输出“Not Found”。

作者头像
川川菜鸟
发布于 2021-10-18 03:21:58
发布于 2021-10-18 03:21:58
91800
代码可运行
举报
运行总次数:0
代码可运行

还记得川川我吗?啊,不记得就伤我心了,点个赞加个关再走。 QQ:2835809579 白嫖党们,走起! 题目: 通讯录文件中存有若干联系人的信息,每个联系人的信息由姓名和电话号码组成。编写程序完成以下功能:输入姓名,若通讯录文件中存在,则将该联系人信息输出;若不存在,则输出“Not Found”。 代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#登录引导界面
txt = '''
1. add contacts
2. delete contacts
3. search contacts
4. show all contacts
5. exit the system 
'''

#检测路径下是否存在通讯录文件,如果没有则建立文件
import os.path
is_exist = os.path.isfile('addressbook.txt')
if is_exist == 0:
    new_file = open('Contacts.txt', 'w')
    new_file.close()

#入口程序
def start():
    #设置循环,当用户输入特定选项退出
    while True:
        print("Welcome, select a number:")
        print(txt)
        userchoice = int(input())
        #输入错误序号则重启程序
        if userchoice not in [1,2,3,4,5]:
            print('wrong choice')
            start()
            break
        #输入正确序号执行相应程序
        elif userchoice == 1:
            add_contacts()
        elif userchoice == 2:
            delete_contacts()
        elif userchoice == 3:
            search_contacts()
        elif userchoice == 4:
            show_all_contacts()
        elif userchoice == 5:
            break

#添加联系人
def add_contacts():
    print('Add new contacts')
    print('Name: ', end = '')
    Name = input()
    print('Sex: ', end = '')
    Sex = input()
    print('Relationship(Friend/ Family/ Classmate): ', end = '')
    Relationship = input()
    print('Number: ', end = '')
    Number = input()
    #将通讯录追加到文件末端
    Contacts_file = open('Contacts.txt','a')
    Contacts_file.write(Name+'\t'+Sex+'\t'+Relationship+'\t'+Number+'\n')
    Contacts_file.close()

#删除通讯录中的信息
def delete_contacts():
    print('Enter the name: ', end = '')
    name = input()
    Contacts_file = open('Contacts.txt', 'r')
    Contacts_list = []
    #将通讯录缓存到列表内,遇到需要删除的通讯录条目则跳过
    for line in Contacts_file.readlines():
        if line.find(name) != -1:
            continue
        Contacts_list.append(line)
    #将通讯录清空,将缓存在列表中的通讯录信息加载进文件内
    Contacts_file = open('Contacts.txt', 'w')
    for i in range(0, len(Contacts_list)):
        Contacts_file.write(Contacts_list[i])
    Contacts_file.close()

#搜索通讯录
def search_contacts():
    print('Enter the name: ',end = '')
    Search_name = input()
    Contacts_file = open('addressbook.txt','r',encoding='utf-8')
    for line in Contacts_file.readlines():
        String = line
        find_or_not = String.find(Search_name)
        if find_or_not !=-1 :
            print(line)
            break
    #若搜索不到,返回Not Found!
    if find_or_not == -1:
        print('Not Found!')
    Contacts_file.close()

#显示通讯录所有条目
def show_all_contacts():
    print('Name\tSex\tRelationship\tNumber', end = '\n')
    Contacts_file = open('addressbook.txt','r')
    print(Contacts_file.read())
    Contacts_file.close()

#执行入口程序
start()

效果还要我演示吗?你们自己运行试试行不!有问题留言哈!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/12/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
通讯录多版本代码归纳
通讯录中联系人的容量一开始就是确定的,不能增加也不能减少。联系人过少,容量浪费;联系人过多,不够储存。 Contact.h
怠惰的未禾
2023/04/27
3770
python写一个学生信息管理通讯录,功能增加,删除,查询,退出
川川在上次的代码有了一些改进,这是基于上一次的代码改进而来,需要建立一个addressbook.txt文档,别的没啥,代码解析我写在注释了,还有别的问题可以留言或者加我扣扣群吧:970353786(哈哈,别加我扣扣了,人太多了)
川川菜鸟
2021/10/18
2.1K0
抽丝剥茧C语言(高阶)动态+文件通讯录
这一片博客我会改进上次的静态+文件通讯录,先分析哪里可以改,然后再下手,最后测试。 先从动态方面开始改。
有礼貌的灰绅士
2023/03/28
7980
抽丝剥茧C语言(高阶)动态+文件通讯录
python写一个通讯录
  闲着没事,用python写一个模拟通讯录,要求要实现常用的通讯录的功能,基本流程如下
py3study
2020/01/15
1.8K0
python写一个通讯录
【protobuf】二、proto3语法详解①
​ 在语法详解部分,依旧使用 项目推进 的方式完成教学。这个部分会对通讯录进行多次升级,使用 2.x 表示升级的版本,最终将会升级如下内容:
利刃大大
2025/05/22
1600
【protobuf】二、proto3语法详解①
单链表制作通讯录
实现一个基于面向对象思想的,具有添加、查看、删除、修改、查找、保存数据功能的通讯录程序。
算法与编程之美
2023/08/25
2440
单链表制作通讯录
C语言: 可存储数据的动态内存通讯录
一个名为“contact.h”的头文件,一个名为“contact.c”的源文件,一个“test.c”的源文件。两个源文件分别包含头文件。
青衫哥
2023/03/31
9810
C语言: 可存储数据的动态内存通讯录
C语言课设——通讯录(静态、动态、文件三版合一)
  相信每个科班的同学都有过C语言课设的经历,比如教职工工资管理系统、图书信息管理系统、学生信息管理系统、通讯录系统等,其实这些课设任务的底层逻辑都是一致的,无非就是对结构体变量进行增删查改操作,同时配合文件操作将数据保存在文件夹中,本文将以通讯录举例,从静态版到文件版,让大家明白通讯录系统是如何逐步完善的。
北 海
2023/07/01
2640
C语言课设——通讯录(静态、动态、文件三版合一)
【C】—文件版本通讯录的实现
在前面的文章中,已经讲解了动态版本的通讯录的实现,但是动态通讯录存在一个致命缺陷,就是它不能自动保存数据,而前面一篇文章中学到了数据持久化的方法之一:即把数据存放在磁盘文件上,便可以实现数据持久化。 具体应该如何做呢? 假如我们在退出的时候,通过文件操作,把我们所写的数据存在磁盘文件里,然后我们再进行下一次的使用的时候,在初始化阶段就从磁盘中读取这些数据,这不就实现了。
诺诺的包包
2023/02/20
6110
小甲鱼《零基础学习Python》课后笔记(三十四):丰富的else语句及简洁的with语句
测试题 0.在Python中,else语句能跟哪些语句进行搭配? a)if…else语句,“要么怎样。要么不怎样” b)while或for…else语句,“干完了能怎样,干不完就别想怎样” c)异常处理搭配,“没有问题,那就干吧” 1.请问以下例子中,循环中的break语句会跳过else语句吗?
小火柴棒
2019/01/11
6140
数据结构项目实战——通讯录
C语言通讯录是一个使用C语言编写的简单程序,用于存储和管理联系人信息。该程序允许用户添加、删除、查找和显示通讯录中的联系人。每个联系人通常包括姓名、电话号码和电子邮件地址等基本信息。程序使用结构体来存储联系人信息,并使用数组或链表等数据结构来组织和管理通讯录。通过命令行界面与用户进行交互,用户可以通过输入命令来执行相应的操作。C语言通讯录程序可以用于个人或小型组织的信息管理,提高联系人信息的管理效率。
鲜于言悠
2024/03/20
3080
学习笔记-小甲鱼Python3学习第三十
python中else不仅可以与if搭配组成控制流,还可以与while或for搭配使用
py3study
2020/01/03
6250
C进阶:通讯录(动态版本 + 文件操作)附源码
aosei
2024/01/23
1710
C进阶:通讯录(动态版本 + 文件操作)附源码
2.Python3扩展知识之笔试操作总结(二)
函数参数使用注意? 我们分析下,函数的参数需要的是变量,而这里你试图用“元祖”的形式来传递是不可行的。
全栈工程师修炼指南
2022/09/28
7310
2.Python3扩展知识之笔试操作总结(二)
【C版本】静态通讯录与动态通讯录的实现,以及各自所存在的缺陷对比。(含所有原码)
与之前的扫雷以及三子棋的实现方式是一样的,创建两个源文件,一个用来测试,一个用来存放函数定义,再创建一个头文件,用来存放函数声明。接下来是着手实现通讯录。 首先要有一个大概的框架,并且要明确即将实现的通讯录的功能,最基本的即增删查改,然后对这些功能进行进一步的细化实现,并且我们知道,人的信息是一个比较复杂的对象,不可能用一句话就概括,所以就用到了之前学过的结构体,一个结构体用来存放联系人,另一个用来存放联系人对应的的基本信息。 最后我们要知道一点,就是一口吃不成一个大胖子,功能实现的过程是一步步来的。
诺诺的包包
2023/02/20
4560
C语言实战小项目——通讯录3.0
  在上次的2.0版本中,我们已经拥有了可实现动态内存操作的通讯录版本,但是每次当我们输入数据,展示数据,退出之后,我们再次执行程序,会发现我们之前输入的联系人信息丢失,需要再次输入。所以,在这次的3.0版本中我们加入了保存联系人信息的功能,这将极大的优化我们对通讯录的使用体验。
RAIN7
2021/08/11
8591
【C语言】文件版&动态版通讯录
对于测试部分,改动的地方在于销毁通讯录之前,需要把通讯录的内容保存到文件中,所以在销毁通讯录的函数前加了一个SaveContact函数保存通讯录;函数的具体实现看函数实现部分;
YoungMLet
2024/03/01
1550
C语言通讯录功能的实现
我们需要一个通讯录,可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址。
黎鹤舞
2024/03/19
2290
【数据结构】顺序表实操——通讯录项目
本篇文章将介绍一个运用顺序表的例子——通讯录项目。 通讯录我们都知道,细细一想通讯录不就是一个顺序表吗?在通讯录中以一个联系人为单位,存储着若干个联系人的各种信息,我们也可以对通讯录中的联系人信息进行相应的增删查改操作。但是上篇文章的顺序表存的只是整型数据,而在本文联系人的信息可不只是整形数据,如果想把一个联系人的各种信息以一个联系人为单位存储,就需要用到我们之前学到的内置类型——结构体类型。 接下来将详细介绍基于顺序表的通讯录项目搭建的具体过程。 本文将延用上篇文章中实现好的顺序表代码,具体请看—>顺序表
_小羊_
2024/10/16
1460
【数据结构】顺序表实操——通讯录项目
手把手教你写通讯录(含动态版)
思路有了,那么我们先来打一个框架 先用printf实现一个菜单 这个菜单可以帮助我们更方便地使用通讯录,可理解为指引功能。接着,功能的选择,我们可以用switch实现 其次,这个通讯录,我们想让它一直进行下去,直到使用者不想用了,所以写一个循环 综上所述,代码实现我们可以写成这般
大海里的番茄
2024/01/19
2780
手把手教你写通讯录(含动态版)
推荐阅读
相关推荐
通讯录多版本代码归纳
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验