From d30521e9a25c0cd82059276a078af8b25b5e8e64 Mon Sep 17 00:00:00 2001 From: elarturo Date: Tue, 22 Oct 2024 10:44:52 +0200 Subject: [PATCH] =?UTF-8?q?Warenkorb=20Klasse=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../informatik/domain/Warenkorb.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Online_Shop/src/de/hs_mannheim/informatik/domain/Warenkorb.java diff --git a/Online_Shop/src/de/hs_mannheim/informatik/domain/Warenkorb.java b/Online_Shop/src/de/hs_mannheim/informatik/domain/Warenkorb.java new file mode 100644 index 0000000..38a9693 --- /dev/null +++ b/Online_Shop/src/de/hs_mannheim/informatik/domain/Warenkorb.java @@ -0,0 +1,56 @@ +package de.hs_mannheim.informatik.domain; + + +import java.util.HashMap; + +public class Warenkorb { + private final HashMap produktanzahl = new HashMap<>(); + + public HashMap getProduktanzahl() { + return produktanzahl; + } + + public void produktHinzufuegen(Produkt produkt, int anzahl) { + produktanzahl.put(produkt, anzahl); + } + + public double gewichtBerechnen() { + double finalesGewicht = 0; + for (Produkt produkt : produktanzahl.keySet()) { + int anzahl = produktanzahl.get(produkt); + double gewicht = produkt.getGewicht() * anzahl; + finalesGewicht += gewicht; + } + return finalesGewicht; + } + + + public double preisBerechnen() { + double finalerPreis = 0; + for (Produkt produkt : produktanzahl.keySet()) { + int anzahl = produktanzahl.get(produkt); + double preis = produkt.getPreis() * anzahl; + finalerPreis += preis; + + } + return finalerPreis; + } + + public double versandkostenBerechnen() { + // Berechne das Gesamtgewicht des Warenkorbs + double gesamtgewicht = 0; + for (Produkt produkt : produktanzahl.keySet()) { + int anzahl = produktanzahl.get(produkt); + gesamtgewicht += produkt.getGewicht() * anzahl; // Gewicht * Anzahl der Produkte + } + + // Versandkosten basierend auf dem Gesamtgewicht + if (gesamtgewicht <= 1000) { // Bis zu 1kg + return 5.0; + } else if (gesamtgewicht <= 2500) { // Bis zu 2,5kg + return 8.0; + } else { // Über 2,5kg + return 10.0; + } + } +} \ No newline at end of file