+ Bestellen

+ Warenkorb wird geleert und weiter geeinkaufen

+ Menge der Positionen im Warenkorb bearbeiten
main
eronahasani 2025-12-12 20:27:00 +01:00
parent 1ba04f5320
commit 37509ec232
4 changed files with 149 additions and 46 deletions

View File

@ -29,10 +29,8 @@ public class OnlineShop {
Produkt p = new Produkt(id, name, gewicht, preis, mwst, bestand); Produkt p = new Produkt(id, name, gewicht, preis, mwst, bestand);
lager.add(p); lager.add(p);
} }
sc.close(); sc.close();
} }
@ -41,7 +39,29 @@ public class OnlineShop {
for(int i = 0; i < lager.size(); i++) { for(int i = 0; i < lager.size(); i++) {
produkt[i] = lager.get(i).toString(); produkt[i] = lager.get(i).toString();
} }
return produkt; return produkt;
} }
public boolean reduzieren(Produkt p, int menge) {
for (Produkt lagerProdukt : lager) {
if (lagerProdukt.equals(p)) {
if (lagerProdukt.bestand >= menge) {
lagerProdukt.bestand -= menge;
return true;
}
return false;
}
}
return false;
}
public void erhöhen(Produkt p, int menge) {
for (Produkt lagerProdukt : lager) {
if (lagerProdukt.equals(p)) {
lagerProdukt.bestand += menge;
return;
}
}
}
} }

View File

