1 - Comprar artículos
2- Retirar dinero e tu tarjeta
3 - Abonar dinero a tu tarjeta.
Simula una tarjeta de crédito y el programa termina cuando tu saldo es CERO.
El problema es con los tipos de datos de las variables. Cuando intento abonar una cantidad como esta: 1500.50 debería de aparecer en el Fondo de la tarjeta: 6500.50 pero aparece 20550 UNA CIFRA INCORRECTA. PASA LO MISMO CON LOS RETIROS.
Apena ayer he comenzado con C# AYÚDENME POR FAVOR
NOTA: EL FONDO DE LA TARJETA ES DE 5000 y la clave de acceso es: User.
Código
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CAJERO_AUTOMATICO { class Program { static void Main(string[] args) { int resp2 = 100; //Variable de seleccion de operacion que el cliente desee realizar. int resp3 = 100; //Variable para seleccionar el articulo con un numero entre el 1 al 4 segun el articulo. int tv = 300; //Precio del televisor int refri = 500;//Precio de la refrigeradora int cama = 300;//Precio de la cama float retiro = 0.00F;//Variable que se usara si el cliente desea realizar un retiro float abono = 0.00F; //Variable que contendra el valor del abono. int videojuego = 200;//Precio de videojuego float fondo = 5000.00F;//Fondo del cliente double cuenta = 0.00;//Valor q acumulara los gastos que haga string clave = "";//Clave de acceso Console.Title = "Cajero Automatico de tarjeta de credito"; //Console.ForegroundColor = ConsoleColor.Black; //Console.BackgroundColor = ConsoleColor.Green; do { Console.Write("\n\nDigite su clave Por favor: "); clave = Console.ReadLine(); //Pedimos la clave while (clave != "User") //Mientras la clave sea incorrecta mostrar: { Console.Write("\n\nERROR CONTRASEÑA INCORRECTA INGRESELA NUEVAMENTE POR FAVOR: "); clave = Console.ReadLine(); } if ((clave == "User")) //Si la clave es correcta: { Console.Write("\n\n Carlos Roberto Arevalo Orellana su tarjeta tiene un fondo de: $"); Console.Write(+fondo + "\n\n"); //Mostramos el Fondo que tiene la "tarjeta" del cliente Console.Write(" Que deseas hacer: \n\n PRESIONA 1 SI DESEA: COMPRAR. \n\n PRESIONA 2 SI DESEA: RETIRAR DINERO\n\n PRESIONA 3 SI DESEA: ABONAR A SU CUENTA\n\n\tEleccion: "); resp2 = int.Parse(Console.ReadLine()); //Le pedimos al cliente que seleccione lo que desea hacer while(resp2 <= 0 || resp2>3){ //Condicion si ingresa un numero mayor que 2 o menor que cero Console.Write("\nDigito equivocado seleccione la operacion en base a los numeros de la izquierda: \n\n PRESIONA 1 SI DESEA: COMPRAR \n\n PRESIONA 2 SI DESEA: RETIRAR DINERO\n\n \tEleccion: "); resp2 = int.Parse(Console.ReadLine());} if (resp2 == 1) //Si selecciona con el numero 1 comprar un electrodomestico { Console.WriteLine("\n\n\t1 = Televisores: \t $300 \t\t2 = Refrigeradores: \t $500"); //Le ofrecemos las opciones y el selecciona su electrodomestico en base al numero del mismo. Console.WriteLine("\n\n\t3 = Cama: \t\t $300 \t 4 = Videojuegos \t\t $200\n\n"); Console.Write("\tElLECCION: "); resp3 = int.Parse(Console.ReadLine()); while( (resp3 > 4) || (resp3<=0)){ //Condicion su escribe un numero menor que cero o mayor que 4 Console.Write("\nDigito equivocado seleccione la operacion en base a los numeros de la izquierda: \n\n"); Console.WriteLine("\n\n\t1 = Televisores: \t $300 \t\t2 = Refrigeradores: \t $500"); //Le ofrecemos las opciones y el selecciona su electrodomestico en base al numero del mismo. Console.WriteLine("\n\n\t3 = Cama: \t\t $300 \t 4 = Videojuegos \t\t $200\n\n"); Console.Write("\tElLECCION: "); resp3 = int.Parse(Console.ReadLine()); } switch (resp3) //Seleccion de casos { case 1: fondo = fondo - tv; cuenta = cuenta + fondo; Console.Write("\n\nHa escogido un Televisor con un valor de $300.00, Su nuevo saldo es de: $"); Console.WriteLine(fondo); Console.Write("\n\nSu cuenta acumulada es de: $"); Console.WriteLine(cuenta); break; case 2: fondo = fondo - refri; cuenta = cuenta + refri; Console.Write("\n\nHa escogido un Refrigerador con un valor de $500.00, Su nuevo saldo es de: $"); Console.WriteLine(fondo); Console.Write("\n\nSu cuenta acumulada es de: $"); Console.WriteLine(cuenta); break; case 3: fondo = fondo - cama; cuenta = cuenta + cama; Console.Write("\n\nHa escogido una Cama con un valor de $300, Su nuevo saldo es de: $"); Console.WriteLine(fondo); Console.Write("\n\nSu cuenta acumulada es de: $"); Console.WriteLine(cuenta); break; case 4: fondo = fondo - videojuego; cuenta = cuenta + videojuego; Console.Write("\n\nHa escogido un Videojuego con un valor de $200, Su nuevo saldo es de: $"); Console.WriteLine(fondo); Console.Write("\n\nSu cuenta acumulada es de: $"); Console.WriteLine(cuenta); break; } //Fin de SWITCH }//Fin de segundo IF }//Fin de if Global 1 if (resp2 == 2) //Si en vez de comprar escoge retirar dinero con la opcion 2 { Console.Write("\n\nDigite la cantidad que desea retirar: $"); retiro = float.Parse(Console.ReadLine()); //Pedimos la cantidad que el quier retirar. while (retiro > fondo) //Condicion si el retiro deseado es mayor que el fondo o menor que cero { Console.Write("\n\nLA CANTIDAD QUE DESEA RETIRAR ES MUCHO MAYOR QUE EL FONDO QUE TIENE \nPOR FAVOR DIGITE UNA CANTIDAD MENOR QUE SU FONDO: $"+fondo+": $"); retiro = float.Parse(Console.ReadLine()); //fondo = fondo - retiro; Console.WriteLine("\n"); }//Fin de while de retiro fondo = fondo - retiro; Console.Write("\n\nSu nuevo saldo es de: $"); Console.WriteLine(fondo); }//Fin de if de retiro else if (resp2 == 3)//sI ELIGE HACER UN ABONO { Console.Write("\n\nDigite la cantidad que desea abonar: $"); abono = float.Parse(Console.ReadLine()); while (abono < 0) //CONDICION SI EL ABONO ES MENOR QUE CERO { Console.Write("\n\nLA CANTIDAD INGRESADA ES MENOR A CERO, POR FAVOR DIGITE UNA MAYOR A CERO: $"); abono = float.Parse(Console.ReadLine()); } fondo = (fondo + abono);//VALOR NUEVO DEL FONDO DESPUES DEL ABONO } //FIN DE CONDICIONES PARA CLIENTE 1. } while (fondo > 0);//Fin de Do-While Console.WriteLine("\n\nSU CUENTA SE HA QUEDADO SIN FONDO GRACIAS POR USAR ESTE CAJERO."); Console.ReadLine(); } } }