Compare commits
No commits in common. "826cc2eabc1c68576cdb2b0c4d5c23a8721e1434" and "c4b21299987c65b79859cf4507a5be4390604c3d" have entirely different histories.
826cc2eabc
...
c4b2129998
|
@ -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());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
63
Main.java
63
Main.java
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
17
Prudukt.java
17
Prudukt.java
|
@ -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";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
104
Warenkorb.java
104
Warenkorb.java
|
@ -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();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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";
|
|
||||||
}
|
|
||||||
}
|
|
Binary file not shown.
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