From 8935b5991658435a4c6ff7637f752b6327517f6f Mon Sep 17 00:00:00 2001 From: "igor.lewandowski" <3029957@stud.th-mannheim.de> Date: Sun, 28 Dec 2025 14:04:41 +0100 Subject: [PATCH] Jede UI-Interaktion, befindet sich jetzt in der UI-Klasse --- src/TUI/ShopTUI.java | 115 +++++++++++++++++++++++++++++++----- src/backend/Bestellung.java | 23 ++++---- src/backend/OnlineShop.java | 99 +++++++------------------------ src/backend/Warenkorb.java | 1 - 4 files changed, 129 insertions(+), 109 deletions(-) diff --git a/src/TUI/ShopTUI.java b/src/TUI/ShopTUI.java index d22a242..e75b644 100644 --- a/src/TUI/ShopTUI.java +++ b/src/TUI/ShopTUI.java @@ -15,7 +15,7 @@ public class ShopTUI { } public static void hauptmenu(){ - System.out.println("Was möchten Sie tun? \n(1=Produktsuche, 2=Warenkorbanzeige, 3=backend.Bestellung abschließen, 0=Programm beenden): "); + System.out.println("Was möchten Sie tun? \n(1=Produktsuche, 2=Warenkorbanzeige, 3=Bestellung abschließen, 0=Programm beenden): "); while (true) { @@ -28,21 +28,91 @@ public class ShopTUI { break; case 2: - shop.warenkorbAusgabe(); + warenkorbAusgabe(); System.out.println("\n \n Möchten Sie gerne Änderungen vornehmen? \n 1=Produkte löschen, 2=Menge verändern, 3=Zurück zum Hauptmenü"); int warenkorbAuswahl = scanner.nextInt(); - if (warenkorbAuswahl == 1 || warenkorbAuswahl == 2) { - shop.warenkorbÄnderungen(warenkorbAuswahl); - hauptmenu(); + while (true) { + if (warenkorbAuswahl == 1) { + System.out.println("Welches Produkt möchten Sie aus dem Warenkorb löschen? \nBitte die Stelle im Warenkorb angeben (0=Hauptmenü)\n"); + int warenkorbStelle = scanner.nextInt(); + if (warenkorbStelle == 0) { + hauptmenu(); + } + while (true) { + if (warenkorbStelle > shop.lager.size()) { + System.out.println("Ungültige Eingabe! "); + continue; + } else { + break; + } + } + shop.warenkorbProduktEntfernen(warenkorbStelle); + } else if (warenkorbAuswahl == 2) { + System.out.println("Von welchem Produkt möchten Sie die Menge verändern \nBitte die Stelle im Warenkorb angeben (0=Hauptmenü)\n"); + int warenkorbStelle = scanner.nextInt(); + if (warenkorbStelle == 0) { + hauptmenu(); + } + while (true) { + if (warenkorbStelle > shop.lager.size()) { + System.out.println("Ungültige Eingabe! "); + continue; + } else { + break; + } + } + System.out.println("Bitte neue Menge angeben: "); + int mengeNeu = scanner.nextInt(); + shop.warenkorbMengeÄndern(mengeNeu, warenkorbStelle); + } else if (warenkorbAuswahl == 3) { + hauptmenu(); + } + warenkorbAusgabe(); + System.out.println("\n \n Möchten Sie weitere Änderungen vornehmen?(1=Ja, 2=Nein): "); + int auswahlNeu = scanner.nextInt(); + if (auswahlNeu == 1) { + System.out.println("1=Produkt löschen, 2=Menge verändern"); + warenkorbAuswahl = scanner.nextInt(); + continue; + } + else { + break; + } } - else if (warenkorbAuswahl == 3) { - hauptmenu(); - } - break; case 3: - shop.bestellungAbschließen(); + scanner = new Scanner(System.in); + System.out.println("Sind Sie sich sicher? (1=Fortfahren, 2=Hauptmenü)"); + int fortfahren = scanner.nextInt(); + if (fortfahren == 2) { + return; + } + System.out.println("Bitte geben Sie Ihren Namen an (Vorname Nachname): "); + scanner.nextLine(); + String name = scanner.nextLine(); + System.out.println("Bitte geben Sie Ihre Adresse ein (Straße Hausnummer PLZ Ort)"); + String adresse = scanner.nextLine(); + String[] bestellungToArray = shop.bestellungAbschließen(name, adresse); + //bestellungToArray[0] & [1] nicht nötig, da Name und Adresse auch hier deklariert worden + double versandkosten = Double.parseDouble(bestellungToArray[2]); + double anteil7 = Double.parseDouble(bestellungToArray[3]); + double anteil19 = Double.parseDouble(bestellungToArray[4]); + double gesamtPreis = Double.parseDouble(bestellungToArray[5]); + System.out.println("Bestellungbestätigung: \n" + name); + System.out.println("Der Gesamt Preis ihrer Bestellung berträgt "); + + if(gesamtPreis >= 500.0) { + gesamtPreis -= versandkosten; + System.out.print(gesamtPreis + "€, und das Versankostenfrei, da Ihre Bestellung über 500€ kostet\n"); + } + else { + System.out.print(gesamtPreis + "€, davon " + versandkosten + "€ Versandkosten"); + System.out.println(" (inkl. MwSt. 7%: " + anteil7 + " , MwSt. 19%: " + anteil19 + "€, Netto: " + (versandkosten - (anteil7 + anteil19)) + "€ \n"); + } + System.out.println("Ihre Bestellung wurde erflogreich aufgenommen und wird an " + adresse + " geliefert."); + System.out.println("Die Bestellung wird in 5-7 Werktagen bei Ihnen eintreffen. \nVielen Dank für Ihre Bestellung!"); + System.out.println("Möchten Sie die Seite schließen?(1=Ja, 2=Nein)"); int eingabe = scanner.nextInt(); if (eingabe == 1) { @@ -58,6 +128,7 @@ public class ShopTUI { System.exit(0); break; + default: System.out.println("Falsche Eingabe!"); continue; } @@ -70,12 +141,17 @@ public class ShopTUI { public static void produktsuche() { while (true) { - System.out.println("Geben Sie das gewünschte backend.Produkt mit der ProduktNr an"); + System.out.println("Geben Sie das gewünschte Produkt mit der ProduktNr an"); System.out.println("(0 für Anzeige der Produktinformationen, " + (shop.lager.size() + 1) + " um zum Hauptmenü zurückzukehren)"); Scanner scanner = new Scanner(System.in); int produktNr = scanner.nextInt(); if (produktNr == 0) { - shop.produkteInformationen(); + String[] produkt = shop.produkteInformationen(); + System.out.println("ProdId,Name,TransportGewicht,Netto,MwStSatz,Lagerbestand\n"); + for (String i : produkt){ + System.out.println(i); + } + continue; } else if (produktNr == shop.lager.size() + 1) { break; @@ -83,23 +159,23 @@ public class ShopTUI { int eingabe = 0; int menge=0; while (true) { - System.out.println("Wie viele möchten Sie in backend.Warenkorb legen?"); + System.out.println("Wie viele möchten Sie in Warenkorb legen?"); scanner = new Scanner(System.in); menge = scanner.nextInt(); if (shop.lager.get(produktNr - 1).getLagerbestand() < menge) { - System.out.println("Leider reicht unser Lagerbestand nicht aus. Wir haben nur " + shop.lager.get(produktNr - 1).getLagerbestand() + " Stück von diesem backend.Produkt.\nBitte geben Sie eine andere Menge an.\n"); + System.out.println("Leider reicht unser Lagerbestand nicht aus. Wir haben nur " + shop.lager.get(produktNr - 1).getLagerbestand() + " Stück von diesem Produkt.\nBitte geben Sie eine andere Menge an.\n"); continue; } else { break; } } - System.out.println("(" + shop.lager.get(produktNr - 1).getName() + ") " + menge + " mal in den backend.Warenkorb legen? (1=Ja, 2=Nein)"); + System.out.println("(" + shop.lager.get(produktNr - 1).getName() + ") " + menge + " mal in den Warenkorb legen? (1=Ja, 2=Nein)"); scanner = new Scanner(System.in); while (true) { eingabe = scanner.nextInt(); if (eingabe == 1) { shop.inWarenkorb(produktNr, menge); - System.out.println("Möchten Sie ein weiteres backend.Produkt hinzufügen? (1=Ja, 2=Nein)"); + System.out.println("Möchten Sie ein weiteres Produkt hinzufügen? (1=Ja, 2=Nein)"); scanner = new Scanner(System.in); eingabe = scanner.nextInt(); if (eingabe == 1) { @@ -117,6 +193,13 @@ public class ShopTUI { } } } + public static void warenkorbAusgabe() { + System.out.println("Der aktuelle Warenkorb sieht so aus: "); + String[] warenkorbZeilen = shop.warenkorbToArray(); + for (String i : warenkorbZeilen){ + System.out.println(i); + } + } } diff --git a/src/backend/Bestellung.java b/src/backend/Bestellung.java index 6133a60..0ac5ccb 100644 --- a/src/backend/Bestellung.java +++ b/src/backend/Bestellung.java @@ -24,20 +24,17 @@ double gesamtPreis; } } - public void bestellbestätigung(){ - System.out.println("Bestellungbestätigung: \n" + name); - System.out.println("Der Gesamt Preis ihrer backend.Bestellung berträgt "); - if(gesamtPreis >= 500.0) { - gesamtPreis -= versandkosten; - System.out.print(gesamtPreis + "€, und das Versankostenfrei, da Ihre backend.Bestellung über 500€ kostet\n"); - } - else { - System.out.print(gesamtPreis + "€, davon " + versandkosten + " Versandkosten"); - System.out.println(" (inkl. MwSt. 7%: " + anteil7 + " , MwSt. 19%: " + anteil19 + "€, Netto: " + (versandkosten - (anteil7 + anteil19)) + "€ \n"); - } - System.out.println("Ihre backend.Bestellung wurde erflogreich aufgenommen und wird an " + adresse + " geliefert."); - System.out.println("Die backend.Bestellung wird in 5-7 Werktagen bei Ihnen eintreffen. \nVielen Dank für Ihre backend.Bestellung!"); + public String[] bestellungToArray(){ + String[] bestellInfos = new String[6]; + bestellInfos[0] = name; + bestellInfos[1] = adresse; + bestellInfos[2] = String.valueOf(versandkosten); + bestellInfos[3] = String.valueOf(anteil7); + bestellInfos[4] = String.valueOf(anteil19); + bestellInfos[5] = String.valueOf(gesamtPreis); + + return bestellInfos; } diff --git a/src/backend/OnlineShop.java b/src/backend/OnlineShop.java index 77b4cd7..8c8d7a7 100644 --- a/src/backend/OnlineShop.java +++ b/src/backend/OnlineShop.java @@ -52,14 +52,12 @@ public class OnlineShop { } } - public void produkteInformationen() { + public String[] produkteInformationen() { String[] produkt = new String[lager.size()]; - System.out.println("ProdId,Name,TransportGewicht,Netto,MwStSatz,Lagerbestand\n"); for (int i = 0; i < lager.size(); i++) { produkt[i] = lager.get(i).toString(); - System.out.println(produkt[i]); } - System.out.println(""); + return produkt; } public void inWarenkorb(int produktNr, int menge){ @@ -67,87 +65,29 @@ public class OnlineShop { warenkorb.menge.add(menge); } - public void warenkorbAusgabe(){ + public String[] warenkorbToArray(){ - System.out.println("Der aktuelle backend.Warenkorb sieht so aus: "); + String[] warenkorbZeilen = new String[warenkorb.menge.size()]; double[] bruttopreis = warenkorb.bruttoPreisBerechnen(); - for (int i = 0; i < warenkorb.menge.size(); i++) {; - System.out.println(warenkorb.menge.get(i) + " Stück | " + lager.get(i).getName() + " | " + (bruttopreis[i] * warenkorb.menge.get(i)) + "€"); + for (int i = 0; i < warenkorb.menge.size(); i++){ + warenkorbZeilen[i] = String.valueOf(warenkorb.menge.get(i) + " Stück | " + lager.get(i).getName() + " | " + (bruttopreis[i] * warenkorb.menge.get(i)) + "€"); } + return warenkorbZeilen; + + } + public void warenkorbProduktEntfernen(int warenkorbStelle){ + warenkorb.menge.remove(warenkorbStelle-1); //".remove" mit Hilfe von KI + warenkorb.produkte.remove(warenkorbStelle-1); } - public void warenkorbÄnderungen(int auswahl){ - Scanner scanner = new Scanner(System.in); - if (auswahl == 1) { - System.out.println("Welches backend.Produkt möchten Sie aus dem backend.Warenkorb löschen? \nBitte die Stelle im backend.Warenkorb angeben (0=Hauptmenü)\n"); - int warenkorbStelle = scanner.nextInt(); - if (warenkorbStelle == 0) { - return; - } - while(true) { - if (warenkorbStelle > lager.size()) { - System.out.println("Ungültige Eingabe! "); - continue; - } - else {break;} - } - warenkorb.menge.remove(warenkorbStelle-1); //".remove" mit Hilfe von KI - warenkorb.produkte.remove(warenkorbStelle-1); - - - } else if (auswahl == 2) { - System.out.println("Von welchem backend.Produkt möchten Sie die Menge verändern \nBitte die Stelle im backend.Warenkorb angeben (0=Hauptmenü)\n"); - int warenkorbStelle = scanner.nextInt(); - if (warenkorbStelle == 0) { - return; - } - while (true) { - if (warenkorbStelle > lager.size()) { - System.out.println("Ungültige Eingabe! "); - continue; - } else { - break; - } - } - System.out.println("Bitte neue Menge angeben: "); - int mengeNeu = scanner.nextInt(); - - warenkorb.menge.set(warenkorbStelle-1, mengeNeu); - System.out.println(warenkorb.menge.get(warenkorbStelle-1)); - } - - warenkorbAusgabe(); - while(true) { - System.out.println("\n \n Möchten Sie weitere Änderungen vornehmen?(1=Ja, 2=Nein): "); - int auswahlNeu = scanner.nextInt(); - if (auswahlNeu == 1) { - System.out.println("1=backend.Produkt löschen, 2=Menge verändern"); - auswahl = scanner.nextInt(); - warenkorbÄnderungen(auswahl); - } - else if (auswahlNeu == 2) { - break; - } - else{ - System.out.println("Falsche Eingabe!"); - continue; - } - - } + public void warenkorbMengeÄndern(int mengeNeu, int warenkorbStelle){ + warenkorb.menge.set(warenkorbStelle-1, mengeNeu); + System.out.println(warenkorb.menge.get(warenkorbStelle-1)); } - public void bestellungAbschließen(){ - Scanner scanner = new Scanner(System.in); - System.out.println("Sind Sie sich sicher? (1=Fortfahren, 2=Hauptmenü)"); - int fortfahren = scanner.nextInt(); - if (fortfahren == 2) { - return; - } - System.out.println("Bitte geben Sie Ihren Namen an (Vorname Nachname): "); - scanner.nextLine(); - String name = scanner.nextLine(); - System.out.println("Bitte geben Sie Ihre Adresse ein (Straße Hausnummer PLZ Ort)"); - String adresse = scanner.nextLine(); + + public String[] bestellungAbschließen(String name, String adresse){ + Bestellung bestellung = new Bestellung(); bestellung.name = name; bestellung.adresse = adresse; @@ -165,7 +105,8 @@ public class OnlineShop { warenkorb.menge.clear(); //.clear() mit Hilfe von KI warenkorb.produkte.clear(); - bestellung.bestellbestätigung(); + + return bestellung.bestellungToArray(); } } diff --git a/src/backend/Warenkorb.java b/src/backend/Warenkorb.java index 31d22ff..6398ea6 100644 --- a/src/backend/Warenkorb.java +++ b/src/backend/Warenkorb.java @@ -35,7 +35,6 @@ public class Warenkorb { zählermwSteuer7 += menge.get(i);} } - System.out.println(zählermwSteuer7 + " " + zählermwSteuer19); double anteil7 = (double) zählermwSteuer7 / (zählermwSteuer19 + zählermwSteuer7); double anteil19 = (double) zählermwSteuer19 / (zählermwSteuer19 + zählermwSteuer7); double[] versandkostenUndAnteile = new double[3];