@ -2,7 +2,7 @@ package backend;
import java.util.ArrayList; import java.util.ArrayList;
public class Warenkorb { public class Warenkorb {
public ArrayList<Produkt> inhalt; private ArrayList<Produkt> inhalt;
private ArrayList<WarenkorbPosition> positionen; private ArrayList<WarenkorbPosition> positionen;
public Warenkorb() { public Warenkorb() {
@ -33,19 +33,43 @@ public class Warenkorb {
} }
public double berechneGesamtpreis() { public double berechneGesamtpreis() {
double preis = 0; double preis = 0;
for (Produkt p : inhalt) for (WarenkorbPosition wp : positionen) {
preis+= p.preis; preis += wp.getMenge() * wp.getProdukt().getPreis();
return preis; }
} return preis;
}
public void pEntfernen(Produkt p) {
public void bestellungSicht() { ArrayList<WarenkorbPosition> neu = new ArrayList<>();
for (WarenkorbPosition wp : positionen) { for (WarenkorbPosition wp : positionen) {
System.out.println(wp.getMenge() + "x " + wp.getProdukt().getName() + " - " + wp.getProdukt().getPreis() + "€"); if (!wp.getProdukt().equals(p)) {
neu.add(wp);
} else {
p.bestand += wp.getMenge();
}
} }
positionen = neu;
} }
public boolean mengeAendern(Produkt p, int neu) {
if (neu == 0) {
this.pEntfernen(p);
return true;
}
for (WarenkorbPosition wp : positionen) {
if (wp.getProdukt().equals(p)) {
wp.setMenge(neu);
return true;
}
}
return false;
}
} }

View File

@ -2,8 +2,8 @@ package backend;
public class WarenkorbPosition { public class WarenkorbPosition {
public Produkt produkt; private Produkt produkt;
public int menge; private int menge;
public WarenkorbPosition(Produkt produkt, int menge) { public WarenkorbPosition(Produkt produkt, int menge) {
this.produkt = produkt; this.produkt = produkt;
@ -17,7 +17,6 @@ public class WarenkorbPosition {
public int getMenge() { public int getMenge() {
return menge; return menge;
} }
public void setMenge(int menge) { public void setMenge(int menge) {
this.menge = menge; this.menge = menge;

View File

@ -10,18 +10,22 @@ import java.io.FileNotFoundException;
public class shopTUI { public class shopTUI {
private static OnlineShop shop; private static OnlineShop shop;
public static Warenkorb warenkorb = new Warenkorb(); private static Warenkorb warenkorb = new Warenkorb();
private static Scanner sc = new Scanner(System.in); private static Scanner sc = new Scanner(System.in);
public static void main(String[] args) throws FileNotFoundException { public static void main(String[] args) throws FileNotFoundException {
System.out.println("Willkommen bei Onami! („•֊•„)੭"); System.out.println("Willkommen bei Onami! („•֊•„)੭");
shop = new OnlineShop(); shop = new OnlineShop();
warenkorb = new Warenkorb();
hauptmenü(); hauptmenü();
} }
public static void hauptmenü() { public static void hauptmenü() {
System.out.println("\n ⋆ ˚。⋆ Hauptmenü ⋆ ˚。⋆ "); System.out.println("\n ⋆ ˚。⋆ Hauptmenü ⋆ ˚。⋆ ");
System.out.println(" ⏔⏔⏔⏔⏔⏔⏔ ꒰ ᧔ෆ᧓ ꒱ ⏔⏔⏔⏔⏔⏔⏔ "); System.out.println(" ⏔⏔⏔⏔⏔⏔⏔ ꒰ ᧔ෆ᧓ ꒱ ⏔⏔⏔⏔⏔⏔⏔ ");
System.out.println(" Produktangebot "); System.out.println(" Produktangebot ");
System.out.println(" Produktsuche "); System.out.println(" Produktsuche ");
@ -29,43 +33,41 @@ public class shopTUI {
System.out.println(" Beenden "); System.out.println(" Beenden ");
System.out.println(" ⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔ \n"); System.out.println(" ⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔⏔ \n");
System.out.print("Bitte geben Sie eine der Optionen an: "); System.out.print("Bitte geben Sie eine der Optionen an: ");
String eingabe = sc.nextLine().toLowerCase(); String eingabe = sc.nextLine().toLowerCase();
if (eingabe.equals("produktangebot")) { if (eingabe.equals("produktangebot") || eingabe.equals("angebot")) {
angebot(); angebot();
} else if (eingabe.equals("produktsuche")) { } else if (eingabe.equals("produktsuche") || eingabe.equals("suche")) {
suche(); suche();
} else if (eingabe.equals("warenkorb")) { } else if (eingabe.equals("warenkorb")) {
warenkorbAnzeigen(); warenkorbAnzeigen();
} else if (eingabe.equals("beenden")) { } else if (eingabe.equals("beenden")) {
System.out.println("\n\n\n | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| "); System.out.println("\n\n\n | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ");
System.out.println(" Auf Wiedersehen! "); System.out.println(" Auf Wiedersehen! ");
System.out.println(" |______________| "); System.out.println(" |______________| ");
System.out.println(" \\ (• ᴗ •) / "); System.out.println(" \\ (• ᴗ •) / ");
System.out.println(" \\ / "); System.out.println(" \\ / ");
} else { } else {
System.out.println("\n\n Bitte prüfen Sie Ihre Eingabe und versuchen Sie es erneut: "); System.out.println("\n\n Ungültige Eingabe (˃̣̣̥ᯅ˂̣̣̥) Versuchen Sie es bitte erneut:");
hauptmenü(); hauptmenü();
} }
} }
public static void angebot() { public static void angebot() {
System.out.println("\n\n\n૮ ྀིᴗ͈.ᴗ͈ ྀིა Unser Angebot: \n"); System.out.println("\n\n\n૮ ྀིᴗ͈.ᴗ͈ ྀིა Unser Angebot: \n");
String[] produkte = shop.produktListe(); String[] produkte = shop.produktListe();
for (int i = 0; i < produkte.length; i++) { for (int i = 0; i < produkte.length; i++) {
Produkt p = shop.lager.get(i); Produkt p = shop.lager.get(i);
System.out.printf("%-3d | %-25s | %.2f€\n", p.id, p.name, p.preis); System.out.printf(" %-2d | %-23s | %.2f€\n", p.id, p.name, p.preis);
} }
System.out.println(); System.out.println("\nWählen Sie ein Produkt anhand der Artikelnummer für Ihren Warenkorb aus \noder geben Sie 'Hauptmenü' an, wenn Sie zurück wollen: ");
System.out.println("Wählen Sie ein Produkt anhand der Artikelnummer für Ihren Warenkorb aus \noder geben Sie 'Hauptmenü' an, wenn Sie zurück wollen: ");
String eingabe = sc.nextLine().toLowerCase(); String eingabe = sc.nextLine().toLowerCase();
if (eingabe.equals("hauptmenü")) { if (eingabe.equals("hauptmenü")) {
hauptmenü(); hauptmenü();
return;
} }
int nummer = Integer.parseInt(eingabe); int nummer = Integer.parseInt(eingabe);
@ -77,7 +79,7 @@ public class shopTUI {
int menge = Integer.parseInt(sc.nextLine()); int menge = Integer.parseInt(sc.nextLine());
if (menge <= p.bestand) { if (menge <= p.bestand) {
warenkorb.produktHinzufügen(p, menge); warenkorb.produktHinzufügen(p, menge);
p.bestand -= menge; shop.reduzieren(p, menge);
System.out.println("Das Produkt wurde in der gewünschten Menge zum Warenkorb hinzugefügt ✧。٩(ˊᗜˋ)و✧*。"); System.out.println("Das Produkt wurde in der gewünschten Menge zum Warenkorb hinzugefügt ✧。٩(ˊᗜˋ)و✧*。");
} else { } else {
System.out.println("Leider reicht unser Bestand nicht aus (˃̣̣̥ᯅ˂̣̣̥)"); System.out.println("Leider reicht unser Bestand nicht aus (˃̣̣̥ᯅ˂̣̣̥)");
@ -86,6 +88,7 @@ public class shopTUI {
hauptmenü(); hauptmenü();
} }
public static void suche() { public static void suche() {
System.out.println("\n(˶˃ᵕ˂˶) Wonach suchen Sie?: "); System.out.println("\n(˶˃ᵕ˂˶) Wonach suchen Sie?: ");
String suchbegriff = sc.nextLine().toLowerCase(); String suchbegriff = sc.nextLine().toLowerCase();
@ -108,16 +111,17 @@ public class shopTUI {
System.out.println("\nMöchten Sie das Produkt zu Ihrem Warenkorb hinzufügen? (✿◠ᴗ◠)"); System.out.println("\nMöchten Sie das Produkt zu Ihrem Warenkorb hinzufügen? (✿◠ᴗ◠)");
String antwort = sc.nextLine().toLowerCase(); String antwort = sc.nextLine().toLowerCase();
if (antwort.equals("ja")) { if (antwort.equals("ja")) {
System.out.println("(„•֊•„) Geben Sie bitte die gewünschte Menge an: "); System.out.println("(„•֊•„) Geben Sie bitte die gewünschte Menge an: ");
int menge = Integer.parseInt(sc.nextLine()); int menge = Integer.parseInt(sc.nextLine());
if (menge <= p.bestand) { if (menge <= p.bestand) {
warenkorb.produktHinzufügen(p, menge); warenkorb.produktHinzufügen(p, menge);
p.bestand -= menge; shop.reduzieren(p, menge);
System.out.println("Das Produkt wurde in der gewünschten Menge zum Warenkorb hinzugefügt ✧。٩(ˊᗜˋ)و✧*。"); System.out.println("Das Produkt wurde in der gewünschten Menge zum Warenkorb hinzugefügt ✧。٩(ˊᗜˋ)و✧*。");
System.out.println("Ab zum Hauptmenü... ٩(^ᗜ^ )و \n\n\n"); System.out.println("Ab zum Hauptmenü... ٩(^ᗜ^ )و \n\n\n");
hauptmenü(); hauptmenü();
} else { } else {
System.out.println("Leider reicht unser Bestand nicht aus (˃̣̣̥ᯅ˂̣̣̥)"); System.out.println("Leider reicht unser Bestand nicht aus (˃̣̣̥ᯅ˂̣̣̥)");
System.out.println("Ab zum Hauptmenü... ٩(^ᗜ^ )و \n\n\n"); System.out.println("Ab zum Hauptmenü... ٩(^ᗜ^ )و \n\n\n");
@ -136,22 +140,31 @@ public class shopTUI {
hauptmenü(); hauptmenü();
} }
} }
public static void warenkorbAnzeigen() { public static void warenkorbAnzeigen() {
if (warenkorb.getPositionen().size() == 0) { if (warenkorb.getPositionen().size() == 0) {
System.out.println("\n\nIhr Warenkorb ist leer (˶ᵕ˶)⸝♡"); System.out.println("\n\nIhr Warenkorb ist leer (˶ᵕ˶)⸝♡");
System.out.println("Ab zum Hauptmenü... ٩(^ᗜ^ )و \n\n\n"); System.out.println("Ab zum Hauptmenü... ٩(^ᗜ^ )و \n\n\n");
hauptmenü(); hauptmenü();
} else { } else {
System.out.println("\n\n(。•◡•。) Hier ist Ihr aktueller Warenkorb: "); System.out.println("\n\n(。•◡•。) Hier ist Ihr aktueller Warenkorb: ");
int pos = 1;
for (WarenkorbPosition wp : warenkorb.getPositionen()) { for (WarenkorbPosition wp : warenkorb.getPositionen()) {
System.out.println(wp.getMenge() + "x | " + wp.getProdukt().getName() + " | " + wp.getProdukt().getPreis() + "€"); System.out.printf("Pos.: %2d. | %dx | %-23s | %.2f€\n",
pos++,
wp.getMenge(),
wp.getProdukt().getName(),
wp.getProdukt().getPreis());
} }
System.out.printf("Ihre Summe beträgt %.1f€ ૮˶ᵔᵕᵔ˶ა%n", warenkorb.berechneGesamtpreis()); System.out.printf("Ihre Summe beträgt %.2f€ ૮˶ᵔᵕᵔ˶ა%n", warenkorb.berechneGesamtpreis());
System.out.println("\n\n\nMöchten Sie bestellen oder zurück zum Hauptmenü?: "); System.out.println("\n\n\nMöchten Sie bestellen, die Menge ändern oder zurück zum Hauptmenü?: ");
String eingabe = sc.nextLine().toLowerCase(); String eingabe = sc.nextLine().toLowerCase();
if (eingabe.equals("hauptmenü")) { if (eingabe.equals("hauptmenü") || eingabe.equals("menü")) {
hauptmenü(); hauptmenü();
} else if (eingabe.equals("menge ändern") || eingabe.equals("die menge ändern") || eingabe.equals("ändern")) {
mengeBearbeiten();
} else if (eingabe.equals("bestellen")) { } else if (eingabe.equals("bestellen")) {
System.out.print("Bitte geben Sie Ihren vollständigen Namen ein: "); System.out.print("Bitte geben Sie Ihren vollständigen Namen ein: ");
String name = sc.nextLine(); String name = sc.nextLine();
@ -164,13 +177,60 @@ public class shopTUI {
System.out.println("━O━O━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"); System.out.println("━O━O━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
System.out.println("Name: "); System.out.println("Name: ");
System.out.println(name); System.out.println(name);
System.out.println("Adresse: "); System.out.println("\nAdresse: ");
System.out.println(adresse); System.out.println(adresse);
System.out.println("Artikel:" ); System.out.println("\nArtikel:" );
warenkorb.bestellungSicht(); int artpos = 1;
for (WarenkorbPosition wp : warenkorb.getPositionen()) {
System.out.printf("Pos.: %2d. | %d | %-23s | %.2f€\n",
artpos++,
wp.getMenge(),
wp.getProdukt().getName(),
wp.getProdukt().getPreis());
}
System.out.println("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"); System.out.println("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
warenkorb = new Warenkorb();
System.out.println("\n\nIhr Warenkorb wurde geleert! ◝(˶˃ᵕ˂˶)◜");
System.out.println("Ab zum Hauptmenü... ٩(^ᗜ^ )و \n\n\n");
hauptmenü();
} else {
System.out.println("\n\n Ungültige Eingabe (˃̣̣̥ᯅ˂̣̣̥) Versuchen Sie es bitte erneut: \n\n");
warenkorbAnzeigen();
} }
} }
} }
public static void mengeBearbeiten() {
System.out.print("Welche Position möchten Sie bearbeiten?: ");
int posNr = Integer.parseInt(sc.nextLine()) - 1;
if (posNr < 0 || posNr >= warenkorb.getPositionen().size()) {
System.out.println("Ungültige Eingabe (˃̣̣̥ᯅ˂̣̣̥) Versuchen Sie es bitte erneut:");
warenkorbAnzeigen();
return;
}
WarenkorbPosition wp = warenkorb.getPositionen().get(posNr);
Produkt p = wp.getProdukt();
int alt = wp.getMenge();
System.out.print("\nGeben Sie bitte die neue Menge: ");
int neu = Integer.parseInt(sc.nextLine());
int x = neu - alt;
if (neu == 0) {
warenkorb.pEntfernen(p);
System.out.println("Die Position wurde gelöscht! ✧。٩(ˊᗜˋ)و✧*。");
} else if (x > 0 && p.bestand < x) {
System.out.println("Leider reicht unser Bestand nicht aus (˃̣̣̥ᯅ˂̣̣̥)");
} else {
if (x > 0) shop.reduzieren(p, x);
else if (x < 0) shop.erhöhen(p, -x);
warenkorb.mengeAendern(p, neu);
System.out.println("Die Menge wurde geändert! ✧。٩(ˊᗜˋ)و✧*。");
}
warenkorbAnzeigen();
}
} }