diff --git a/Bestellung.java b/Bestellung.java new file mode 100644 index 0000000..3d4f4da --- /dev/null +++ b/Bestellung.java @@ -0,0 +1,14 @@ +public class Bestellung { + private Warenkorb warenkorb; + private float versandkosten; + + public Bestellung(Warenkorb warenkorb, float versandkosten) { + this.warenkorb = warenkorb; + this.versandkosten = versandkosten; + } + + @Override + public String toString() { + return "Bestellung:\n" + warenkorb + "\nVersandkosten: " + versandkosten + " Euro\n"; + } +} diff --git a/Kunden.java b/Kunden.java index 6203cef..c8f4da7 100644 --- a/Kunden.java +++ b/Kunden.java @@ -1,42 +1,14 @@ - -class Kunden { - private String namek; +public class Kunden { + private String name; private String adresse; - private int kartennummer; - private String bank; - Kunden() { - } - - public String getnamek() { - return this.namek; - } - - void setnamek(String namek1) { - this.namek = this.namek; - } - - public String getAdresse() { - return this.adresse; - } - - public void setAdresse(String adresse) { + public Kunden(String name, String adresse) { + this.name = name; this.adresse = adresse; } - public int getKartennummer() { - return this.kartennummer; - } - - public void setKartennummer(int kartennummer) { - this.kartennummer = kartennummer; - } - - public String getBank() { - return this.bank; - } - - public void setBank(String bank) { - this.bank = bank; + @Override + public String toString() { + return "Name: " + name + ", Adresse: " + adresse; } } diff --git a/Main.java b/Main.java index 7aa0506..610a82b 100644 --- a/Main.java +++ b/Main.java @@ -1,63 +1,88 @@ - -import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; import java.util.Scanner; -public class Main { - static int anzahl; - static int id; - static float preis; - static int weiter; - public Main() { - } +public class Main { + static Warenkorb warenkorb = new Warenkorb(); + static List bestellungen = new ArrayList<>(); public static void main(String[] args) { - Prudukt gabel = new Prudukt("gabel", 30, 1, 1.12F); - Prudukt gabel1 = new Prudukt("messer", 30, 1, 1.14F); - Prudukt gabel2 = new Prudukt("loefel", 30, 1, 1.15F); - Warenkorb w = new Warenkorb(id, preis, anzahl); - PrintStream var10000 = System.out; - int var10001 = gabel.getId(); - var10000.println("ID: " + var10001 + "\nName: " + gabel.getName() + "\nPreis: " + gabel.getPreis() + "\nLagerbestand: " + gabel.getAnzahl()); - var10000 = System.out; - var10001 = gabel1.getId(); - var10000.println("ID: " + var10001 + "\nName: " + gabel1.getName() + "\nPreis: " + gabel1.getPreis() + "\nLagerbestand: " + gabel1.getAnzahl()); - var10000 = System.out; - var10001 = gabel2.getId(); - var10000.println("ID: " + var10001 + "\nName: " + gabel2.getName() + "\nPreis: " + gabel2.getPreis() + "\nLagerbestand: " + gabel2.getAnzahl()); - scanner1(); - if (weiter == 5) { - scanner1(); - } else if (weiter == 6) { - w.printGesamtPreis(); + // Erstellen von Produkten mit Name, ID, Preis und Gewicht + Prudukt gabel = new Prudukt("Gabel", 1, 1.12F, 0.1F); + Prudukt messer = new Prudukt("Messer", 2, 1.14F, 0.2F); + Prudukt loeffel = new Prudukt("Löffel", 3, 1.15F, 0.15F); + + Scanner scanner = new Scanner(System.in); + boolean einkaufFortsetzen = true; + + // Schleife, um Produkte in den Warenkorb hinzuzufügen + while (einkaufFortsetzen) { + // Produktliste anzeigen + System.out.println("Verfügbare Produkte:"); + System.out.println(gabel); + System.out.println(messer); + System.out.println(loeffel); + + // Produkt zum Warenkorb hinzufügen + System.out.println("Geben Sie die ID des gewünschten Produkts ein:"); + int id = scanner.nextInt(); + System.out.println("Geben Sie die Anzahl ein:"); + int anzahl = scanner.nextInt(); + + // Auswahl des Produkts basierend auf der ID + switch (id) { + case 1: + warenkorb.produktHinzufuegen(gabel, anzahl); + break; + case 2: + warenkorb.produktHinzufuegen(messer, anzahl); + break; + case 3: + warenkorb.produktHinzufuegen(loeffel, anzahl); + break; + default: + System.out.println("Ungültige Produkt-ID."); + break; + } + + // Benutzer fragen, ob er weiter einkaufen möchte + System.out.println("Möchten Sie weiter einkaufen? (1 für Ja, 0 für Nein)"); + einkaufFortsetzen = scanner.nextInt() == 1; } + // Warenkorb anzeigen und Gesamtkosten berechnen + warenkorb.printWarenkorb(); + + // Kundendaten eingeben kundenkauf(); + + // Bestellung abschließen und speichern + Bestellung bestellung = new Bestellung(warenkorb, warenkorb.berechneVersandkosten()); + bestellungen.add(bestellung); + + // Bestellungen anzeigen + System.out.println("Ihre Bestellung wurde gespeichert:"); + System.out.println(bestellung); + + // Alle Bestellungen anzeigen + System.out.println("Alle Bestellungen:"); + for (Bestellung b : bestellungen) { + System.out.println(b); + } } - static void scanner1() { - Scanner scanner = new Scanner(System.in); - System.out.println("gebn sie die gwünschte prudukt id ein"); - id = scanner.nextInt(); - System.out.println("gebn sie die gwünschte prudukt anzahl ein"); - anzahl = scanner.nextInt(); - System.out.println("für weiter einkauf bitte nummer 5 eingeben und für warenkorb 6"); - weiter = scanner.nextInt(); - } - + // Methode zur Eingabe von Kundendaten static void kundenkauf() { - Kunden m1 = new Kunden(); Scanner kundeinfo = new Scanner(System.in); - System.out.println("geben sie ihre daten ,name ein"); - String namek1 = kundeinfo.nextLine(); - m1.setnamek(namek1); - System.out.println("geben sie adresse ein "); - String adresse1 = kundeinfo.nextLine(); - m1.setAdresse(adresse1); - System.out.println("geben sie ihre daten ein "); - int kar = kundeinfo.nextInt(); - m1.setKartennummer(kar); - System.out.println("geben sie ihre daten ein "); - String bankn = kundeinfo.nextLine(); - m1.setBank(bankn); + System.out.println("Geben Sie Ihre Daten ein:"); + + System.out.print("Name: "); + String name = kundeinfo.nextLine(); + + System.out.print("Adresse: "); + String adresse = kundeinfo.nextLine(); + + // Setzen des Kunden im Warenkorb + warenkorb.setKunde(new Kunden(name, adresse)); } } diff --git a/Prudukt.java b/Prudukt.java new file mode 100644 index 0000000..6bb99f5 --- /dev/null +++ b/Prudukt.java @@ -0,0 +1,30 @@ +public class Prudukt { + private String name; + private int id; + private float preis; + private float gewicht; // Gewicht des Produkts + + public Prudukt(String name, int id, float preis, float gewicht) { + this.name = name; + this.id = id; + this.preis = preis; + this.gewicht = gewicht; + } + + public float getPreis() { + return preis; + } + + public float getGewicht() { + return gewicht; + } + + public int getId() { + return id; + } + + @Override + public String toString() { + return "ID: " + id + ", Name: " + name + ", Preis: " + preis + " Euro, Gewicht: " + gewicht + " kg"; + } +} diff --git a/Warenkorb.java b/Warenkorb.java index eb94309..f1a4016 100644 --- a/Warenkorb.java +++ b/Warenkorb.java @@ -1,18 +1,53 @@ -class Warenkorb { - int id; - float preis; - int anzahl; - float gesamtpreis; +import java.util.ArrayList; +import java.util.List; - Warenkorb(int id, float preis, int anzahl) { - this.id = id; - this.preis = preis; - this.anzahl = anzahl; +public class Warenkorb { + private List produkte = new ArrayList<>(); + private List anzahlProdukte = new ArrayList<>(); + private Kunden kunde; + + public void produktHinzufuegen(Prudukt produkt, int anzahl) { + produkte.add(produkt); + anzahlProdukte.add(anzahl); } - public void printGesamtPreis() { - float gesamtpreis = this.preis * (float)this.anzahl; - this.gesamtpreis = gesamtpreis; - System.out.println(gesamtpreis); + public void setKunde(Kunden kunde) { + this.kunde = kunde; + } + + public float berechneGesamtpreis() { + float gesamtpreis = 0; + for (int i = 0; i < produkte.size(); i++) { + gesamtpreis += produkte.get(i).getPreis() * anzahlProdukte.get(i); + } + return gesamtpreis; + } + + public float berechneGesamtgewicht() { + float gesamtgewicht = 0; + for (int i = 0; i < produkte.size(); i++) { + gesamtgewicht += produkte.get(i).getGewicht() * anzahlProdukte.get(i); + } + return gesamtgewicht; + } + + public float berechneVersandkosten() { + float gewicht = berechneGesamtgewicht(); + if (gewicht <= 1) { + return 5; + } else if (gewicht <= 2.5) { + return 8; + } else { + return 10; + } + } + + public void printWarenkorb() { + System.out.println("Warenkorb:"); + for (int i = 0; i < produkte.size(); i++) { + Prudukt produkt = produkte.get(i); + System.out.println(produkt + ", Anzahl: " + anzahlProdukte.get(i)); + } + System.out.println("Gesamtpreis: " + berechneGesamtpreis() + " Euro"); } } diff --git a/out/production/Online_schop/Kunden.class b/out/production/Online_schop/Kunden.class index 7c0ad18..05447b2 100644 Binary files a/out/production/Online_schop/Kunden.class and b/out/production/Online_schop/Kunden.class differ diff --git a/out/production/Online_schop/Main.class b/out/production/Online_schop/Main.class index ccf69e0..409e88d 100644 Binary files a/out/production/Online_schop/Main.class and b/out/production/Online_schop/Main.class differ diff --git a/out/production/Online_schop/Prudukt.class b/out/production/Online_schop/Prudukt.class index c5d9e37..0018712 100644 Binary files a/out/production/Online_schop/Prudukt.class and b/out/production/Online_schop/Prudukt.class differ diff --git a/out/production/Online_schop/Warenkorb.class b/out/production/Online_schop/Warenkorb.class index d09a487..2126ff2 100644 Binary files a/out/production/Online_schop/Warenkorb.class and b/out/production/Online_schop/Warenkorb.class differ diff --git a/prudukt.java b/prudukt.java deleted file mode 100644 index 4bb01f4..0000000 --- a/prudukt.java +++ /dev/null @@ -1,30 +0,0 @@ - -class Prudukt { - private String name; - private int anzahl; - private int id; - private float preis; - - Prudukt(String name, int anzahl, int id, float preis) { - this.name = name; - this.anzahl = anzahl; - this.id = id; - this.preis = preis; - } - - public float getPreis() { - return this.preis; - } - - public int getAnzahl() { - return this.anzahl; - } - - public String getName() { - return this.name; - } - - public int getId() { - return this.id; - } -}