Загрузка данных
java
Копировать
// Основной класс приложения для доставки пиццы
public class PizzaDeliveryApp {
public static void main(String[] args) {
// Создание объекта корзины
ShoppingCart cart = new ShoppingCart();
// Добавление пицц в корзину
Pizza margherita = new Pizza("Маргарита", 350.00);
margherita.addTopping("Оливки");
margherita.addTopping("Грибы");
cart.addItem(margherita);
Pizza pepperoni = new Pizza("Пепперони", 420.00);
pepperoni.addTopping("Колбаса пепперони");
cart.addItem(pepperoni);
// Отображение содержимого корзины
System.out.println("--- Ваша корзина ---");
for (CartItem item : cart.getItems()) {
System.out.println(item);
}
System.out.println("--------------------");
// Оформление заказа
Order order = new Order(cart);
System.out.println("--- Ваш заказ ---");
System.out.println(order);
System.out.println("-----------------");
// Имитация процесса оплаты и доставки
System.out.println("Заказ принят. Ожидайте доставку!");
}
}
// Класс, представляющий пиццу
class Pizza {
private String name;
private double price;
private java.util.List<String> toppings = new java.util.ArrayList<>();
public Pizza(String name, double price) {
this.name = name;
this.price = price;
}
public void addTopping(String topping) {
this.toppings.add(topping);
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
public java.util.List<String> getToppings() {
return toppings;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(name).append(" - ").append(String.format("%.2f", price)).append(" руб.");
if (!toppings.isEmpty()) {
sb.append(" (Добавки: ").append(String.join(", ", toppings)).append(")");
}
return sb.toString();
}
}
// Класс, представляющий элемент в корзине
class CartItem {
private Pizza pizza;
private int quantity;
public CartItem(Pizza pizza, int quantity) {
this.pizza = pizza;
this.quantity = quantity;
}
public Pizza getPizza() {
return pizza;
}
public int getQuantity() {
return quantity;
}
public double getTotalPrice() {
return pizza.getPrice() * quantity;
}
@Override
public String toString() {
return quantity + " x " + pizza.toString();
}
}
// Класс, представляющий корзину покупок
class ShoppingCart {
private java.util.List<CartItem> items = new java.util.ArrayList<>();
public void addItem(Pizza pizza) {
// Простая логика: если пицца уже есть, увеличиваем количество
for (CartItem item : items) {
if (item.getPizza().getName().equals(pizza.getName())) {
item = new CartItem(pizza, item.getQuantity() + 1); // Обновляем элемент
return;
}
}
items.add(new CartItem(pizza, 1));
}
public java.util.List<CartItem> getItems() {
return items;
}
public double getTotal() {
double total = 0;
for (CartItem item : items) {
total += item.getTotalPrice();
}
return total;
}
}
// Класс, представляющий заказ
class Order {
private java.util.List<CartItem> items;
private double totalAmount;
public Order(ShoppingCart cart) {
this.items = cart.getItems();
this.totalAmount = cart.getTotal();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
for (CartItem item : items) {
sb.append("- ").append(item).append("\n");
}
sb.append("Итого: ").append(String.format("%.2f", totalAmount)).append(" руб.");
return sb.toString();
}
}