Sysouts und Scanner aus der Shop Verwaltung entfernt

master
Nicholas H. 2024-10-22 20:11:38 +02:00
parent 2c19cbe74a
commit 4b8a96a8ec
2 changed files with 98 additions and 95 deletions

View File

@ -3,143 +3,120 @@ package de.hs_mannheim.informatik.domain;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.Scanner;
public class ShopVerwaltung { public class ShopVerwaltung {
private Warenkorb warenkorb = new Warenkorb(); private Warenkorb warenkorb = new Warenkorb();
private ArrayList<Bestellung> bestellungen = new ArrayList<>(); private ArrayList<Bestellung> bestellungen = new ArrayList<>();
private Scanner scanner = new Scanner(System.in);
// 1. Produkte anzeigen // 1. Produkte anzeigen
public void produkteAnzeigen() { public ArrayList<String> produkteAnzeigen() {
System.out.println("Verfügbare Produkte:"); ArrayList<String> produktListe = new ArrayList<>();
for (Produkt produkt : Produkt.produktListe) { for (Produkt produkt : Produkt.produktListe) {
System.out.println(produkt.getName() + " - " + produkt.getBeschreibung() + " - Preis: " + produkt.getPreis() + " € - Bestand: " + produkt.getBestand()); produktListe.add(produkt.getName() + " - " + produkt.getBeschreibung() + " - Preis: " + produkt.getPreis() + " € - Bestand: " + produkt.getBestand());
} }
return produktListe;
} }
// 2. de.hs_mannheim.informatik.domain.Produkt zum de.hs_mannheim.informatik.domain.Warenkorb hinzufügen // 2. Produkt zum Warenkorb hinzufügen
public void produktZumWarenkorbHinzufuegen() { public String produktZumWarenkorbHinzufuegen(String produktName, int anzahl) {
System.out.println("Geben Sie den Namen des Produkts ein:");
String produktName = scanner.next();
Produkt produkt = Produkt.produktFinden(produktName); Produkt produkt = Produkt.produktFinden(produktName);
if (produkt != null) { if (produkt != null) {
System.out.println("Geben Sie die Anzahl ein:");
int anzahl = scanner.nextInt();
if (anzahl < 1) { if (anzahl < 1) {
System.out.println("Anzahl darf nicht kleiner als 1 sein"); return "Anzahl darf nicht kleiner als 1 sein";
return;
} }
if (anzahl <= produkt.getBestand()) { if (anzahl <= produkt.getBestand()) {
warenkorb.produktHinzufuegen(produkt, anzahl); warenkorb.produktHinzufuegen(produkt, anzahl);
produkt.setBestand(produkt.getBestand() - anzahl); // Bestand verringern produkt.setBestand(produkt.getBestand() - anzahl);
System.out.println("Produkt wurde zum Warenkorb hinzugefügt."); return "Produkt wurde zum Warenkorb hinzugefügt.";
} else { } else {
System.out.println("Nicht genug Bestand verfügbar."); return "Nicht genug Bestand verfügbar.";
} }
} else { } else {
System.out.println("Produkt nicht gefunden."); return "Produkt nicht gefunden.";
} }
} }
// 3. Warenkorb überarbeiten (Anzahl ändern oder löschen) // 3. Warenkorb überarbeiten (Anzahl ändern oder löschen)
public void warenkorbBearbeiten() { public String warenkorbBearbeiten(String aktion, String produktName, int neueAnzahl) {
System.out.println("Möchten Sie die Anzahl eines Produkts ändern oder ein Produkt löschen? (ändern/löschen)"); Produkt produkt = Produkt.produktFinden(produktName);
String aktion = scanner.next(); if (produkt == null || !warenkorb.getProduktanzahl().containsKey(produkt)) {
return "Produkt nicht im Warenkorb.";
}
if (aktion.equalsIgnoreCase("ändern")) { if (aktion.equalsIgnoreCase("ändern")) {
System.out.println("Welches Produkt möchten Sie ändern?"); if (neueAnzahl < 1) {
String produktName = scanner.next(); return "Anzahl darf nicht kleiner als 1 sein";
Produkt produkt = Produkt.produktFinden(produktName); }
if (produkt != null && warenkorb.getProduktanzahl().containsKey(produkt)) { if (neueAnzahl <= produkt.getBestand()) {
System.out.println("Geben Sie die neue Anzahl ein:"); produkt.setBestand(produkt.getBestand() + warenkorb.getProduktanzahl().get(produkt));
int neueAnzahl = scanner.nextInt(); warenkorb.produktHinzufuegen(produkt, neueAnzahl);
if (neueAnzahl < 1) { produkt.setBestand(produkt.getBestand() - neueAnzahl);
System.out.println("Anzahl darf nicht kleiner als 1 sein"); return "Anzahl wurde aktualisiert.";
return;
}
if (neueAnzahl <= produkt.getBestand()) {
produkt.setBestand(produkt.getBestand() + warenkorb.getProduktanzahl().get(produkt));
warenkorb.produktHinzufuegen(produkt, neueAnzahl);
produkt.setBestand(produkt.getBestand() - neueAnzahl);
System.out.println("Anzahl wurde aktualisiert.");
} else {
System.out.println("Nicht genug Bestand verfügbar.");
}
} else { } else {
System.out.println("Produkt nicht im Warenkorb."); return "Nicht genug Bestand verfügbar.";
} }
} else if (aktion.equalsIgnoreCase("löschen")) { } else if (aktion.equalsIgnoreCase("löschen")) {
System.out.println("Welches Produkt möchten Sie löschen?"); produkt.setBestand(produkt.getBestand() + warenkorb.getProduktanzahl().get(produkt));
String produktName = scanner.next(); warenkorb.getProduktanzahl().remove(produkt);
Produkt produkt = Produkt.produktFinden(produktName); return "Produkt wurde aus dem Warenkorb entfernt.";
if (produkt != null && warenkorb.getProduktanzahl().containsKey(produkt)) {
produkt.setBestand(produkt.getBestand() + warenkorb.getProduktanzahl().get(produkt));
warenkorb.getProduktanzahl().remove(produkt);
System.out.println("Produkt wurde aus dem Warenkorb entfernt.");
} else {
System.out.println("Produkt nicht im Warenkorb.");
}
} }
return "Ungültige Aktion.";
} }
// 4. Warenkorb anzeigen // 4. Warenkorb anzeigen
public void warenkorbAnzeigen() { public ArrayList<String> warenkorbAnzeigen() {
ArrayList<String> warenkorbListe = new ArrayList<>();
if (warenkorb.getProduktanzahl().isEmpty() || warenkorb == null) { if (warenkorb.getProduktanzahl().isEmpty()) {
System.out.println("Warenkorb ist leer."); warenkorbListe.add("Warenkorb ist leer.");
return; return warenkorbListe;
} }
System.out.println("Warenkorb:");
for (Produkt produkt : warenkorb.getProduktanzahl().keySet()) { for (Produkt produkt : warenkorb.getProduktanzahl().keySet()) {
int anzahl = warenkorb.getProduktanzahl().get(produkt); int anzahl = warenkorb.getProduktanzahl().get(produkt);
System.out.println(produkt.getName() + " - Anzahl: " + anzahl + " - Preis pro Stück: " + produkt.getPreis() + " €"); warenkorbListe.add(produkt.getName() + " - Anzahl: " + anzahl + " - Preis pro Stück: " + produkt.getPreis() + " €");
} }
System.out.println("Gesamtpreis: " + warenkorb.preisBerechnen() + " €"); warenkorbListe.add("Gesamtpreis: " + warenkorb.preisBerechnen() + " €");
System.out.println("Versandkosten: " + warenkorb.versandkostenBerechnen() + " €"); warenkorbListe.add("Versandkosten: " + warenkorb.versandkostenBerechnen() + " €");
System.out.println("Gesamtkosten: " + (warenkorb.preisBerechnen() + warenkorb.versandkostenBerechnen()) + " €"); warenkorbListe.add("Gesamtkosten: " + (warenkorb.preisBerechnen() + warenkorb.versandkostenBerechnen()) + " €");
return warenkorbListe;
} }
// 5. Bestellung tätigen // 5. Bestellung tätigen
public void bestellungTaetigen() { public String bestellungTaetigen(String name, String anschrift) {
if (warenkorb == null || warenkorb.getProduktanzahl().isEmpty()) { if (warenkorb.getProduktanzahl().isEmpty()) {
System.out.println("Keine Bestellung möglich, der Warenkorb ist leer."); return "Keine Bestellung möglich, der Warenkorb ist leer.";
return;
} }
scanner.nextLine();
System.out.println("Bitte geben Sie Ihren Namen ein:");
String name = scanner.nextLine();
System.out.println("Bitte geben Sie Ihre Anschrift ein:");
String anschrift = scanner.nextLine();
// Bestellung erstellen // Bestellung erstellen
Bestellung bestellung = new Bestellung(warenkorb, System.currentTimeMillis(), anschrift, name); Bestellung bestellung = new Bestellung(warenkorb, System.currentTimeMillis(), anschrift, name);
Bestellung.bestellungen.add(bestellung); Bestellung.bestellungen.add(bestellung);
System.out.println("Bestellung erfolgreich abgeschlossen!");
// Warenkorb leeren // Warenkorb leeren
warenkorb = new Warenkorb(); warenkorb = new Warenkorb();
return "Bestellung erfolgreich abgeschlossen!";
} }
// 6. Alle Bestellungen anzeigen // 6. Alle Bestellungen anzeigen
public void alleBestellungenAnzeigen() { public ArrayList<String> alleBestellungenAnzeigen() {
ArrayList<String> bestellListe = new ArrayList<>();
if (Bestellung.bestellungen.isEmpty()) { if (Bestellung.bestellungen.isEmpty()) {
System.out.println("Es wurde noch keine Bestellung getätigt."); bestellListe.add("Es wurde noch keine Bestellung getätigt.");
return; return bestellListe;
} else {
System.out.println("Alle Bestellungen:");
for (Bestellung bestellung : Bestellung.bestellungen) {
System.out.println("Kunde: " + bestellung.getName() + " - Anschrift: " + bestellung.getAnschrift());
System.out.println("Bestelldatum: " + new SimpleDateFormat("dd.MM.yyyy hh:mm:ss").format(new Date(bestellung.getBestelldatum())));
System.out.println("Warenkorb:");
for (Produkt produkt : bestellung.getWarenkorb().getProduktanzahl().keySet()) {
int anzahl = bestellung.getWarenkorb().getProduktanzahl().get(produkt);
System.out.println(produkt.getName() + " - Anzahl: " + anzahl);
}
double preis = bestellung.getWarenkorb().preisBerechnen();
double versand = bestellung.getWarenkorb().versandkostenBerechnen();
System.out.println("Gesamtpreis: " + (preis + versand) + " € (inkl. Versandkosten von " + versand + " €)");
System.out.println("------------");
}
} }
for (Bestellung bestellung : Bestellung.bestellungen) {
bestellListe.add("Kunde: " + bestellung.getName() + " - Anschrift: " + bestellung.getAnschrift());
bestellListe.add("Bestelldatum: " + new SimpleDateFormat("dd.MM.yyyy hh:mm:ss").format(new Date(bestellung.getBestelldatum())));
bestellListe.add("Warenkorb:");
for (Produkt produkt : bestellung.getWarenkorb().getProduktanzahl().keySet()) {
int anzahl = bestellung.getWarenkorb().getProduktanzahl().get(produkt);
bestellListe.add(produkt.getName() + " - Anzahl: " + anzahl);
}
double preis = bestellung.getWarenkorb().preisBerechnen();
double versand = bestellung.getWarenkorb().versandkostenBerechnen();
bestellListe.add("Gesamtpreis: " + (preis + versand) + " € (inkl. Versandkosten von " + versand + " €)");
bestellListe.add("------------");
}
return bestellListe;
} }
} }

