alles angepasst und geprüft online shop funktioniert, fragen ob die prudukte in onlinshop, sich ändern ,müssen,
parent
9b2bf0948b
commit
7fa82a0f35
|
@ -6,6 +6,7 @@ public class Bestellung {
|
||||||
private float versandkosten;
|
private float versandkosten;
|
||||||
private LocalDateTime bestellDatum;
|
private LocalDateTime bestellDatum;
|
||||||
|
|
||||||
|
// Konstruktor mit Warenkorb und Versandkosten
|
||||||
public Bestellung(Warenkorb warenkorb, float versandkosten) {
|
public Bestellung(Warenkorb warenkorb, float versandkosten) {
|
||||||
if (warenkorb == null) {
|
if (warenkorb == null) {
|
||||||
throw new IllegalArgumentException("Warenkorb darf nicht null sein.");
|
throw new IllegalArgumentException("Warenkorb darf nicht null sein.");
|
||||||
|
@ -13,6 +14,7 @@ public class Bestellung {
|
||||||
if (versandkosten < 0) {
|
if (versandkosten < 0) {
|
||||||
throw new IllegalArgumentException("Versandkosten dürfen nicht negativ sein.");
|
throw new IllegalArgumentException("Versandkosten dürfen nicht negativ sein.");
|
||||||
}
|
}
|
||||||
|
|
||||||
this.warenkorb = warenkorb;
|
this.warenkorb = warenkorb;
|
||||||
this.versandkosten = versandkosten;
|
this.versandkosten = versandkosten;
|
||||||
this.bestellDatum = LocalDateTime.now(); // Bestelldatum setzen
|
this.bestellDatum = LocalDateTime.now(); // Bestelldatum setzen
|
||||||
|
@ -34,10 +36,16 @@ public class Bestellung {
|
||||||
return warenkorb.berechneGesamtPreis() + versandkosten;
|
return warenkorb.berechneGesamtPreis() + versandkosten;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
|
||||||
return String.format("Bestellung am %s:\n%sVersandkosten: %.2f Euro\nGesamtpreis: %.2f Euro",
|
Kunden kunde = warenkorb.getKunde(); // Kundenobjekt vom Warenkorb abrufen
|
||||||
bestellDatum.format(formatter), warenkorb.toString(), versandkosten, berechneGesamtpreis());
|
String kundenName = kunde != null ? kunde.getName() : "Unbekannt";
|
||||||
|
String adresse = kunde != null ? kunde.getAdresse() : "Keine Adresse angegeben";
|
||||||
|
|
||||||
|
return String.format("Bestellung am %s:\nWarenkorb für: %s\n%sVersandkosten: %.2f Euro\nGesamtpreis: %.2f Euro\nAdresse: %s",
|
||||||
|
bestellDatum.format(formatter), kundenName, warenkorb.toString(), versandkosten, berechneGesamtpreis(), adresse);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
151
Main.java
151
Main.java
|
@ -1,123 +1,78 @@
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
static String adresse;
|
|
||||||
static Warenkorb warenkorb = new Warenkorb();
|
|
||||||
static List<Bestellung> bestellungen = new ArrayList<>();
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
// 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);
|
Scanner scanner = new Scanner(System.in);
|
||||||
boolean einkaufFortsetzen = true;
|
Onlineshop shop = new Onlineshop();
|
||||||
|
|
||||||
// Schleife, um Produkte in den Warenkorb hinzuzufügen
|
// Produkte erstellen und zum Shop hinzufügen
|
||||||
while (einkaufFortsetzen) {
|
Produkt gabel = new Produkt("Gabel", 1, 1.12F, 0.1F, 100);
|
||||||
// Produktliste anzeigen
|
Produkt messer = new Produkt("Messer", 2, 1.14F, 0.2F, 100);
|
||||||
|
Produkt loeffel = new Produkt("Löffel", 3, 1.15F, 0.15F, 100);
|
||||||
|
|
||||||
|
shop.produktHinzufuegen(gabel);
|
||||||
|
shop.produktHinzufuegen(messer);
|
||||||
|
shop.produktHinzufuegen(loeffel);
|
||||||
|
|
||||||
|
// Hauptmenü-Schleife für den Benutzer
|
||||||
|
boolean weiterEinkaufen = true;
|
||||||
|
while (weiterEinkaufen) {
|
||||||
System.out.println("Verfügbare Produkte:");
|
System.out.println("Verfügbare Produkte:");
|
||||||
System.out.println(gabel);
|
for (Produkt produkt : shop.getProdukte()) {
|
||||||
System.out.println(messer);
|
System.out.println(produkt);
|
||||||
System.out.println(loeffel);
|
}
|
||||||
|
|
||||||
// Produkt zum Warenkorb hinzufügen
|
// Benutzereingaben (ID und Anzahl des Produkts)
|
||||||
System.out.println("Geben Sie die ID des gewünschten Produkts ein:");
|
System.out.println("Geben Sie die ID des gewünschten Produkts ein:");
|
||||||
int id = scanner.nextInt();
|
int id = scanner.nextInt();
|
||||||
System.out.println("Geben Sie die Anzahl ein:");
|
System.out.println("Geben Sie die Anzahl ein:");
|
||||||
int anzahl = scanner.nextInt();
|
int anzahl = scanner.nextInt();
|
||||||
|
|
||||||
// Auswahl des Produkts basierend auf der ID
|
// Produkt zum Warenkorb hinzufügen
|
||||||
switch (id) {
|
boolean hinzugefuegt = shop.produktZuWarenkorbHinzufuegen(id, anzahl);
|
||||||
|
if (!hinzugefuegt) {
|
||||||
|
System.out.println("Ungültige Produkt-ID.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Menü nach Produktauswahl anzeigen
|
||||||
|
System.out.println("Was möchten Sie tun?");
|
||||||
|
System.out.println("1. Produkt ändern");
|
||||||
|
System.out.println("2. Produkt entfernen");
|
||||||
|
System.out.println("3. Weiter einkaufen");
|
||||||
|
System.out.println("4. Bestellung aufgeben");
|
||||||
|
|
||||||
|
int option = scanner.nextInt();
|
||||||
|
switch (option) {
|
||||||
case 1:
|
case 1:
|
||||||
warenkorb.produktHinzufuegen(gabel, anzahl);
|
System.out.println("Geben Sie die ID des Produkts ein, das Sie ändern möchten:");
|
||||||
|
int produktId = scanner.nextInt();
|
||||||
|
System.out.println("Geben Sie die neue Anzahl ein:");
|
||||||
|
int neueAnzahl = scanner.nextInt();
|
||||||
|
shop.produktAendern(produktId, neueAnzahl);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
warenkorb.produktHinzufuegen(messer, anzahl);
|
System.out.println("Geben Sie die ID des Produkts ein, das Sie entfernen möchten:");
|
||||||
|
int removeId = scanner.nextInt();
|
||||||
|
shop.produktEntfernen(removeId);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
warenkorb.produktHinzufuegen(loeffel, anzahl);
|
continue; // zurück ins Hauptmenü, um weiter einzukaufen
|
||||||
|
case 4:
|
||||||
|
System.out.println("Geben Sie Ihre Adresse ein:");
|
||||||
|
scanner.nextLine(); // Zeilenumbruch nach nextInt
|
||||||
|
String adresse = scanner.nextLine();
|
||||||
|
System.out.println("Geben Sie Ihren Namen ein:");
|
||||||
|
String name = scanner.nextLine();
|
||||||
|
// Setze den Kunden im Warenkorb
|
||||||
|
shop.setKunde(name, adresse);
|
||||||
|
// Bestellung aufgeben
|
||||||
|
shop.bestellungAufgeben(adresse, name);
|
||||||
|
weiterEinkaufen = false; // Beende die Schleife nach Bestellung
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
System.out.println("Ungültige Produkt-ID.");
|
System.out.println("Ungültige Auswahl.");
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Optionen für den Benutzer nach dem Hinzufügen anzeigen
|
|
||||||
boolean optionenAnzeigen = true;
|
|
||||||
while (optionenAnzeigen) {
|
|
||||||
// Warenkorb anzeigen
|
|
||||||
warenkorb.printWarenkorb();
|
|
||||||
|
|
||||||
System.out.println("Was möchten Sie tun?");
|
|
||||||
System.out.println("1. Produkt ändern");
|
|
||||||
System.out.println("2. Produkt entfernen");
|
|
||||||
System.out.println("3. Weiter einkaufen");
|
|
||||||
System.out.println("4. Bestellung aufgeben");
|
|
||||||
|
|
||||||
int option = scanner.nextInt();
|
|
||||||
switch (option) {
|
|
||||||
case 1: // Produkt ändern
|
|
||||||
System.out.println("Geben Sie die ID des Produkts ein, das Sie ändern möchten:");
|
|
||||||
int produktId = scanner.nextInt();
|
|
||||||
System.out.println("Geben Sie die neue Anzahl ein:");
|
|
||||||
int neueAnzahl = scanner.nextInt();
|
|
||||||
warenkorb.produktAendern(produktId, neueAnzahl);
|
|
||||||
break;
|
|
||||||
case 2: // Produkt entfernen
|
|
||||||
System.out.println("Geben Sie die ID des Produkts ein, das Sie entfernen möchten:");
|
|
||||||
int removeId = scanner.nextInt();
|
|
||||||
warenkorb.produktAendern(removeId, 0); // Wenn die neue Anzahl 0 ist, wird das Produkt entfernt.
|
|
||||||
System.out.println("vielen dank das prudukt wurde entfernt");
|
|
||||||
optionenAnzeigen = false;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 3: // Weiter einkaufen
|
|
||||||
optionenAnzeigen = false; // Schleife beenden, um wieder Produkte hinzuzufügen
|
|
||||||
break;
|
|
||||||
case 4: // Bestellung aufgeben
|
|
||||||
kundenkauf();
|
|
||||||
Bestellung bestellung = new Bestellung(warenkorb, warenkorb.berechneVersandkosten());
|
|
||||||
bestellungen.add(bestellung);
|
|
||||||
System.out.println("Ihre Bestellung wurde gespeichert:\n");
|
|
||||||
System.out.println(bestellung);
|
|
||||||
System.out.println("Ihre Packet wird an Ihre die Adresse "+adresse+" zugeschickt\n");
|
|
||||||
System.out.println("sie können jetzt weiter kaufen");
|
|
||||||
optionenAnzeigen = false; // Schleife beenden, da Bestellung abgeschlossen ist
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
System.out.println("Ungültige Auswahl. Bitte wählen Sie erneut.");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Alle Bestellungen anzeigen
|
|
||||||
System.out.println("Alle Bestellungen:");
|
|
||||||
for (Bestellung b : bestellungen) {
|
|
||||||
System.out.println(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
scanner.close();
|
scanner.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Methode zur Eingabe von Kundendaten
|
|
||||||
static void kundenkauf() {
|
|
||||||
Scanner kundeinfo = new Scanner(System.in);
|
|
||||||
System.out.println("Geben Sie Ihre Daten ein:");
|
|
||||||
|
|
||||||
System.out.print("Name: ");
|
|
||||||
String name = kundeinfo.nextLine();
|
|
||||||
|
|
||||||
System.out.print("Adresse: ");
|
|
||||||
adresse = kundeinfo.nextLine();
|
|
||||||
|
|
||||||
// Setzen des Kunden im Warenkorb mit Hilfe von ki den logig herrausgefunden
|
|
||||||
warenkorb.setKunde(new Kunden(name, adresse));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Onlineshop {
|
||||||
|
private List<Produkt> produkte; // Achte darauf, dass der Typ korrekt ist
|
||||||
|
private Warenkorb warenkorb;
|
||||||
|
private List<Bestellung> bestellungen;
|
||||||
|
|
||||||
|
public Onlineshop() {
|
||||||
|
this.produkte = new ArrayList<>();
|
||||||
|
this.warenkorb = new Warenkorb();
|
||||||
|
this.bestellungen = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// API: Produkt hinzufügen
|
||||||
|
public void produktHinzufuegen(Produkt produkt) { // Achte darauf, dass der Typ korrekt ist
|
||||||
|
produkte.add(produkt);
|
||||||
|
}
|
||||||
|
|
||||||
|
// API: Produkte zurückgeben (für Anzeige in der UI)
|
||||||
|
public List<Produkt> getProdukte() {
|
||||||
|
return produkte;
|
||||||
|
}
|
||||||
|
|
||||||
|
// API: Produkt in den Warenkorb legen
|
||||||
|
public boolean produktZuWarenkorbHinzufuegen(int produktId, int anzahl) {
|
||||||
|
for (Produkt produkt : produkte) { // Achte darauf, dass der Typ korrekt ist
|
||||||
|
if (produkt.getId() == produktId) {
|
||||||
|
warenkorb.produktHinzufuegen(produkt, anzahl);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false; // Produkt nicht gefunden
|
||||||
|
}
|
||||||
|
|
||||||
|
// API: Produktanzahl im Warenkorb ändern
|
||||||
|
public void produktAendern(int produktId, int neueAnzahl) {
|
||||||
|
warenkorb.produktAendern(produktId, neueAnzahl);
|
||||||
|
}
|
||||||
|
|
||||||
|
// API: Produkt aus Warenkorb entfernen
|
||||||
|
public void produktEntfernen(int produktId) {
|
||||||
|
warenkorb.produktEntfernen(produktId);
|
||||||
|
}
|
||||||
|
|
||||||
|
// API: Bestellung aufgeben
|
||||||
|
public void bestellungAufgeben(String adresse, String name) {
|
||||||
|
Bestellung bestellung = new Bestellung(warenkorb, warenkorb.berechneVersandkosten());
|
||||||
|
bestellungen.add(bestellung);
|
||||||
|
System.out.println("Ihre Bestellung wurde erfolgreich aufgegeben:\n" + bestellung);
|
||||||
|
warenkorb.leeren(); // Warenkorb nach Bestellung leeren
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setze den Kunden im Warenkorb (optional)
|
||||||
|
public void setKunde(String name, String adresse) {
|
||||||
|
warenkorb.setKunde(new Kunden(name, adresse));
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,25 +1,28 @@
|
||||||
public class Prudukt {
|
public class Produkt {
|
||||||
private String name;
|
private String name;
|
||||||
private int id;
|
private int id;
|
||||||
private float preis;
|
private float preis;
|
||||||
private float gewicht;
|
private float gewicht;
|
||||||
|
private int lagerbestand;
|
||||||
|
|
||||||
// Konstruktor
|
// Konstruktor
|
||||||
public Prudukt(String name, int id, float preis, float gewicht) {
|
public Produkt(String name, int id, float preis, float gewicht, int lagerbestand) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.preis = preis;
|
this.preis = preis;
|
||||||
this.gewicht = gewicht;
|
this.gewicht = gewicht;
|
||||||
|
this.lagerbestand = lagerbestand;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getter
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getPreis() {
|
public float getPreis() {
|
||||||
return preis;
|
return preis;
|
||||||
}
|
}
|
||||||
|
@ -30,6 +33,6 @@ public class Prudukt {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.format("ID: %d, Name: %s, Preis: %.2f Euro, Gewicht: %.2f kg", id, name, preis, gewicht);
|
return String.format("%s - ID: %d, Preis: %.2f Euro, Gewicht: %.2f kg", name, id, preis, gewicht);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,12 +1,11 @@
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List; // Importiere die List-Schnittstelle
|
||||||
|
|
||||||
public class Warenkorb {
|
public class Warenkorb {
|
||||||
private List<WarenkorbEintrag> eintraege = new ArrayList<>();
|
private List<WarenkorbEintrag> eintraege = new ArrayList<>();
|
||||||
private Kunden kunde;
|
private Kunden kunde;
|
||||||
|
|
||||||
// Fügt ein Produkt zum Warenkorb hinzu von warenkorbeintrag
|
// Fügt ein Produkt zum Warenkorb hinzu
|
||||||
public void produktHinzufuegen(Prudukt produkt, int anzahl) {
|
public void produktHinzufuegen(Produkt produkt, int anzahl) {
|
||||||
eintraege.add(new WarenkorbEintrag(produkt, anzahl));
|
eintraege.add(new WarenkorbEintrag(produkt, anzahl));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +24,7 @@ public class Warenkorb {
|
||||||
System.out.println("Produkt nicht im Warenkorb gefunden.");
|
System.out.println("Produkt nicht im Warenkorb gefunden.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Löscht ein Produkt aus dem Warenkorb
|
// Entfernt ein Produkt aus dem Warenkorb
|
||||||
public void produktEntfernen(int produktId) {
|
public void produktEntfernen(int produktId) {
|
||||||
for (WarenkorbEintrag eintrag : eintraege) {
|
for (WarenkorbEintrag eintrag : eintraege) {
|
||||||
if (eintrag.getProdukt().getId() == produktId) {
|
if (eintrag.getProdukt().getId() == produktId) {
|
||||||
|
@ -67,19 +66,26 @@ public class Warenkorb {
|
||||||
this.kunde = kunde;
|
this.kunde = kunde;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gibt den Warenkorb und die Produkte aus KI
|
// Gibt den Kunden zurück
|
||||||
public void printWarenkorb() {
|
public Kunden getKunde() {
|
||||||
System.out.println(this);
|
return kunde;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override //mit Hilfe von ki
|
// Leert den Warenkorb
|
||||||
|
public void leeren() {
|
||||||
|
eintraege.clear();
|
||||||
|
kunde = null; // Optional: auch den Kunden zurücksetzen
|
||||||
|
System.out.println("Der Warenkorb wurde geleert.");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append("Warenkorb für: ").append(kunde != null ? kunde.getName() : "Unbekannt").append("\n");
|
|
||||||
for (WarenkorbEintrag eintrag : eintraege) {
|
for (WarenkorbEintrag eintrag : eintraege) {
|
||||||
sb.append(eintrag.toString()).append("\n");
|
sb.append(eintrag.toString()).append("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
public class WarenkorbEintrag {
|
public class WarenkorbEintrag {
|
||||||
private Prudukt produkt;
|
private Produkt produkt;
|
||||||
private int anzahl;
|
private int anzahl;
|
||||||
|
|
||||||
public WarenkorbEintrag(Prudukt produkt, int anzahl) {
|
public WarenkorbEintrag(Produkt produkt, int anzahl) {
|
||||||
this.produkt = produkt;
|
this.produkt = produkt;
|
||||||
this.anzahl = anzahl;
|
this.anzahl = anzahl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Prudukt getProdukt() {
|
public Produkt getProdukt() {
|
||||||
return produkt;
|
return produkt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,6 +21,6 @@ public class WarenkorbEintrag {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return produkt.getName() + " - Anzahl: " + anzahl + ", Preis: " + produkt.getPreis() + " Euro";
|
return String.format("%s - Anzahl: %d, Preis: %.2f Euro", produkt.getName(), anzahl, produkt.getPreis());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue