*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