0% encontró este documento útil (0 votos)
15 vistas5 páginas

Directorio telefónico en Python

El documento presenta una implementación de un directorio telefónico utilizando una tabla hash en Python. Incluye métodos para insertar, buscar, borrar y actualizar registros, así como para mostrar todos los registros. También se proporciona un menú interactivo para que el usuario pueda gestionar el directorio.

Cargado por

parajuegozzz09
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
15 vistas5 páginas

Directorio telefónico en Python

El documento presenta una implementación de un directorio telefónico utilizando una tabla hash en Python. Incluye métodos para insertar, buscar, borrar y actualizar registros, así como para mostrar todos los registros. También se proporciona un menú interactivo para que el usuario pueda gestionar el directorio.

Cargado por

parajuegozzz09
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

class DirectorioTelefonico:

def __init__(self):

"""Inicializa el directorio telefónico con una tabla hash vacía."""

# Usamos un diccionario como tabla hash, donde la clave será una tupla (nombre, apellido)

# y el valor será el teléfono.

[Link] = {}

def insertar_registro(self, nombre, apellido, telefono):

"""Inserta un nuevo registro en el directorio telefónico."""

clave = ([Link](), [Link]()) # La clave es una tupla de nombre y apellido

if clave in [Link]:

print(f"El registro de {nombre} {apellido} ya existe.")

else:

[Link][clave] = telefono # Almacenamos el teléfono en la tabla hash

print(f"Registro de {nombre} {apellido} agregado con éxito.")

def buscar_registro(self, nombre, apellido):

"""Busca un registro en el directorio por nombre y apellido."""

clave = ([Link](), [Link]()) # La clave de búsqueda es una tupla de nombre y


apellido

if clave in [Link]:

telefono = [Link][clave]

print(f"Registro encontrado: {nombre} {apellido}: {telefono}")

else:

print(f"Registro de {nombre} {apellido} no encontrado.")

def borrar_registro(self, nombre, apellido):

"""Borra un registro del directorio por nombre y apellido."""

clave = ([Link](), [Link]()) # La clave de búsqueda es una tupla de nombre y


apellido
if clave in [Link]:

del [Link][clave] # Elimina el registro de la tabla hash

print(f"Registro de {nombre} {apellido} borrado con éxito.")

else:

print(f"Registro de {nombre} {apellido} no encontrado.")

def actualizar_registro(self, nombre, apellido, nuevo_nombre=None, nuevo_apellido=None,


nuevo_telefono=None):

"""Actualiza el teléfono, nombre o apellido de un registro en el directorio."""

clave = ([Link](), [Link]()) # La clave de búsqueda es una tupla de nombre y


apellido

if clave in [Link]:

if nuevo_nombre:

nombre = nuevo_nombre # Si se pasa un nuevo nombre, lo actualizamos

if nuevo_apellido:

apellido = nuevo_apellido # Si se pasa un nuevo apellido, lo actualizamos

if nuevo_telefono:

[Link][([Link](), [Link]())] = nuevo_telefono # Actualizamos el


teléfono

# Después de modificar los campos, reorganizamos el registro en la tabla hash

[Link][([Link](), [Link]())] = [Link](clave)

print(f"Registro actualizado: {nombre} {apellido} - Teléfono: {nuevo_telefono if


nuevo_telefono else [Link][([Link](), [Link]())]}")

else:

print(f"Registro de {nombre} {apellido} no encontrado.")

def mostrar_directorio(self):

"""Muestra todos los registros del directorio telefónico."""

if not [Link]:
print("El directorio está vacío.")

else:

print("\nDirectorio completo:")

for clave, telefono in [Link]():

nombre, apellido = clave

print(f"{[Link]()} {[Link]()}: {telefono}")

# Función principal para interactuar con el usuario

def main():

directorio = DirectorioTelefonico() # Creamos una instancia del directorio telefónico

while True:

print("\nMenú de opciones:")

print("1. Insertar nuevo registro")

print("2. Buscar registro")

print("3. Actualizar registro")

print("4. Borrar registro")

print("5. Mostrar directorio")

print("6. Salir")

opcion = input("Selecciona una opción (1-6): ")

if opcion == "1":

nombre = input("Introduce el nombre: ")

apellido = input("Introduce el apellido: ")

telefono = input("Introduce el teléfono: ")

directorio.insertar_registro(nombre, apellido, telefono)

elif opcion == "2":


nombre = input("Introduce el nombre a buscar: ")

apellido = input("Introduce el apellido a buscar: ")

directorio.buscar_registro(nombre, apellido)

elif opcion == "3":

nombre = input("Introduce el nombre a actualizar: ")

apellido = input("Introduce el apellido a actualizar: ")

nuevo_nombre = input("Introduce el nuevo nombre (deja en blanco para no modificar): ")

nuevo_apellido = input("Introduce el nuevo apellido (deja en blanco para no modificar): ")

nuevo_telefono = input("Introduce el nuevo teléfono (deja en blanco para no modificar): ")

directorio.actualizar_registro(nombre, apellido, nuevo_nombre or None, nuevo_apellido or


None, nuevo_telefono or None)

elif opcion == "4":

nombre = input("Introduce el nombre a borrar: ")

apellido = input("Introduce el apellido a borrar: ")

directorio.borrar_registro(nombre, apellido)

elif opcion == "5":

directorio.mostrar_directorio()

elif opcion == "6":

print("Saliendo del programa.")

break

else:

print("Opción no válida. Por favor, selecciona una opción entre 1 y 6.")

# Ejecutamos la función principal si el script es ejecutado


if __name__ == "__main__":

main()

También podría gustarte