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 LocalDateTime bestellDatum;
|
||||
|
||||
// Konstruktor mit Warenkorb und Versandkosten
|
||||
public Bestellung(Warenkorb warenkorb, float versandkosten) {
|
||||
if (warenkorb == null) {
|
||||
throw new IllegalArgumentException("Warenkorb darf nicht null sein.");
|
||||
|
@ -13,6 +14,7 @@ public class Bestellung {
|
|||
if (versandkosten < 0) {
|
||||
throw new IllegalArgumentException("Versandkosten dürfen nicht negativ sein.");
|
||||
}
|
||||
|
||||
this.warenkorb = warenkorb;
|
||||
this.versandkosten = versandkosten;
|
||||
this.bestellDatum = LocalDateTime.now(); // Bestelldatum setzen
|
||||
|
@ -34,10 +36,16 @@ public class Bestellung {
|
|||
return warenkorb.berechneGesamtPreis() + versandkosten;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
|
||||
return String.format("Bestellung am %s:\n%sVersandkosten: %.2f Euro\nGesamtpreis: %.2f Euro",
|
||||
bestellDatum.format(formatter), warenkorb.toString(), versandkosten, berechneGesamtpreis());
|
||||
Kunden kunde = warenkorb.getKunde(); // Kundenobjekt vom Warenkorb abrufen
|
||||
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;
|
||||
|
||||
public class Main {
|
||||
static String adresse;
|
||||
static Warenkorb warenkorb = new Warenkorb();
|
||||
static List<Bestellung> bestellungen = new ArrayList<>();
|
||||
|
||||
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);
|
||||
boolean einkaufFortsetzen = true;
|
||||
Onlineshop shop = new Onlineshop();
|
||||
|
||||
// Schleife, um Produkte in den Warenkorb hinzuzufügen
|
||||
while (einkaufFortsetzen) {
|
||||
// Produktliste anzeigen
|
||||
// Produkte erstellen und zum Shop hinzufügen
|
||||
Produkt gabel = new Produkt("Gabel", 1, 1.12F, 0.1F, 100);
|
||||
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(gabel);
|
||||
System.out.println(messer);
|
||||
System.out.println(loeffel);
|
||||
for (Produkt produkt : shop.getProdukte()) {
|
||||
System.out.println(produkt);
|
||||
}
|
||||
|
||||
// Produkt zum Warenkorb hinzufügen
|
||||
// Benutzereingaben (ID und Anzahl des Produkts)
|
||||
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) {
|
||||
// Produkt zum Warenkorb hinzufügen
|
||||
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:
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
default:
|
||||
System.out.println("Ungültige Produkt-ID.");
|
||||
break;
|
||||
System.out.println("Ungültige Auswahl.");
|
||||
}
|
||||
|
||||
// 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();
|
||||
}
|
||||
|
||||
// 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 int id;
|
||||
private float preis;
|
||||
private float gewicht;
|
||||
private int lagerbestand;
|
||||
|
||||
// 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.id = id;
|
||||
this.preis = preis;
|
||||
this.gewicht = gewicht;
|
||||
this.lagerbestand = lagerbestand;
|
||||
}
|
||||
|
||||
// Getter
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public float getPreis() {
|
||||
return preis;
|
||||
}
|
||||
|
@ -30,6 +33,6 @@ public class Prudukt {
|
|||
|
||||
@Override
|
||||
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.List;
|
||||
|
||||
import java.util.List; // Importiere die List-Schnittstelle
|
||||
public class Warenkorb {
|
||||
private List<WarenkorbEintrag> eintraege = new ArrayList<>();
|
||||
private Kunden kunde;
|
||||
|
||||
// Fügt ein Produkt zum Warenkorb hinzu von warenkorbeintrag
|
||||
public void produktHinzufuegen(Prudukt produkt, int anzahl) {
|
||||
// Fügt ein Produkt zum Warenkorb hinzu
|
||||
public void produktHinzufuegen(Produkt produkt, int anzahl) {
|
||||
eintraege.add(new WarenkorbEintrag(produkt, anzahl));
|
||||
}
|
||||
|
||||
|
@ -25,7 +24,7 @@ public class Warenkorb {
|
|||
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) {
|
||||
for (WarenkorbEintrag eintrag : eintraege) {
|
||||
if (eintrag.getProdukt().getId() == produktId) {
|
||||
|
@ -67,19 +66,26 @@ public class Warenkorb {
|
|||
this.kunde = kunde;
|
||||
}
|
||||
|
||||
// Gibt den Warenkorb und die Produkte aus KI
|
||||
public void printWarenkorb() {
|
||||
System.out.println(this);
|
||||
// Gibt den Kunden zurück
|
||||
public Kunden getKunde() {
|
||||
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() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("Warenkorb für: ").append(kunde != null ? kunde.getName() : "Unbekannt").append("\n");
|
||||
for (WarenkorbEintrag eintrag : eintraege) {
|
||||
sb.append(eintrag.toString()).append("\n");
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
public class WarenkorbEintrag {
|
||||
private Prudukt produkt;
|
||||
private Produkt produkt;
|
||||
private int anzahl;
|
||||
|
||||
public WarenkorbEintrag(Prudukt produkt, int anzahl) {
|
||||
public WarenkorbEintrag(Produkt produkt, int anzahl) {
|
||||
this.produkt = produkt;
|
||||
this.anzahl = anzahl;
|
||||
}
|
||||
|
||||
public Prudukt getProdukt() {
|
||||
public Produkt getProdukt() {
|
||||
return produkt;
|
||||
}
|
||||
|
||||
|
@ -21,6 +21,6 @@ public class WarenkorbEintrag {
|
|||
|
||||
@Override
|
||||
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