Codigo Python

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 4

from datetime import datetime

# Datos de clientes (con nombre de usuario como clave)

clientes = {

'marcio_guerrero': {'nombre': 'Marcio Guerrero', 'saldo': 1200.10, 'tipo_cliente':


'Normal', 'contrasena': '1234'},

'edu_vidal': {'nombre': 'Edu Vidal', 'saldo': 20500.50, 'tipo_cliente': 'VIP',


'contrasena': 'abcd'},

'javier_leiva': {'nombre': 'Javier_Leiva', 'saldo': 16800.70, 'tipo_cliente': 'Preferente',


'contrasena': '5678'}

def obtener_fecha_hora():

"""Obtiene la fecha y hora actuales."""

ahora = datetime.now()

fecha = ahora.strftime("%d/%m/%Y")

hora = ahora.strftime("%H:%M:%S")

return fecha, hora

def mostrar_menu():

"""Muestra el menú principal del cajero automático."""

print("\n--- Bienvenido al Menú del Cajero Nuevo Peru Bank ---")

print("--- Soy tu asistente virtual ---")

print("--- Por favor elige una opción ---")

print("1. Consultar saldo")

print("2. Depositar dinero")

print("3. Retirar dinero")

print("4. Salir")

def imprimir_boucher(operacion, saldo_actual, nombre_cliente):

"""Imprime un boucher con los detalles de la operación."""

fecha, hora = obtener_fecha_hora()

print("\n--- Boucher ---")


print(f"Fecha: {fecha}")

print(f"Hora: {hora}")

print(f"Cliente: {nombre_cliente}")

print(f"Operación: {operacion}")

print(f"Saldo Actual: ${saldo_actual:.2f}")

print("----------------")

def consultar_saldo(cliente):

"""Consulta y muestra el saldo actual del cliente."""

print(f"\nInformación del Cliente:")

print(f"Nombre: {cliente['nombre']}")

print(f"Saldo: ${cliente['saldo']:.2f}")

print(f"Tipo de Cliente: {cliente['tipo_cliente']}")

def depositar_dinero(cliente, monto):

"""Realiza un depósito y muestra el nuevo saldo."""

if monto > 0:

cliente['saldo'] += monto

print(f"Depósito realizado con éxito. Nuevo saldo: ${cliente['saldo']:.2f}")

imprimir_boucher("Depósito", cliente['saldo'], cliente['nombre'])

else:

print("El monto a depositar debe ser mayor a 0.")

def retirar_dinero(cliente, monto):

"""Realiza un retiro y muestra el nuevo saldo."""

if monto > cliente['saldo']:

print("Fondos insuficientes.")

elif monto <= 0:

print("El monto a retirar debe ser mayor a 0.")

else:

cliente['saldo'] -= monto

print(f"Retiro realizado con éxito. Nuevo saldo: ${cliente['saldo']:.2f}")


imprimir_boucher("Retiro", cliente['saldo'], cliente['nombre'])

def main():

"""Función principal para manejar el flujo del cajero automático."""

while True:

nombre_usuario = input("Ingrese su nombre de usuario: ").strip().lower()

contrasena = input("Ingrese su contraseña: ").strip()

# Verificar si el usuario existe y la contraseña es correcta

if nombre_usuario in clientes and clientes[nombre_usuario]['contrasena'] ==


contrasena:

cliente = clientes[nombre_usuario]

while True:

mostrar_menu()

try:

opcion = int(input("Seleccione una opción (1-4): "))

except ValueError:

print("Opción no válida. Por favor, ingrese un número del 1 al 4.")

continue

if opcion == 1:

consultar_saldo(cliente)

elif opcion == 2:

try:

monto = float(input("Ingrese el monto a depositar: "))

depositar_dinero(cliente, monto)

except ValueError:

print("Monto no válido. Por favor, ingrese un número.")

elif opcion == 3:

try:

monto = float(input("Ingrese el monto a retirar: "))

retirar_dinero(cliente, monto)
except ValueError:

print("Monto no válido. Por favor, ingrese un número.")

elif opcion == 4:

print(f"Muchas gracias por tu preferencia {cliente['nombre']}. ¡Hasta


luego!")

print(f"Espero haberte ayudado correctamente. Ten un buen día")

break

else:

print("Opción no válida. Por favor, seleccione una opción del 1 al 4.")

else:

print("Nombre de usuario o contraseña incorrectos.")

# Llamada a la función principal

main()

También podría gustarte