Created
October 29, 2018 03:07
-
-
Save variux/e8fabc70926bdd5599b78083fefa7011 to your computer and use it in GitHub Desktop.
Proyecto de principios de informatica Luis Ruby Indy R
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# coding: utf-8 | |
# In[ ]: | |
# Proyecto 1 | |
# FUNCION PRINCIPAL (CAJERO) | |
def atm(): # Esquema de la primera parte | |
# 1 - Bienvenida | |
print() | |
print("Bienvenido al cajero automático de CIE") | |
print() | |
estado = False | |
# 2 - Estado de caja (revisar) | |
print("Estado actual de la caja: ", cajaAbierta(estado)) | |
print("Ingrese 'A' para abrir la caja: ") | |
est = input() | |
while est != "a" and est != "A": | |
est = input("Valor no válido. Ingrese 'A' para abrir la caja: ") | |
## se abre la caja con un clave especial ( mismo código de segunda parte) | |
# print ("Estado de caja: ", "abierto") | |
#if est == 'a' or est == 'A': | |
# clave(est) | |
#else: | |
# print ("No es posible abrir la caja") | |
# | |
# Ingreso billetes | |
print("Favor ingresar la cantidad de billetes por denominación (colones): ") | |
a = int(input("1000: ")) | |
b = int(input("2000: ")) | |
c = int(input("5000: ")) | |
d = int(input("10000: ")) | |
e = int(input("20000: ")) | |
totalCaja = a+b+c+d+e | |
print(totalCaja) | |
estado = True | |
print ("Estado de caja: ",cajaAbierta(estado)) | |
veces= 0 | |
while estado and veces<3: | |
x = int(input("Ingrese la cantidad en colones a solicitar: ")) | |
veces = veces +1 | |
estado= False | |
return ("Ultima transacción: ", x) ## Esto es solo para el final, para saber que si es posible ingresar términos | |
# ----------------------FUNCIONES---------------------------------- | |
# ESTADO DE CAJA: Se pregunta si la caja está o no abierta | |
def cajaAbierta (estado): | |
if estado == True: | |
return "Caja abierta" | |
else: | |
return "Caja cerrada" | |
# Clave Se utiliza 3 veces // preguntar, porqué no se reevalua clave | |
# Usuario | |
# SOLICITUD DE DINERO: | |
#def transaccion (cantidad): | |
# 1 Ingresar un monto (cantidad) el cual se va a tramitar (esto en atm()) | |
# 1.1 Verificar que sea un monto válido (numeros%1000 == 0, esto está en la parte siguiente), sino indicar, y + un usuario no atendido | |
# 2 Evaluar si hay suficiente en la caja para cubrirlo, sino, indicarlo + usuario no atendido | |
# 3 Evaluar la menor cantidad de billetes necesarios para cubrir monto, si no hay un billete, sustituir con el de denominación más cercana | |
# 4 Restar al valor random asignado (ponerle nombre) el valor del monto extraído | |
# 5 preguntar si desea otra transaccion | |
# 6 preguntar si desea factura final (total extraído) | |
# LLAMADA DE FUNCIONES | |
atm() | |
# In[2]: | |
import random | |
def atm(): | |
#Valores de atención | |
atend = 0 | |
nAtend = 0 | |
estado = True # estado de caja | |
datos = False | |
while estado: | |
print("Bienvenido a servicio del cajero automático") | |
print(" Indique la acción que desea realizar: ") | |
print() | |
print("c = cierre de caja") | |
print("t = transacción") | |
print() | |
solicitud = input() | |
print() | |
while solicitud != "t" and solicitud != "T" and solicitud != "c" and solicitud != "C": | |
solicitud = input("Valor inválido. Ingresar un valor de la lista para continuar:") | |
if solicitud =="c" or solicitud =="C": | |
cierre = input("Desea hacer cierre de caja?") | |
while cierre != "n" and cierre != "N" and cierre != "s" and cierre != "S": | |
cierre = input("Valor inválido. Desea hacer cierre de caja? 's' o 'n'") | |
if cierre == "s" or cierre == 'S': | |
#Llamar a cierre ## con clave? | |
estado = False | |
return estado | |
else: | |
datos = True | |
print() | |
# Aquí se de el registro del usuario para la transacción | |
while datos: | |
userN = input("Usuario: ") | |
while registro(userN) == 0 and userN != userN.lower(): | |
userN=input("No exiten coincidencias, digite su usuario: ") | |
clave = int(input("Contraseña: ")) | |
verifica_acceso = acceso(clave,registro(userN)) | |
print(verifica_acceso) | |
retiro = False | |
if verifica_acceso == True: | |
print("El saldo de su cuenta es de:" + str(random.randrange(1000,10000000,1)) + "colones") | |
retiro = True | |
else: | |
datos = False | |
return datos | |
while retiro: | |
x = int(input("x: ")) | |
x,atend,nAtend = transaccion(x, atend, nAtend) | |
retiro = False # Esto es para evaluar | |
# Para luego de cierre de caja | |
print("Usuarios atendidos: ", atend) | |
print("Usuarios no atendidos: ",nAtend) | |
## ----------------------- Funciones ------------------------- ## | |
## define la contraseña segun el usuario aceptado | |
def registro(login): | |
pswd = 0 | |
for i in range(len(login)): | |
if login[i].isupper() or login[i] == " ": | |
print ("Usuario no válido, inténtelo de nuevo") | |
return(0) | |
else: | |
pswd = pswd + ord(login[i]) | |
return(pswd) | |
## define si la contraseña es correcta | |
def acceso(contrasena,pswd): | |
clave = int(contrasena) | |
intento=0 | |
while clave != pswd: | |
print("login incorrecto. Tiene",2-intento,"restantes") | |
clave = int(input("Ingrese su contraseña nuevamente:")) | |
if clave == pswd and intento >=2: | |
print(" > Acceso Habilitado < ") | |
return True | |
elif clave != pswd and intento>=2: | |
print(">Acceso Denegado<") | |
return False | |
intento = intento + 1 | |
if clave == pswd: | |
print(" > Acceso Habilitado <") | |
return True | |
## definir si el valor ingresado es posible de tramitar | |
def transaccion(x, atend, nAtend): | |
if x >= 1000: | |
if x//1000 and x%1000 == 0: | |
print("Dividido entre mil cierto") | |
return(x//1000,atend+1,nAtend) | |
else: | |
return ("no es posible",atend,nAtend+1) | |
else: | |
return ("No es posible generar transacción",atend,nAtend+1) | |
atm() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment