Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - arcaydus

#1
Este código simula una mini tienda virtual desde donde tu a traves de un cajero puedes hacer los siguiente:

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 (csharp) [Seleccionar]
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();
        }
    }
}