Código de Cajero (Consola). Líneas de código totales: 482. class CRetiroEfectivo { private int billetes500 = 2000; private int billetes200 = 3500; private int billetes100 = 7000; private int billetes50 = 700; private int efectivoCajero = 0; private int cantidad = 0; private int opcionCantidad = 0; private int saldoActual = 0; private int otraCantidad = 0; private string entrada = string.Empty; //Inicio Constructor public CRetiroEfectivo(int pSaldoActual) { saldoActual = pSaldoActual; Console.WriteLine("Retirar Efectivo."); efectivoCajero = (billetes500 * 500) + (billetes200 * 200) + (billetes100 * 100) + (billetes50 * 50); } //Fin de constructor //Funcion de interface public int SALDO_ACTUAL { get { return saldoActual; } set { saldoActual = value; } } public int EFECTIVO_CAJERO { get { return efectivoCajero; } set { efectivoCajero = value; } } public int OPCION_CANTIDAD { get { return opcionCantidad; } set { opcionCantidad = value; } } //Inicio Retirar public int Retirar() { Console.WriteLine("\nSelecciona la cantidad a retirar: "); Console.WriteLine("1.- 50 \n2.-100 \n3.-200 \n4.-500 \n5.2,000 \n6.7,000 \n7.Otra Cantidad(10,000) \n8.Cancelar"); Console.Write("Tu cantidad a retirar es: "); entrada = Console.ReadLine(); opcionCantidad = Convert.ToInt16(entrada);
int cantidad = determinaCantidad(opcionCantidad); //Validamos que la cantidad sea diferente de la opcion 8 que es cancelar if (opcionCantidad != 8) { if (saldoActual >= cantidad && efectivoCajero >= cantidad) {//Validacion del saldo actual. switch (opcionCantidad) { case 1: Console.WriteLine("\nRetirando $50..."); billetes50 = billetes50 - 50; darBilletes(); efectivoCajero = efectivoCajero - 50; saldoActual -= 50; break; case 2: Console.WriteLine("\nRetirando $100..."); billetes100 = billetes100 - 1; darBilletes(); efectivoCajero = efectivoCajero - 100; saldoActual -= 100; break; case 3: Console.WriteLine("\nRetirando $200..."); billetes200 = billetes200 - 1; darBilletes(); efectivoCajero = efectivoCajero - 200; saldoActual -= 200; break; case 4: Console.WriteLine("\nRetirando $500..."); billetes500 = billetes500 - 1; darBilletes(); efectivoCajero = efectivoCajero - 500; saldoActual -= 500; break; case 5: Console.WriteLine("\nRetirando $2000..."); darBilletes(); efectivoCajero = efectivoCajero - 2000; saldoActual -= 2000; break; case 6: Console.WriteLine("\nRetirando $7000..."); darBilletes(); efectivoCajero = efectivoCajero - 7000; saldoActual -= 7000; break; case 7: Console.WriteLine("\nOtra cantidad..."); Console.WriteLine("Cantidad a retirar: "); entrada = Console.ReadLine(); otraCantidad = Convert.ToInt32(entrada); darOtraCantidad(otraCantidad); efectivoCajero = efectivoCajero - otraCantidad;
saldoActual -= otraCantidad; break; }//Fin de switch }//Fin del saldo actual. else { Console.WriteLine("\nNo cuentas con un saldo suficiente para retirar dicha cantidad."); } }//Valida menu else { Console.WriteLine("\nCancelando..."); } return saldoActual; }// Fin de Retirar //Funcion para saber la cantidad que el usuario va a retirar public int determinaCantidad(int pOpcionCantidad) { cantidad = pOpcionCantidad; if (cantidad cantidad if (cantidad cantidad if (cantidad cantidad if (cantidad cantidad if (cantidad cantidad if (cantidad cantidad
== 1) = 50; == 2) = 100; == 3) = 200; == 4) = 500; == 5) = 2000; == 6) = 7000;
return cantidad; } //Fin de la funcion determina cantidad //Funcion para dar Billetes dependiendo la cantidad retirada public void darBilletes() { //Obtenemos la cantidad que el usario quiere retirar int cantidad = determinaCantidad(opcionCantidad); int saldo = SALDO_ACTUAL; Console.WriteLine(cantidad); //Saldo mayor que cantidad if(saldo >= cantidad) { if (cantidad == 50) {
Console.WriteLine("Billetes de 50: {0}", 1); billetes50 -= 1; } if (cantidad == 100) { Console.WriteLine("Billetes billetes100 -= 1; } if (cantidad == 200) { Console.WriteLine("Billetes billetes200 -= 1; } if (cantidad == 500) { Console.WriteLine("Billetes billetes500 -= 1; } if (cantidad == 2000) { Console.WriteLine("Billetes billetes500 -= 4; } if (cantidad == 7000) { Console.WriteLine("Billetes Console.WriteLine("Billetes billetes500 -= 10; billetes200 -= 10; } }//saldo mayor que cantidad
de 100: {0}", 1);
de 200: {0}", 1);
de 500: {0}", 1);
de 500: {0}", 4);
de 500: {0}",10); de 200: {0}",10);
else { Console.WriteLine("No tienes los fondos suficientes"); } }//funcion darBilletes //Funcion de dar billetes de 2000 public void darOtraCantidad(int pOtraCantidad) { cantidad = pOtraCantidad; if (cantidad >= 50 && cantidad <= saldoActual && cantidad % 50 == 0) { int entero = (int)(cantidad / 500); int residuo = cantidad % 500; billetes500 = billetes500 - entero; Console.WriteLine("Billetes de 500: {0}", entero); int entero2 = (int)(residuo / 200); int residuo2 = residuo % 200; billetes200 = billetes200 - entero2; Console.WriteLine("Billetes de 200: {0}", entero2);
int entero3 = (int)(residuo2 / 100); int residuo3 = residuo2 % 100; billetes100 = billetes100 - entero3; Console.WriteLine("Billetes de 100: {0}", entero3); int entero4 = (int)(residuo3 / 50); int residuo4 = residuo3 % 50; billetes50 = billetes50 - entero4; Console.WriteLine("Billetes de 50: {0}", entero4); } else Console.WriteLine("Cantidad no vรกlida o saldo insuficiente."); } //Fin de la funcion dar otra cantidad (billetes) } }