Compare commits

..

No commits in common. "826cc2eabc1c68576cdb2b0c4d5c23a8721e1434" and "c4b21299987c65b79859cf4507a5be4390604c3d" have entirely different histories.

12 changed files with 64 additions and 194 deletions

View File

@ -1,43 +1,14 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Bestellung { public class Bestellung {
private Warenkorb warenkorb; private Warenkorb warenkorb;
private float versandkosten; private float versandkosten;
private LocalDateTime bestellDatum;
public Bestellung(Warenkorb warenkorb, float versandkosten) { public Bestellung(Warenkorb warenkorb, float versandkosten) {
if (warenkorb == null) {
throw new IllegalArgumentException("Warenkorb darf nicht null sein.");
}
if (versandkosten < 0) {
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
}
public Warenkorb getWarenkorb() {
return warenkorb;
}
public float getVersandkosten() {
return versandkosten;
}
public LocalDateTime getBestellDatum() {
return bestellDatum;
}
public float berechneGesamtpreis() {
return warenkorb.berechneGesamtPreis() + versandkosten;
} }
@Override @Override
public String toString() { public String toString() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"); return "Bestellung:\n" + warenkorb + "\nVersandkosten: " + versandkosten + " Euro\n";
return String.format("Bestellung am %s:\n%sVersandkosten: %.2f Euro\nGesamtpreis: %.2f Euro",
bestellDatum.format(formatter), warenkorb.toString(), versandkosten, berechneGesamtpreis());
} }
} }

View File

@ -7,11 +7,8 @@ public class Kunden {
this.adresse = adresse; this.adresse = adresse;
} }
public String getName() { @Override
return name; public String toString() {
} return "Name: " + name + ", Adresse: " + adresse;
public String getAdresse() {
return adresse;
} }
} }

View File

@ -3,7 +3,6 @@ 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 Warenkorb warenkorb = new Warenkorb();
static List<Bestellung> bestellungen = new ArrayList<>(); static List<Bestellung> bestellungen = new ArrayList<>();
@ -46,64 +45,30 @@ public class Main {
break; break;
} }
// Optionen für den Benutzer nach dem Hinzufügen anzeigen // Benutzer fragen, ob er weiter einkaufen möchte
boolean optionenAnzeigen = true; System.out.println("Möchten Sie weiter einkaufen? (1 für Ja, 0 für Nein)");
while (optionenAnzeigen) { einkaufFortsetzen = scanner.nextInt() == 1;
// Warenkorb anzeigen }
// Warenkorb anzeigen und Gesamtkosten berechnen
warenkorb.printWarenkorb(); warenkorb.printWarenkorb();
System.out.println("Was möchten Sie tun?"); // Kundendaten eingeben
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(); kundenkauf();
// Bestellung abschließen und speichern
Bestellung bestellung = new Bestellung(warenkorb, warenkorb.berechneVersandkosten()); Bestellung bestellung = new Bestellung(warenkorb, warenkorb.berechneVersandkosten());
bestellungen.add(bestellung); bestellungen.add(bestellung);
System.out.println("Ihre Bestellung wurde gespeichert:\n");
// Bestellungen anzeigen
System.out.println("Ihre Bestellung wurde gespeichert:");
System.out.println(bestellung); 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 // Alle Bestellungen anzeigen
System.out.println("Alle Bestellungen:"); System.out.println("Alle Bestellungen:");
for (Bestellung b : bestellungen) { for (Bestellung b : bestellungen) {
System.out.println(b); System.out.println(b);
} }
scanner.close();
} }
// Methode zur Eingabe von Kundendaten // Methode zur Eingabe von Kundendaten
@ -115,9 +80,9 @@ public class Main {
String name = kundeinfo.nextLine(); String name = kundeinfo.nextLine();
System.out.print("Adresse: "); System.out.print("Adresse: ");
adresse = kundeinfo.nextLine(); String adresse = kundeinfo.nextLine();
// Setzen des Kunden im Warenkorb mit Hilfe von ki den logig herrausgefunden // Setzen des Kunden im Warenkorb
warenkorb.setKunde(new Kunden(name, adresse)); warenkorb.setKunde(new Kunden(name, adresse));
} }
} }

View File

@ -2,9 +2,8 @@ public class Prudukt {
private String name; private String name;
private int id; private int id;
private float preis; private float preis;
private float gewicht; private float gewicht; // Gewicht des Produkts
// Konstruktor
public Prudukt(String name, int id, float preis, float gewicht) { public Prudukt(String name, int id, float preis, float gewicht) {
this.name = name; this.name = name;
this.id = id; this.id = id;
@ -12,14 +11,6 @@ public class Prudukt {
this.gewicht = gewicht; this.gewicht = gewicht;
} }
public String getName() {
return name;
}
public int getId() {
return id;
}
public float getPreis() { public float getPreis() {
return preis; return preis;
} }
@ -28,8 +19,12 @@ public class Prudukt {
return gewicht; return gewicht;
} }
public int getId() {
return id;
}
@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 "ID: " + id + ", Name: " + name + ", Preis: " + preis + " Euro, Gewicht: " + gewicht + " kg";
} }
} }

