test 2 2017/2018
unknown
plain_text
2 years ago
4.7 kB
10
Indexable
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());
}
}
}
Editor is loading...
Leave a Comment