import java.util.ArrayList; import java.util.List; // Importiere die List-Schnittstelle public class Warenkorb { private List eintraege = new ArrayList<>(); private Kunden kunde; // Fügt ein Produkt zum Warenkorb hinzu public void produktHinzufuegen(Produkt produkt, int anzahl) { eintraege.add(new WarenkorbEintrag(produkt, anzahl)); } // Ändert die Anzahl eines Produkts im Warenkorb public void produktAendern(int produktId, int neueAnzahl) { for (WarenkorbEintrag eintrag : eintraege) { if (eintrag.getProdukt().getId() == produktId) { if (neueAnzahl <= 0) { eintraege.remove(eintrag); } else { eintrag.setAnzahl(neueAnzahl); } return; } } System.out.println("Produkt nicht im Warenkorb gefunden."); } // Entfernt ein Produkt aus dem Warenkorb public void produktEntfernen(int produktId) { for (WarenkorbEintrag eintrag : eintraege) { if (eintrag.getProdukt().getId() == produktId) { eintraege.remove(eintrag); System.out.println("Produkt entfernt: " + eintrag.getProdukt().getName()); return; } } System.out.println("Produkt nicht im Warenkorb gefunden."); } // Berechnet den Gesamtpreis aller Produkte im Warenkorb public float berechneGesamtPreis() { float gesamtpreis = 0; for (WarenkorbEintrag eintrag : eintraege) { gesamtpreis += eintrag.getProdukt().getPreis() * eintrag.getAnzahl(); } return gesamtpreis; } // Berechnet die Versandkosten basierend auf dem Gesamtgewicht public float berechneVersandkosten() { float gesamtgewicht = 0; for (WarenkorbEintrag eintrag : eintraege) { gesamtgewicht += eintrag.getProdukt().getGewicht() * eintrag.getAnzahl(); } if (gesamtgewicht <= 1) { return 5; // Versandkosten für < 1 kg } else if (gesamtgewicht <= 2.5) { return 8; // Versandkosten für < 2.5 kg } else { return 10; // Versandkosten für > 2.5 kg } } // Setzt den Kunden im Warenkorb public void setKunde(Kunden kunde) { this.kunde = kunde; } // Gibt den Kunden zurück public Kunden getKunde() { return kunde; } // Leert den Warenkorb public void leeren() { eintraege.clear(); kunde = null; // Optional: auch den Kunden zurücksetzen System.out.println("Der Warenkorb wurde geleert."); } @Override public String toString() { StringBuilder sb = new StringBuilder(); for (WarenkorbEintrag eintrag : eintraege) { sb.append(eintrag.toString()).append("\n"); } return sb.toString(); } }