Advertisement
fosterbl

ShoppingCart.java

Feb 18th, 2020
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.43 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class ShoppingCart{
  4.    private ArrayList<Item> order;
  5.    private double total;
  6.    private double internalDiscount;
  7.  
  8.    public ShoppingCart(){
  9.       order = new ArrayList<Item>();
  10.       total = 0.0;
  11.       internalDiscount = 0.0;
  12.    }
  13.  
  14.    public void add(Item i) {
  15.       order.add(i);
  16.       total += i.getPrice();
  17.       if (i instanceof DiscountedItem)
  18.          internalDiscount += ((DiscountedItem) i).getDiscount();
  19.    }
  20.  
  21.      /** printOrder() will call toString() to print */
  22.    public void printOrder() {
  23.       System.out.println(this);
  24.    }
  25.  
  26.    public String toString() {
  27.       return discountToString();
  28.    }
  29.  
  30.    public String discountToString() {
  31.       return orderToString() + "\nSub-total: " + valueToString(total) + "\nDiscount: " + valueToString(internalDiscount) + "\nTotal: " + valueToString(total - internalDiscount);
  32.    }
  33.  
  34.    private String valueToString(double value) {
  35.       value = Math.rint(value * 100) / 100.0;
  36.       String result = "" + Math.abs(value);
  37.       if(result.indexOf(".") == result.length() - 2) {
  38.          result += "0";
  39.       }
  40.       result = "$" + result;
  41.       return result;
  42.    }
  43.  
  44.    public String orderToString() {
  45.       String build = "\nOrder Items:\n";
  46.       for(int i = 0; i < order.size(); i++) {
  47.          build += "   " + order.get(i);
  48.          if(i != order.size() - 1) {
  49.             build += "\n";
  50.          }
  51.       }
  52.       return build;
  53.    }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement