domingo, 9 de mayo de 2010

Resolución de la Pregunta 1 de la Prueba

/**
*Este programa permite describir el vuelto exacto indicando la cantidad de monedas y billetes necesarios,
* de acuerdo al monto de la venta, porcentaje de descuento y el monto pagado por el cliente.
*
*/
import java.io.*;
import java.lang.Math;
import java.text.NumberFormat;

public  class p01 {
    public static void main (String args[]) throws IOException    {
    int i;
    String opcion;
    String []billetes=new String[12];
    int []sencillo = new int[12];
    int porcentaje;
    Double venta, venta2, pago, vuelto;
    NumberFormat nf = NumberFormat.getCurrencyInstance();
   
    /* INICIALIZO EL VALOR DE LAS MONEDAS Y BILLETES */
        billetes[0]="0.01";
        billetes[1]="0.05";
        billetes[2]="0.10";
        billetes[3]="0.25";
        billetes[4]="0.50";
        billetes[5]="1";
        billetes[6]="2";
        billetes[7]="5";
        billetes[8]="10";
        billetes[9]="20";
        billetes[10]="50";
        billetes[11]="100";

        BufferedReader in;
        in=new BufferedReader(new InputStreamReader(System.in));

        do {
//  INICIALIZO LA CANTIDAD DE BILLETES NECESARIOS PARA EL VUELTO A CERO
            for (i=0;i<12;i++) sencillo[i]=0;
            porcentaje = 0;
            venta2 = 0.0;
            System.out.println("\n\n\n");
            System.out.println("*****  Menu de Operaciones  *****\n");
            System.out.println("         1: Registrar una venta.");
            System.out.println("         2: Salir del Menu.\n");
            System.out.print("Seleccione una Opcion: ");
            opcion=in.readLine();

            if (opcion.equals("1"))            {
                do                 {
                    System.out.print("\n\nIntroduzca el Monto de la Venta:");
                        venta=Double.parseDouble(in.readLine());
                    if (venta<=0)
                        System.out.print("\n\nERROR el Monto de la venta debe ser mayor a Bs 0.\n\n\n");
                } while (venta<=0);           

                do {
                    System.out.print("\nIntroduzca el porcentaje del descuento: ");
                    porcentaje = Integer.parseInt(in.readLine());
                    if ((porcentaje<0)|(porcentaje>99))
                        System.out.print("\nERROR Monto del porcentaje debe ser >= 0 y < 100.\n\n");
                } while ((porcentaje<0) | (porcentaje>99)) ;
   
                venta2= (venta - (venta*porcentaje/100));
                System.out.print("\nEl monto a pagar es: " + nf.format(venta2) + ".\n\n");
               
                do {
                    System.out.print("\nIntroduzca el Monto del Pago: ");
                    pago=Double.parseDouble(in.readLine());
                    if (pago
                        System.out.print("\n\n\nERROR el Monto del Pago no puede ser menor a la venta.\n\n");
                } while (pago

                vuelto=pago-venta2;
                System.out.print("\n\nEl Monto de la Venta es: " + nf.format(venta));
                System.out.print("\nEl porcentaje de descuento es: " + porcentaje);
                System.out.print("\nEl monto a pagar es: " + nf.format(venta2));
                System.out.print("\n\nEl vuelto es: " + nf.format(vuelto) + "\n\n");

                i=11;
                while (i>=0)
                {
                    if (vuelto>=Double.valueOf(billetes[i]))
                    {
                        Double aux = new Double (vuelto / (Double.valueOf(billetes[i])));
                        sencillo[i]= aux.intValue();
                        vuelto = vuelto - (sencillo[i]*Double.valueOf(billetes[i]));
                    }
                    i--;
                }
                if ((pago-venta2)>0)   {
                    System.out.println("Entregar el vuelto de la siguiente manera:");
                    System.out.println("\n\n");
                    for (i=0;i<12;i++)
                    {
                        if (sencillo[i]==0)
                            continue;
                        else
                        {
                            if (i>5)
                            {
                                System.out.println(sencillo[i] + " billetes de Bs. " + billetes[i]);
                            }
                            else
                            {
                                System.out.println(sencillo[i] + " monedas de Bs. " + billetes[i]);
                            }
                        }
                    }
                }
            }
        } while (!opcion.equals("2"));
    }
}

No hay comentarios:

Publicar un comentario