Advertisement
Guest User

Untitled

a guest
Jun 25th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.13 KB | None | 0 0
  1. class Product {
  2.     final double price;
  3.     final String name;
  4.     final int amountForDiscount;
  5.     final double discount;
  6.  
  7.     Product(price, name) {
  8.         this.price = price;
  9.         this.name = name;
  10.         //Si no le metes cantidad para descuento, que tome como que todos tienen descuento de 1 (precio * 1 = precio)
  11.         this.amountForDiscount = 1;
  12.         //Si no le metes descuento, entonces que multiplique por 1 el precio, es decir, que no haga nada
  13.         this.discount = 1;
  14.     }
  15.  
  16.  
  17.     Product(price, name, amountForDiscount, discount) {
  18.         this.price = price;
  19.         this.name = name;
  20.         //Si no le metes cantidad para descuento, entonces que multiplique por 1 el precio, es decir, que no haga nada
  21.         this.amountForDiscount = amountForDiscount;
  22.         //Si no le metes descuento, entonces que multiplique por 1 el precio, es decir, que no haga nada
  23.         this.discount = discount;
  24.     }
  25.  
  26.     double getTotalPrice(amount) {
  27.         double total;
  28.         //comprobamos si ha comprado unidades suficientes para el descuento
  29.         if (amount >= amountForDiscount) {
  30.             //Si por ejemplo el descuento es 75% (0.75) por cada 3 y tu has comprado 5
  31.             // el precio serΓ‘ (5/3 es decir 1, por el precio y por el descuento) y lo que sobre (5%3 es decir 2, por el precio normal) )
  32.             total = ((amount / amountForDiscount) * price * discount) + (amount%amountForDiscount) * price;
  33.         } else {
  34.             total = amount * price;
  35.         }
  36.  
  37.         return total;
  38.     }
  39.  
  40.     String getBillLine(amount) {
  41.         return this.name + '.....' + amount + ' items .........' + getTotalPrice(amount) + '€';
  42.     }
  43.  
  44. }
  45.  
  46. class Machine {
  47.     Product[] products = new Product[5]();
  48.     products[0] = new Product(1.0, 'mantequilla', 2, '0.75');
  49.     products[1] = new Product(2.0, 'leche');
  50.     products[2] = new Product(3.0, 'pan', 3, '0.8');
  51.     products[3] = new Product(4.0, 'macarrones', 5, '0.9');
  52.     products[4] = new Product(5.0, 'aceite', 3, '0.75');
  53.  
  54.     double total = 0; //Aqui almacenamos el precio total a pagar de todo
  55.     String bill = ''; //Aqui almacenamos la factura, es decir: leche... 3 unidades... 4€ etc)
  56.  
  57.     void printProductsList() {
  58.         System.out.println('MENU CON OBJETOS A ELEGIR');
  59.     }
  60.  
  61.     String askProduct() {
  62.         String productName;
  63.         Scanner scan = new Scanner(System.in);
  64.         System.out.println('Introduce el nombre del producto o terminar para acabar');
  65.         return scan.nextLine();
  66.     }
  67.  
  68.     int askAmount() {
  69.         int amount;
  70.         Scanner scan = new Scanner(System.in);
  71.         System.out.println('Introduce la cantidad');
  72.         return scan.nextInt();
  73.     }
  74.  
  75.     //Busca el producto que le digas en el stock de tus productos y devuelve el producto
  76.     Product findProduct(name) {
  77.         Product aux;
  78.  
  79.         for(int i=0; i<this.products.length; i++) {
  80.             if (this.products[i].name == name) aux = this.products[i].name;
  81.         }
  82.  
  83.         return aux;
  84.     }
  85.  
  86.     void doShopping() {
  87.         String productName;
  88.         int amount;
  89.         Product productAux;
  90.  
  91.         do {
  92.             productName = this.askProduct();
  93.             amount = this.askAmount();
  94.            
  95.             productAux = this.findProduct(productName);
  96.  
  97.             this.total += productAux.getTotalPrice(amount);
  98.             this.bill += productAux.getBillLine(amount);
  99.  
  100.         } while(aux !== 'terminar');
  101.  
  102.         this.endBuy();
  103.     }
  104.  
  105.     void endBuy() {
  106.         System.out.println(bill);
  107.         System.out.println(total);
  108.     }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement