Supermercado


Se nos pide implementar el terminal punto de venta de un centro comercial un poco " especial" .

Este TPV irá destinado a la caja ràpida.i , como máximo , se podrán introducir hasta 3 productos y el valor de la compra siempre será inferior a 100 € ( ya os decía que era especial ! ) . El funcionamiento básico es el siguiente:

1) Código secreto para iniciar la TPV . El código secreto será la cadena 1234
2 ) Introducción del nombre del cajero
3) Introducción del precio del primer producto
4 ) Introducción del precio del segundo producto
5 ) Introducción del precio del tercer producto
6) Impresión por pantalla del total de la compra
7 ) Introducción del dinero que da el cliente
8) Impresión por pantalla de lo que tenemos que volver desglosado en billetes y monedas
9 ) Impresión del ticket ( por pantalla ) , añadiendo los puntos conseguidos por la compra . Cada 600 PTA de compra equivale a 1 punto . Siempre se redondeará por debajo ( 38,99 puntos son 38 puntos ) .

Un ejemplo de pantallas sería el siguiente :

Introduce código de desbloqueo : 1234
Introduce tu nombre : Pedro
1er producto : 10,34
2 º producto : 2,18
3er producto : 5,25
Total : 17,77 Euros ( 2.956,68 PTA)
Recibido : 20 Euros
A volver : 2,23 Euros
0 billetes de 50
0 billetes de 20
0 billetes de 10
0 billetes de 5
1 moneda de 2
0 moneda de 1
0 moneda de 50 cts
1 moneda de 20 cts
0 moneda de 10 cts
0 moneda de 5 cts
1 moneda de 2 cts
1 moneda de 1 cts
**************************
  SUPERMERCADOS ESPECIAL
**************************

Producto 1: 10,34
Producto 2: 2,18
Producto 3: 5,25
Total : 17,77 ( 2957 PTA)
Recibido : 20
Cambio : 2,23

Dado por: Pedro 10/07/2003

Ha conseguido : 4 puntos

Gracias por su visita

