Compare commits
2 Commits
c4b2129998
...
826cc2eabc
Author | SHA1 | Date |
---|---|---|
Zabih Mansuri | 826cc2eabc | |
Zabih Mansuri | ca6cd738a3 |
|
@ -1,14 +1,43 @@
|
||||||
|
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() {
|
||||||
return "Bestellung:\n" + warenkorb + "\nVersandkosten: " + versandkosten + " Euro\n";
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,8 +7,11 @@ public class Kunden {
|
||||||
this.adresse = adresse;
|
this.adresse = adresse;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public String getName() {
|
||||||
public String toString() {
|
return name;
|
||||||
return "Name: " + name + ", Adresse: " + adresse;
|
}
|
||||||
|
|
||||||
|
public String getAdresse() {
|
||||||
|
return adresse;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
75
Main.java
75
Main.java
|
@ -3,6 +3,7 @@ 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<>();
|
||||||
|
|
||||||
|
@ -45,30 +46,64 @@ public class Main {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Benutzer fragen, ob er weiter einkaufen möchte
|
// Optionen für den Benutzer nach dem Hinzufügen anzeigen
|
||||||
System.out.println("Möchten Sie weiter einkaufen? (1 für Ja, 0 für Nein)");
|
boolean optionenAnzeigen = true;
|
||||||
einkaufFortsetzen = scanner.nextInt() == 1;
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Warenkorb anzeigen und Gesamtkosten berechnen
|
|
||||||
warenkorb.printWarenkorb();
|
|
||||||
|
|
||||||
// Kundendaten eingeben
|
|
||||||
kundenkauf();
|
|
||||||
|
|
||||||
// Bestellung abschließen und speichern
|
|
||||||
Bestellung bestellung = new Bestellung(warenkorb, warenkorb.berechneVersandkosten());
|
|
||||||
bestellungen.add(bestellung);
|
|
||||||
|
|
||||||
// Bestellungen anzeigen
|
|
||||||
System.out.println("Ihre Bestellung wurde gespeichert:");
|
|
||||||
System.out.println(bestellung);
|
|
||||||
|
|
||||||
// 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
|
||||||
|
@ -77,12 +112,12 @@ public class Main {
|
||||||
System.out.println("Geben Sie Ihre Daten ein:");
|
System.out.println("Geben Sie Ihre Daten ein:");
|
||||||
|
|
||||||
System.out.print("Name: ");
|
System.out.print("Name: ");
|
||||||
String name = kundeinfo.nextLine();
|
String name = kundeinfo.nextLine();
|
||||||
|
|
||||||
System.out.print("Adresse: ");
|
System.out.print("Adresse: ");
|
||||||
String adresse = kundeinfo.nextLine();
|
adresse = kundeinfo.nextLine();
|
||||||
|
|
||||||
// Setzen des Kunden im Warenkorb
|
// Setzen des Kunden im Warenkorb mit Hilfe von ki den logig herrausgefunden
|
||||||
warenkorb.setKunde(new Kunden(name, adresse));
|
warenkorb.setKunde(new Kunden(name, adresse));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
17
Prudukt.java
17
Prudukt.java
|
@ -2,8 +2,9 @@ public class Prudukt {
|
||||||
private String name;
|
private String name;
|
||||||
private int id;
|
private int id;
|
||||||
private float preis;
|
private float preis;
|
||||||
private float gewicht; // Gewicht des Produkts
|
private float gewicht;
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
@ -11,6 +12,14 @@ 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;
|
||||||
}
|
}
|
||||||
|
@ -19,12 +28,8 @@ public class Prudukt {
|
||||||
return gewicht;
|
return gewicht;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "ID: " + id + ", Name: " + name + ", Preis: " + preis + " Euro, Gewicht: " + gewicht + " kg";
|
return String.format("ID: %d, Name: %s, Preis: %.2f Euro, Gewicht: %.2f kg", id, name, preis, gewicht);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,52 +2,84 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class Warenkorb {
|
public class Warenkorb {
|
||||||
private List<Prudukt> produkte = new ArrayList<>();
|
private List<WarenkorbEintrag> eintraege = 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) {
|
||||||
produkte.add(produkt);
|
eintraege.add(new WarenkorbEintrag(produkt, anzahl));
|
||||||
anzahlProdukte.add(anzahl);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setKunde(Kunden kunde) {
|
// Ändert die Anzahl eines Produkts im Warenkorb
|
||||||
this.kunde = kunde;
|
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.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public float berechneGesamtpreis() {
|
// 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;
|
float gesamtpreis = 0;
|
||||||
for (int i = 0; i < produkte.size(); i++) {
|
for (WarenkorbEintrag eintrag : eintraege) {
|
||||||
gesamtpreis += produkte.get(i).getPreis() * anzahlProdukte.get(i);
|
gesamtpreis += eintrag.getProdukt().getPreis() * eintrag.getAnzahl();
|
||||||
}
|
}
|
||||||
return gesamtpreis;
|
return gesamtpreis;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float berechneGesamtgewicht() {
|
// Berechnet die Versandkosten basierend auf dem Gesamtgewicht
|
||||||
float gesamtgewicht = 0;
|
|
||||||
for (int i = 0; i < produkte.size(); i++) {
|
|
||||||
gesamtgewicht += produkte.get(i).getGewicht() * anzahlProdukte.get(i);
|
|
||||||
}
|
|
||||||
return gesamtgewicht;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float berechneVersandkosten() {
|
public float berechneVersandkosten() {
|
||||||
float gewicht = berechneGesamtgewicht();
|
float gesamtgewicht = 0;
|
||||||
if (gewicht <= 1) {
|
for (WarenkorbEintrag eintrag : eintraege) {
|
||||||
return 5;
|
gesamtgewicht += eintrag.getProdukt().getGewicht() * eintrag.getAnzahl();
|
||||||
} else if (gewicht <= 2.5) {
|
}
|
||||||
return 8;
|
|
||||||
|
if (gesamtgewicht <= 1) {
|
||||||
|
return 5; // Versandkosten für < 1 kg
|
||||||
|
} else if (gesamtgewicht <= 2.5) {
|
||||||
|
return 8; // Versandkosten für < 2.5 kg
|
||||||
} else {
|
} else {
|
||||||
return 10;
|
return 10; // Versandkosten für > 2.5 kg
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Setzt den Kunden im Warenkorb
|
||||||
|
public void setKunde(Kunden kunde) {
|
||||||
|
this.kunde = kunde;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gibt den Warenkorb und die Produkte aus
|
||||||
public void printWarenkorb() {
|
public void printWarenkorb() {
|
||||||
System.out.println("Warenkorb:");
|
System.out.println(this);
|
||||||
for (int i = 0; i < produkte.size(); i++) {
|
}
|
||||||
Prudukt produkt = produkte.get(i);
|
|
||||||
System.out.println(produkt + ", Anzahl: " + anzahlProdukte.get(i));
|
@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");
|
||||||
}
|
}
|
||||||
System.out.println("Gesamtpreis: " + berechneGesamtpreis() + " Euro");
|
|
||||||
|
return sb.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
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