test 2 2017/2018

mail@pastecode.io avatar
unknown
plain_text
2 months ago
4.7 kB
4
Indexable
Never
import java.util.ArrayList;

// Class representing a coffee item
class Coffee {
    private String coffeeId;
    private String flavour;
    private double pricePerUnit;

    // Constructor to initialize coffee attributes
    public Coffee(String id, String n, double p) {
        coffeeId = id;
        flavour = n;
        pricePerUnit = p;
    }

    // Getter method for coffee ID
    public String getId() {
        return coffeeId;
    }

    // Getter method for coffee flavour
    public String getFlavour() {
        return flavour;
    }

    // Getter method for coffee price
    public double getPrice() {
        return pricePerUnit;
    }

    // Display method to print coffee details
    public void display() {
        System.out.printf("%-15s%-15s%-10.2f\n", coffeeId, flavour, pricePerUnit);
    }
}

// Class representing a discounted coffee item, extending Coffee class
class DiscountedItem extends Coffee {
    private double discRate;

    // Constructor to initialize discounted item attributes
    public DiscountedItem(String id, String n, double p, double r) {
        super(id, n, p); // Call superclass constructor
        discRate = r;
    }

    // Override getPrice method to apply discount
    @Override
    public double getPrice() {
        return super.getPrice() - (super.getPrice() * discRate);
    }
}

// Class representing a customer
class Customer {
    private String customerName;

    // Constructor to initialize customer name
    public Customer(String n) {
        customerName = n;
    }

    // Getter method for customer name
    public String getName() {
        return customerName;
    }
}

// Class representing a coffee order
class CoffeeOrder {
    private int orderId, unit;
    private Customer customer;
    private Coffee item;

    // Constructor to initialize coffee order attributes
    public CoffeeOrder(int id, Customer c, Coffee i, int u) {
        orderId = id;
        customer = c;
        item = i;
        unit = u;
    }

    // Method to calculate total price of the coffee order
    public double calcTotalPrice() {
        return item.getPrice() * unit;
    }

    // Getter method for customer name
    public String getName() {
        return customer.getName();
    }

    // Getter method for coffee flavour
    public String getFlavour() {
        return item.getFlavour();
    }

    // Override toString method to display coffee order details
    public String toString() {
        return "\nOrder ID: " + orderId + "\nCustomer Name: " + getName() + "\nFlavour: " + getFlavour()
                + "\nQuantity: " + unit + "\nPrice per Unit: " + item.getPrice() + "\nTotal Price: "
                + calcTotalPrice();
    }
}

// Main class for testing the coffee order system
public class TestOrder {
    public static void main(String[] args) {
        // Create instances of Coffee and DiscountedItem
        Coffee myCoffee = new Coffee("CC001", "Caramel", 10.00);
        DiscountedItem yourCoffee = new DiscountedItem("CC008", "Latte", 8.00, 0.10);
        Coffee hisCoffee = new Coffee("CC009", "Mocha", 9.00);

        // Display header for the coffee menu
        System.out.println("\n ITEM DESCRIPTION");
        System.out.println("********************");
        System.out.printf("%-15s%-15s%-25s\n", "Coffee ID", "Flavour", "Price");
        System.out.printf("%-15s%-15s%-25s\n", "*********", "********", "******");

        // Create ArrayList to store coffee items
        ArrayList<Coffee> menu = new ArrayList<>();
        menu.add(myCoffee);
        menu.add(yourCoffee);
        menu.add(hisCoffee);

        // Display coffee menu items
        for (int i = 0; i < menu.size(); i++) {
            menu.get(i).display();
        }

        System.out.println("************************************");

        // Create an array of customers
        Customer[] c = new Customer[2];
        c[0] = new Customer("Arif");
        c[1] = new Customer("Hakim");

        // Create ArrayList to store coffee orders
        ArrayList<CoffeeOrder> order = new ArrayList<>();
        // Add coffee orders to the list
        order.add(new CoffeeOrder(1, c[0], myCoffee, 2));
        order.add(new CoffeeOrder(2, c[1], yourCoffee, 3));
        order.add(new CoffeeOrder(3, c[1], hisCoffee, 1));

        // Display the list of coffee orders
        System.out.println("List of orders :\n");
        for (int i = 0; i < order.size(); i++) {
            System.out.println(order.get(i).toString());
        }
    }
}
Leave a Comment