NOTAS
Siempre se introducen 3 productos .
Caso de que el cliente lleve menos introduciremos € 0 .



  1.  import cs1.Keyboard;
  2.    import java.io.*;
  3.    import java.util.*;
  4.    import java.lang.Math.*;
  5.    import java.text.DecimalFormat;
  6.    import java.text.DateFormat;
  7.    import java.util.Date;
  8.    import java.text.SimpleDateFormat;
  9.  
  10.    public class supermercado
  11.    {
  12.       public static void main (String[] args)
  13.       {
  14.      
  15.       //Variables
  16.          String pass, nom;
  17.          double precio1, precio2, precio3, total, pts, pago, devolucion, conv, puntos ;
  18.          int quant, Billetes, Monedas;
  19.          final double pesetas = 166.386;
  20.      
  21.       //introdución de datos
  22.          System.out.print ("introduce el codigo secreto:");
  23.          pass = Keyboard.readString ();
  24.          System.out.print ("introduce tu nombre y apellidos:");
  25.          nom = Keyboard.readString ();
  26.          System.out.print ("indica el precio del primer articulo:");
  27.          precio1 = Keyboard.readDouble();
  28.          System.out.print ("indica el precio del segundo articulo");
  29.          precio2 = Keyboard.readDouble();
  30.          System.out.print ("indica el precio del tercer articulo");
  31.          precio3 = Keyboard.readDouble();
  32.      
  33.       // Calculo del total
  34.          total = precio1 + precio2 + precio3;
  35.          conv = total * pesetas;
  36.          puntos = conv / 600;
  37.      
  38.          if (total <= 100){
  39.        
  40.          //restriciones de decimales
  41.             DecimalFormat totalb = new DecimalFormat ("0.00");
  42.             DecimalFormat precio1b = new DecimalFormat ("0.00");
  43.             DecimalFormat precio2b = new DecimalFormat ("0.00");
  44.             DecimalFormat precio3b = new DecimalFormat ("0.00");
  45.             DecimalFormat convb = new DecimalFormat ("0.00");
  46.             DecimalFormat pagob = new DecimalFormat ("0.00");
  47.             DecimalFormat devolucionb = new DecimalFormat ("0.00");
  48.        
  49.          // formato de fecha
  50.             Date fecha = new Date();
  51.             SimpleDateFormat DateFormat = new SimpleDateFormat ("dd/MM/yyyy");
  52.        
  53.          //mostrar información
  54.             System.out.println( "Total: " + totalb.format(total) + " €" + " (" + convb.format(conv) + " PTA)");
  55.        
  56.            
  57.          //introducion de pago del cliente
  58.             System.out.print ("\nIntroduce la cantidad de dinero pagada por el cliente:");
  59.             pago = Keyboard.readDouble ();
  60.        
  61.          //Calculo de la devolución
  62.             devolucion = pago -total;
  63.        
  64.          //Calculo de las monedas
  65.             quant = (int) (devolucion * 100);
  66.        
  67.          //Mostrar informacion
  68.             System.out.println ("Recibo:" + pagob.format (pago) + " € ");
  69.             System.out.println( "A devolver: " + devolucionb.format(devolucion) + " €" );
  70.        
  71.          //Desglosar devolucion
  72.             Billetes = (quant / 5000);
  73.             quant     = quant - (Billetes * 5000);
  74.             System.out.println("Billetes 50 : " + Billetes);
  75.             Billetes = (quant / 2000 );
  76.             quant     = quant - (Billetes * 2000);
  77.             System.out.println("Billetes 20 : " + Billetes);
  78.             Billetes = (quant / 1000 );
  79.             quant     = quant - (Billetes * 1000);
  80.             System.out.println("Billetes 10 : " + Billetes);
  81.             Billetes = (quant / 500 );
  82.             quant     = quant - (Billetes * 500);
  83.             System.out.println("Billetes 5 : " + Billetes);
  84.             Monedas = (quant / 200 );
  85.             quant     = quant - (Monedas * 200);
  86.             System.out.println("Monedas 2 : " + Monedas);
  87.             Monedas = (quant / 100 );
  88.             quant     = quant - (Monedas * 100);
  89.             System.out.println("Monedas 1 : " + Monedas);
  90.             Monedas = (quant / 50 );
  91.             quant     = quant - (Monedas * 50);
  92.             System.out.println("Monedas 50c : " + Monedas);
  93.             Monedas = (quant / 20 );
  94.             quant     = quant - (Monedas * 20);
  95.             System.out.println("Monedas 20c : " + Monedas);
  96.             Monedas = (quant / 10 );
  97.             quant     = quant - (Monedas * 10);
  98.             System.out.println("Monedas 10c : " + Monedas);
  99.             Monedas = (quant / 5 );
  100.             quant     = quant - (Monedas * 5);
  101.             System.out.println("Monedas 5c : " + Monedas);
  102.             Monedas = (quant / 2 );
  103.             quant     = quant - (Monedas * 2);
  104.             System.out.println("Monedas 2c : " + Monedas);
  105.             Monedas = (quant / 1 );
  106.             quant     = quant - (Monedas * 1);
  107.             System.out.println("Monedas 1c : " + Monedas);
  108.        
  109.        
  110.        
  111.          //Mostrar información
  112.             System.out.println( "\n*************************" + "\n SUPERMERCADOS ESPECIALES " +"\n*************************" );
  113.             System.out.println( "Primer artículo es: " + precio1b.format(precio1) + " €");
  114.             System.out.println( "Segundo artículo es: " + precio2b.format(precio2) + " €");
  115.             System.out.println( "Tercer article es: " + precio3b.format(precio3) + " €");
  116.             System.out.println( "Total: " + totalb.format(total) + " €" + " (" + Math.round(conv) + " PTA)");
  117.             System.out.println( "Recibido: " + pagob.format(pago) + " €");
  118.             System.out.println( "Cambio: " + devolucionb.format(devolucion) + " €" );
  119.             System.out.println( "\nAtendido por: " + nom + "    " + DateFormat.format(fecha));
  120.             System.out.println( "\nHa conseguido: " + (int)puntos + " Puntos");
  121.             System.out.println( "\nGracias por su visita" );
  122.          }
  123.          if (total>100)
  124.             System.out.println ( "La compra no se puede realizar porque la suma de los tres articulos es superior a 100" );
  125.        
  126.       }
  127.    }

No hay comentarios:

Publicar un comentario