-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJava code
More file actions
157 lines (138 loc) · 4.52 KB
/
Java code
File metadata and controls
157 lines (138 loc) · 4.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
class Beverage {
protected String name;
protected double price;
protected boolean available;
public Beverage(String name, double price) {
this.name = name;
this.price = price;
this.available = true;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
public boolean isAvailable() {
return available;
}
public void setAvailable(boolean available) {
this.available = available;
}
@Override
public String toString() {
return name + " - $" + price + " - " + (available ? "Available" : "Out of Stock");
}
}
class Coffee extends Beverage {
public Coffee(String name, double price) {
super(name, price);
}
}
class Tea extends Beverage {
public Tea(String name, double price) {
super(name, price);
}
}
import java.util.ArrayList;
import java.util.List;
class CoffeeShop {
private String name;
private List<Beverage> menu;
private List<Customer> customers;
public CoffeeShop(String name) {
this.name = name;
this.menu = new ArrayList<>();
this.customers = new ArrayList<>();
}
public void addBeverage(Beverage beverage) {
menu.add(beverage);
}
public void addCustomer(Customer customer) {
customers.add(customer);
}
public void displayMenu() {
System.out.println("Menu:");
for (Beverage beverage : menu) {
System.out.println(beverage);
}
System.out.println();
}
public Beverage searchBeverageByName(String beverageName) {
for (Beverage beverage : menu) {
if (beverage.getName().equals(beverageName)) {
return beverage;
}
}
return null;
}
public void serveBeverage(String beverageName, String customerName) {
Beverage beverage = searchBeverageByName(beverageName);
if (beverage.getName().equals(beverageName)) {
for (Customer customer : customers) {
if (customer.getName().equals(customerName)) {
customer.orderBeverage(beverage);
break;
}
}
}
}
public void displayCustomerOrders(String customerName) {
for (Customer customer : customers) {
if (customer.getName().equals(customerName)) {
System.out.println("Orders for " + customerName + ":");
for (Beverage beverage : customer.getOrderedBeverages()) {
System.out.println(beverage);
}
System.out.println();
break;
}
}
}
}
import java.util.ArrayList;
import java.util.List;
class Customer {
private String name;
private List<Beverage> orderedBeverages;
public Customer(String name) {
this.name = name;
this.orderedBeverages = new ArrayList<>();
}
public String getName() {
return name;
}
public List<Beverage> getOrderedBeverages() {
return orderedBeverages;
}
public void orderBeverage(Beverage beverage) {
orderedBeverages.add(beverage);
System.out.println(name + " ordered: " + beverage.getName());
System.out.println();
}
}
public class CoffeeShopTest {
public static void main(String[] args) {
CoffeeShop coffeeShop = new CoffeeShop("Caffe 24");
coffeeShop.addBeverage(new Coffee("Espresso", 5.0));
coffeeShop.addBeverage(new Coffee("Latte", 3.0));
coffeeShop.addBeverage(new Coffee("Cappuccino", 4.0));
coffeeShop.addBeverage(new Tea("Green Tea", 2.0));
coffeeShop.addBeverage(new Tea("Black Tea", 2.0));
coffeeShop.addBeverage(new Beverage("Coca Cola", 1.0));
coffeeShop.addCustomer(new Customer("Aritra"));
coffeeShop.addCustomer(new Customer("Prottoy"));
coffeeShop.addCustomer(new Customer("Arman"));
coffeeShop.addCustomer(new Customer("Tamim"));
coffeeShop.addCustomer(new Customer("Niloy"));
coffeeShop.displayMenu();
coffeeShop.serveBeverage("Espresso", "Aritra");
coffeeShop.serveBeverage("Cappuccino", "Prottoy");
coffeeShop.serveBeverage("Green Tea", "Arman");
coffeeShop.serveBeverage("Coca Cola", "Tamim");
coffeeShop.displayCustomerOrders("Aritra");
coffeeShop.displayCustomerOrders("Prottoy");
coffeeShop.displayCustomerOrders("Arman");
coffeeShop.displayCustomerOrders("Tamim");
}
}