📜  电话目录的菜单驱动程序(1)

📅  最后修改于: 2023-12-03 14:56:26.398000             🧑  作者: Mango

电话目录的菜单驱动程序介绍

简介

电话目录的菜单驱动程序是一个基于命令行界面的简单应用程序,它允许用户存储和管理他们的联系人信息,包括名称、电话号码、电子邮件地址等。

该程序的主要特点是使用简单,易于上手,提供了菜单驱动的用户界面,用户只需按照提示输入相应的菜单选项和数据即可。

功能

该程序提供了以下功能:

  • 添加联系人:用户可以添加新的联系人信息。
  • 删除联系人:用户可以删除已有的联系人信息。
  • 修改联系人:用户可以修改已有的联系人信息。
  • 查找联系人:用户可以通过关键字查找已有的联系人信息。
  • 显示所有联系人:用户可以查看所有联系人的信息。
  • 退出程序:用户可以退出程序并保存当前数据。
菜单界面

程序运行时,会显示以下菜单:

电话目录
===========
1. 添加联系人
2. 删除联系人
3. 修改联系人
4. 查找联系人
5. 显示所有联系人
6. 退出程序
选择菜单:

用户可以根据菜单选项的序号选择相应的操作,并根据提示输入相应的数据。

数据存储

程序使用简单的文本文件来存储联系人信息,每个联系人信息占一行,使用逗号分隔不同的字段,例如:

张三,13888888888,zhangsan@example.com
李四,13999999999,lisi@example.com
王五,13111111111,wangwu@example.com
技术实现

该程序使用了基于Python编程语言的面向对象编程技术,将菜单界面和电话目录保存数据的功能封装在一个ContactList类中,使用文件读写操作来实现数据的持久化。

下面是程序主要代码片段:

class ContactList:
    def __init__(self, filename='contacts.txt'):
        self.filename = filename
        self.contacts = []
        self.load_contacts()

    def load_contacts(self):
        try:
            with open(self.filename, 'r') as file:
                for line in file:
                    self.contacts.append(line.strip().split(','))
        except FileNotFoundError:
            pass

    def save_contacts(self):
        with open(self.filename, 'w') as file:
            for contact in self.contacts:
                file.write(','.join(contact) + '\n')

    def add_contact(self, name, phone, email):
        self.contacts.append([name, phone, email])
        self.save_contacts()

    def remove_contact(self, index):
        self.contacts.pop(index)
        self.save_contacts()

    def update_contact(self, index, name, phone, email):
        self.contacts[index] = [name, phone, email]
        self.save_contacts()

    def find_contact(self, keyword):
        results = []
        for contact in self.contacts:
            if keyword in contact[0] or keyword in contact[1] or keyword in contact[2]:
                results.append(contact)
        return results

    def display_contacts(self):
        for index, contact in enumerate(self.contacts):
            print(f'{index + 1}. {contact[0]} ({contact[1]}, {contact[2]})')

结语

电话目录的菜单驱动程序是一个简单实用的小应用程序,可以帮助用户管理他们的联系人信息,也可以作为学习面向对象编程和文件读写操作的示例。