View File

@ -12,7 +12,7 @@ public class Main {
while (true) { while (true) {
System.out.println("Online Shop:"); System.out.println("Online Shop:");
System.out.println("1. Produkte anzeigen"); System.out.println("1. Produkte anzeigen");
System.out.println("2. Warenkorb hinzufügen"); System.out.println("2. Produkt zum Warenkorb hinzufügen");
System.out.println("3. Warenkorb überarbeiten"); System.out.println("3. Warenkorb überarbeiten");
System.out.println("4. Warenkorb anzeigen"); System.out.println("4. Warenkorb anzeigen");
System.out.println("5. Bestellung tätigen"); System.out.println("5. Bestellung tätigen");
@ -23,6 +23,7 @@ public class Main {
int auswahl = 0; int auswahl = 0;
try { try {
auswahl = scanner.nextInt(); auswahl = scanner.nextInt();
scanner.nextLine(); // Clear buffer
} catch (Exception e) { } catch (Exception e) {
System.out.println("Ungültige Eingabe, nur Zahlen als Eingabe möglich."); System.out.println("Ungültige Eingabe, nur Zahlen als Eingabe möglich.");
break; break;
@ -30,22 +31,47 @@ public class Main {
switch (auswahl) { switch (auswahl) {
case 1: case 1:
shop.produkteAnzeigen(); for (String produkt : shop.produkteAnzeigen()) {
System.out.println(produkt);
}
break; break;
case 2: case 2:
shop.produktZumWarenkorbHinzufuegen(); System.out.println("Geben Sie den Namen des Produkts ein:");
String produktName = scanner.nextLine();
System.out.println("Geben Sie die Anzahl ein:");
int anzahl = scanner.nextInt();
scanner.nextLine(); // Clear buffer
System.out.println(shop.produktZumWarenkorbHinzufuegen(produktName, anzahl));
break; break;
case 3: case 3:
shop.warenkorbBearbeiten(); System.out.println("Möchten Sie die Anzahl eines Produkts ändern oder ein Produkt löschen? (ändern/löschen)");
String aktion = scanner.nextLine();
System.out.println("Welches Produkt möchten Sie ändern/löschen?");
produktName = scanner.nextLine();
int neueAnzahl = 0;
if (aktion.equalsIgnoreCase("ändern")) {
System.out.println("Geben Sie die neue Anzahl ein:");
neueAnzahl = scanner.nextInt();
scanner.nextLine(); // Clear buffer
}
System.out.println(shop.warenkorbBearbeiten(aktion, produktName, neueAnzahl));
break; break;
case 4: case 4:
shop.warenkorbAnzeigen(); for (String warenkorb : shop.warenkorbAnzeigen()) {
System.out.println(warenkorb);
}
break; break;
case 5: case 5:
shop.bestellungTaetigen(); System.out.println("Bitte geben Sie Ihren Namen ein:");
String name = scanner.nextLine();
System.out.println("Bitte geben Sie Ihre Anschrift ein:");
String anschrift = scanner.nextLine();
System.out.println(shop.bestellungTaetigen(name, anschrift));
break; break;
case 6: case 6:
shop.alleBestellungenAnzeigen(); for (String bestellung : shop.alleBestellungenAnzeigen()) {
System.out.println(bestellung);
}
break; break;
case 7: case 7:
System.out.println("Programm beendet."); System.out.println("Programm beendet.");