View File

@ -2,84 +2,52 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
public class Warenkorb { public class Warenkorb {
private List<WarenkorbEintrag> eintraege = new ArrayList<>(); private List<Prudukt> produkte = new ArrayList<>();
private List<Integer> anzahlProdukte = new ArrayList<>();
private Kunden kunde; private Kunden kunde;
// Fügt ein Produkt zum Warenkorb hinzu
public void produktHinzufuegen(Prudukt produkt, int anzahl) { public void produktHinzufuegen(Prudukt produkt, int anzahl) {
eintraege.add(new WarenkorbEintrag(produkt, anzahl)); produkte.add(produkt);
anzahlProdukte.add(anzahl);
} }
// Ändert die Anzahl eines Produkts im Warenkorb
public void produktAendern(int produktId, int neueAnzahl) {
for (WarenkorbEintrag eintrag : eintraege) {
if (eintrag.getProdukt().getId() == produktId) {
if (neueAnzahl <= 0) {
eintraege.remove(eintrag);
} else {
eintrag.setAnzahl(neueAnzahl);
}
return;
}
}
System.out.println("Produkt nicht im Warenkorb gefunden.");
}
// Löscht ein Produkt aus dem Warenkorb
public void produktEntfernen(int produktId) {
for (WarenkorbEintrag eintrag : eintraege) {
if (eintrag.getProdukt().getId() == produktId) {
eintraege.remove(eintrag);
System.out.println("Produkt entfernt: " + eintrag.getProdukt().getName());
return;
}
}
System.out.println("Produkt nicht im Warenkorb gefunden.");
}
// Berechnet den Gesamtpreis aller Produkte im Warenkorb
public float berechneGesamtPreis() {
float gesamtpreis = 0;
for (WarenkorbEintrag eintrag : eintraege) {
gesamtpreis += eintrag.getProdukt().getPreis() * eintrag.getAnzahl();
}
return gesamtpreis;
}
// Berechnet die Versandkosten basierend auf dem Gesamtgewicht
public float berechneVersandkosten() {
float gesamtgewicht = 0;
for (WarenkorbEintrag eintrag : eintraege) {
gesamtgewicht += eintrag.getProdukt().getGewicht() * eintrag.getAnzahl();
}
if (gesamtgewicht <= 1) {
return 5; // Versandkosten für < 1 kg
} else if (gesamtgewicht <= 2.5) {
return 8; // Versandkosten für < 2.5 kg
} else {
return 10; // Versandkosten für > 2.5 kg
}
}
// Setzt den Kunden im Warenkorb
public void setKunde(Kunden kunde) { public void setKunde(Kunden kunde) {
this.kunde = kunde; this.kunde = kunde;
} }
// Gibt den Warenkorb und die Produkte aus public float berechneGesamtpreis() {
float gesamtpreis = 0;
for (int i = 0; i < produkte.size(); i++) {
gesamtpreis += produkte.get(i).getPreis() * anzahlProdukte.get(i);
}
return gesamtpreis;
}
public float berechneGesamtgewicht() {
float gesamtgewicht = 0;
for (int i = 0; i < produkte.size(); i++) {
gesamtgewicht += produkte.get(i).getGewicht() * anzahlProdukte.get(i);
}
return gesamtgewicht;
}
public float berechneVersandkosten() {
float gewicht = berechneGesamtgewicht();
if (gewicht <= 1) {
return 5;
} else if (gewicht <= 2.5) {
return 8;
} else {
return 10;
}
}
public void printWarenkorb() { public void printWarenkorb() {
System.out.println(this); System.out.println("Warenkorb:");
for (int i = 0; i < produkte.size(); i++) {
Prudukt produkt = produkte.get(i);
System.out.println(produkt + ", Anzahl: " + anzahlProdukte.get(i));
} }
System.out.println("Gesamtpreis: " + berechneGesamtpreis() + " Euro");
@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();
} }
} }

View File

@ -1,26 +0,0 @@
public class WarenkorbEintrag {
private Prudukt produkt;
private int anzahl;
public WarenkorbEintrag(Prudukt produkt, int anzahl) {
this.produkt = produkt;
this.anzahl = anzahl;
}
public Prudukt getProdukt() {
return produkt;
}
public int getAnzahl() {
return anzahl;
}
public void setAnzahl(int anzahl) {
this.anzahl = anzahl;
}
@Override
public String toString() {
return produkt.getName() + " - Anzahl: " + anzahl + ", Preis: " + produkt.getPreis() + " Euro";
}
}