Compare commits

..

No commits in common. "main" and "master" have entirely different histories.
main ... master

7 changed files with 387 additions and 374 deletions

View File

@ -1,143 +0,0 @@
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
public class ShopVerwaltung {
private Warenkorb warenkorb = new Warenkorb();
private ArrayList<Bestellung> bestellungen = new ArrayList<>();
private Scanner scanner = new Scanner(System.in);
// 1. Produkte anzeigen
public void produkteAnzeigen() {
System.out.println("Verfügbare Produkte:");
for (Produkt produkt : Produkt.produktListe) {
System.out.println(produkt.getName() + " - " + produkt.getBeschreibung() + " - Preis: " + produkt.getPreis() + " € - Bestand: " + produkt.getBestand());
}
}
// 2. Produkt zum Warenkorb hinzufügen
public void produktZumWarenkorbHinzufuegen() {
System.out.println("Geben Sie den Namen des Produkts ein:");
String produktName = scanner.next();
Produkt produkt = Produkt.produktfinden(produktName);
if (produkt != null) {
System.out.println("Geben Sie die Anzahl ein:");
int anzahl = scanner.nextInt();
if (anzahl < 1) {
System.out.println("Anzahl darf nicht kleiner als 1 sein");
return;
}
if (anzahl <= produkt.getBestand()) {
warenkorb.produktHinzufuegen(produkt, anzahl);
produkt.setBestand(produkt.getBestand() - anzahl); // Bestand verringern
System.out.println("Produkt wurde zum Warenkorb hinzugefügt.");
} else {
System.out.println("Nicht genug Bestand verfügbar.");
}
} else {
System.out.println("Produkt nicht gefunden.");
}
}
// 3. Warenkorb überarbeiten (Anzahl ändern oder löschen)
public void warenkorbBearbeiten() {
System.out.println("Möchten Sie die Anzahl eines Produkts ändern oder ein Produkt löschen? (ändern/löschen)");
String aktion = scanner.next();
if (aktion.equalsIgnoreCase("ändern")) {
System.out.println("Welches Produkt möchten Sie ändern?");
String produktName = scanner.next();
Produkt produkt = Produkt.produktfinden(produktName);
if (produkt != null && warenkorb.getProduktanzahl().containsKey(produkt)) {
System.out.println("Geben Sie die neue Anzahl ein:");
int neueAnzahl = scanner.nextInt();
if (neueAnzahl < 1) {
System.out.println("Anzahl darf nicht kleiner als 1 sein");
return;
}
if (neueAnzahl <= produkt.getBestand()) {
produkt.setBestand(produkt.getBestand() + warenkorb.getProduktanzahl().get(produkt));
warenkorb.produktHinzufuegen(produkt, neueAnzahl);
produkt.setBestand(produkt.getBestand() - neueAnzahl);
System.out.println("Anzahl wurde aktualisiert.");
} else {
System.out.println("Nicht genug Bestand verfügbar.");
}
} else {
System.out.println("Produkt nicht im Warenkorb.");
}
} else if (aktion.equalsIgnoreCase("löschen")) {
System.out.println("Welches Produkt möchten Sie löschen?");
String produktName = scanner.next();
Produkt produkt = Produkt.produktfinden(produktName);
if (produkt != null && warenkorb.getProduktanzahl().containsKey(produkt)) {
produkt.setBestand(produkt.getBestand() + warenkorb.getProduktanzahl().get(produkt));
warenkorb.getProduktanzahl().remove(produkt);
System.out.println("Produkt wurde aus dem Warenkorb entfernt.");
} else {
System.out.println("Produkt nicht im Warenkorb.");
}
}
}
// 4. Warenkorb anzeigen
public void warenkorbAnzeigen() {
if (warenkorb.getProduktanzahl().isEmpty() || warenkorb == null) {
System.out.println("Warenkorb ist leer.");
return;
}
System.out.println("Warenkorb:");
for (Produkt produkt : warenkorb.getProduktanzahl().keySet()) {
int anzahl = warenkorb.getProduktanzahl().get(produkt);
System.out.println(produkt.getName() + " - Anzahl: " + anzahl + " - Preis pro Stück: " + produkt.getPreis() + " €");
}
System.out.println("Gesamtpreis: " + warenkorb.preisBerechnen() + " €");
System.out.println("Versandkosten: " + warenkorb.versandkostenBerechnen() + " €");
System.out.println("Gesamtkosten: " + (warenkorb.preisBerechnen() + warenkorb.versandkostenBerechnen()) + " €");
}
// 5. Bestellung tätigen
public void bestellungTaetigen() {
if (warenkorb == null || warenkorb.getProduktanzahl().isEmpty()) {
System.out.println("Keine Bestellung möglich, der Warenkorb ist leer.");
return;
}
scanner.nextLine();
System.out.println("Bitte geben Sie Ihren Namen ein:");
String name = scanner.nextLine();
System.out.println("Bitte geben Sie Ihre Anschrift ein:");
String anschrift = scanner.nextLine();
// Bestellung erstellen
Bestellung bestellung = new Bestellung(warenkorb, System.currentTimeMillis(), anschrift, name);
Bestellung.bestellungen.add(bestellung);
System.out.println("Bestellung erfolgreich abgeschlossen!");
// Warenkorb leeren
warenkorb = new Warenkorb();
}
// 6. Alle Bestellungen anzeigen
public void alleBestellungenAnzeigen() {
if (Bestellung.bestellungen.isEmpty()) {
System.out.println("Es wurde noch keine Bestellung getätigt.");
return;
} else {
System.out.println("Alle Bestellungen:");
for (Bestellung bestellung : Bestellung.bestellungen) {
System.out.println("Kunde: " + bestellung.getName() + " - Anschrift: " + bestellung.getAnschrift());
System.out.println("Bestelldatum: " + new SimpleDateFormat("dd.MM.yyyy hh:mm:ss").format(new Date(bestellung.getBestelldatum())));
System.out.println("Warenkorb:");
for (Produkt produkt : bestellung.getWarenkorb().getProduktanzahl().keySet()) {
int anzahl = bestellung.getWarenkorb().getProduktanzahl().get(produkt);
System.out.println(produkt.getName() + " - Anzahl: " + anzahl);
}
double preis = bestellung.getWarenkorb().preisBerechnen();
double versand = bestellung.getWarenkorb().versandkostenBerechnen();
System.out.println("Gesamtpreis: " + (preis + versand) + " € (inkl. Versandkosten von " + versand + " €)");
System.out.println("------------");
}
}
}
}

56
main
View File

@ -1,56 +0,0 @@
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ShopVerwaltung shop = new ShopVerwaltung();
while (true) {
System.out.println("Online Shop:");
System.out.println("1. Produkte anzeigen");
System.out.println("2. Produkt zum Warenkorb hinzufügen");
System.out.println("3. Warenkorb überarbeiten");
System.out.println("4. Warenkorb anzeigen");
System.out.println("5. Bestellung tätigen");
System.out.println("6. Alle Bestellungen anzeigen");
System.out.println("7. Programm beenden");
System.out.print("Auswahl tätigen: ");
int auswahl = 0;
try {
auswahl = scanner.nextInt();
} catch (Exception e) {
System.out.println("Ungültige Eingabe, nur Zahlen als Eingabe möglich.");
break;
}
switch (auswahl) {
case 1:
shop.produkteAnzeigen();
break;
case 2:
shop.produktZumWarenkorbHinzufuegen();
break;
case 3:
shop.warenkorbBearbeiten();
break;
case 4:
shop.warenkorbAnzeigen();
break;
case 5:
shop.bestellungTaetigen();
break;
case 6:
shop.alleBestellungenAnzeigen();
break;
case 7:
System.out.println("Programm beendet.");
return;
default:
System.out.println("Ungültige Auswahl.");
break;
}
}
}
}

View File

@ -1,50 +1,52 @@
import java.util.ArrayList; package de.hs_mannheim.informatik.domain;
public class Bestellung { import java.util.ArrayList;
public final static ArrayList<Bestellung> bestellungen = new ArrayList<>();
public class Bestellung {
public final static ArrayList<Bestellung> bestellungen = new ArrayList<>();
private Warenkorb warenkorb;
private String name;
private String anschrift; private Warenkorb warenkorb;
private long bestelldatum; private String name;
private String anschrift;
public Bestellung(Warenkorb warenkorb, long bestelldatum, String anschrift, String name) { private long bestelldatum;
this.warenkorb = warenkorb;
this.bestelldatum = bestelldatum; public Bestellung(Warenkorb warenkorb, long bestelldatum, String anschrift, String name) {
this.anschrift = anschrift; this.warenkorb = warenkorb;
this.name = name; this.bestelldatum = bestelldatum;
} this.anschrift = anschrift;
this.name = name;
public Warenkorb getWarenkorb() { }
return warenkorb;
} public Warenkorb getWarenkorb() {
return warenkorb;
public long getBestelldatum() { }
return bestelldatum;
} public long getBestelldatum() {
return bestelldatum;
public String getAnschrift() { }
return anschrift;
} public String getAnschrift() {
return anschrift;
public String getName() { }
return name;
} public String getName() {
return name;
public void setWarenkorb(Warenkorb warenkorb) { }
this.warenkorb = warenkorb;
} public void setWarenkorb(Warenkorb warenkorb) {
this.warenkorb = warenkorb;
public void setBestelldatum(long bestelldatum) { }
this.bestelldatum = bestelldatum;
} public void setBestelldatum(long bestelldatum) {
this.bestelldatum = bestelldatum;
public void setAnschrift(String anschrift) { }
this.anschrift = anschrift;
} public void setAnschrift(String anschrift) {
this.anschrift = anschrift;
public void setName(String name) { }
this.name = name;
} public void setName(String name) {
} this.name = name;
}
}

View File

@ -1,77 +1,79 @@
import java.util.ArrayList; package de.hs_mannheim.informatik.domain;
public class Produkt { import java.util.ArrayList;
public final static ArrayList<Produkt> produktListe = new ArrayList<>();
public class Produkt {
static { public final static ArrayList<Produkt> produktListe = new ArrayList<>();
produktListe.add(new Produkt(17, 250.00, 3.99, "Gieskanne", "Premium Gärtner-Gieskanne"));
produktListe.add(new Produkt(123, 120.00, 21.98, "Hut", "Perfekt für die Hutablage")); static {
produktListe.add(new Produkt(7, 200.00, 3.99, "Dosenwurst", "LWWRSCHT: das Pfälzer Original, nur kurz im Angebot")); produktListe.add(new Produkt(17, 250.00, 3.99, "Gieskanne", "Premium Gärtner-Gieskanne"));
produktListe.add(new Produkt(23, 1300.00, 18.99, "Gartenschlauch", "10 m, dehnbar bis auf die doppelte Länge")); produktListe.add(new Produkt(123, 120.00, 21.98, "Hut", "Perfekt für die Hutablage"));
produktListe.add(new Produkt(99, 287.00, 2.99, "Schraubenset", "100 zufällig ausgewählte Schrauben")); produktListe.add(new Produkt(7, 200.00, 3.99, "Dosenwurst", "LWWRSCHT: das Pfälzer Original, nur kurz im Angebot"));
produktListe.add(new Produkt(13, 900.00, 25.00, "Akkuschrauber", "Mit extra großem Drehmoment")); produktListe.add(new Produkt(23, 1300.00, 18.99, "Gartenschlauch", "10 m, dehnbar bis auf die doppelte Länge"));
} produktListe.add(new Produkt(99, 287.00, 2.99, "Schraubenset", "100 zufällig ausgewählte Schrauben"));
produktListe.add(new Produkt(13, 900.00, 25.00, "Akkuschrauber", "Mit extra großem Drehmoment"));
private double preis; }
private double gewicht;
private int bestand; private double preis;
private String name; private double gewicht;
private String beschreibung; private int bestand;
private String name;
public Produkt(int bestand, double gewicht, double preis, String name, String beschreibung) { private String beschreibung;
this.bestand = bestand;
this.gewicht = gewicht; public Produkt(int bestand, double gewicht, double preis, String name, String beschreibung) {
this.preis = preis; this.bestand = bestand;
this.name = name; this.gewicht = gewicht;
this.beschreibung = beschreibung; this.preis = preis;
} this.name = name;
this.beschreibung = beschreibung;
public static Produkt produktfinden(String produktname) { }
for (Produkt produkt : produktListe) {
if (produkt.getName().equalsIgnoreCase(produktname)) { public static Produkt produktFinden(String produktname) {
return produkt; for (Produkt produkt : produktListe) {
} if (produkt.getName().equalsIgnoreCase(produktname)) {
} return produkt;
return null; }
} }
return null;
public String getBeschreibung() { }
return beschreibung;
} public String getBeschreibung() {
return beschreibung;
public void setBeschreibung(String beschreibung) { }
this.beschreibung = beschreibung;
} public void setBeschreibung(String beschreibung) {
this.beschreibung = beschreibung;
public void setName(String name) { }
this.name = name;
} public void setName(String name) {
this.name = name;
public String getName() { }
return name;
} public String getName() {
return name;
public double getPreis() { }
return preis;
} public double getPreis() {
return preis;
public double getGewicht() { }
return gewicht;
} public double getGewicht() {
return gewicht;
public int getBestand() { }
return bestand;
} public int getBestand() {
return bestand;
public void setPreis(double preis) { }
this.preis = preis;
} public void setPreis(double preis) {
this.preis = preis;
public void setBestand(int bestand) { }
this.bestand = bestand;
} public void setBestand(int bestand) {
this.bestand = bestand;
public void setGewicht(double gewicht) { }
this.gewicht = gewicht;
} public void setGewicht(double gewicht) {
} this.gewicht = gewicht;
}
}

View File

@ -0,0 +1,122 @@
package de.hs_mannheim.informatik.domain;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
public class ShopVerwaltung {
private Warenkorb warenkorb = new Warenkorb();
private ArrayList<Bestellung> bestellungen = new ArrayList<>();
// 1. Produkte anzeigen
public ArrayList<String> produkteAnzeigen() {
ArrayList<String> produktListe = new ArrayList<>();
for (Produkt produkt : Produkt.produktListe) {
produktListe.add(produkt.getName() + " - " + produkt.getBeschreibung() + " - Preis: " + produkt.getPreis() + " € - Bestand: " + produkt.getBestand());
}
return produktListe;
}
// 2. Produkt zum Warenkorb hinzufügen
public String produktZumWarenkorbHinzufuegen(String produktName, int anzahl) {
Produkt produkt = Produkt.produktFinden(produktName);
if (produkt != null) {
if (anzahl < 1) {
return "Anzahl darf nicht kleiner als 1 sein";
}
if (anzahl <= produkt.getBestand()) {
warenkorb.produktHinzufuegen(produkt, anzahl);
produkt.setBestand(produkt.getBestand() - anzahl);
return "Produkt wurde zum Warenkorb hinzugefügt.";
} else {
return "Nicht genug Bestand verfügbar.";
}
} else {
return "Produkt nicht gefunden.";
}
}
// 3. Warenkorb überarbeiten (Anzahl ändern oder löschen)
public String warenkorbBearbeiten(String aktion, String produktName, int neueAnzahl) {
Produkt produkt = Produkt.produktFinden(produktName);
if (produkt == null || !warenkorb.getProduktanzahl().containsKey(produkt)) {
return "Produkt nicht im Warenkorb.";
}
if (aktion.equalsIgnoreCase("ändern")) {
if (neueAnzahl < 1) {
return "Anzahl darf nicht kleiner als 1 sein";
}
if (neueAnzahl <= produkt.getBestand()) {
produkt.setBestand(produkt.getBestand() + warenkorb.getProduktanzahl().get(produkt));
warenkorb.produktHinzufuegen(produkt, neueAnzahl);
produkt.setBestand(produkt.getBestand() - neueAnzahl);
return "Anzahl wurde aktualisiert.";
} else {
return "Nicht genug Bestand verfügbar.";
}
} else if (aktion.equalsIgnoreCase("löschen")) {
produkt.setBestand(produkt.getBestand() + warenkorb.getProduktanzahl().get(produkt));
warenkorb.getProduktanzahl().remove(produkt);
return "Produkt wurde aus dem Warenkorb entfernt.";
}
return "Ungültige Aktion.";
}
// 4. Warenkorb anzeigen
public ArrayList<String> warenkorbAnzeigen() {
ArrayList<String> warenkorbListe = new ArrayList<>();
if (warenkorb.getProduktanzahl().isEmpty()) {
warenkorbListe.add("Warenkorb ist leer.");
return warenkorbListe;
}
for (Produkt produkt : warenkorb.getProduktanzahl().keySet()) {
int anzahl = warenkorb.getProduktanzahl().get(produkt);
warenkorbListe.add(produkt.getName() + " - Anzahl: " + anzahl + " - Preis pro Stück: " + produkt.getPreis() + " €");
}
warenkorbListe.add("Gesamtpreis: " + warenkorb.preisBerechnen() + " €");
warenkorbListe.add("Versandkosten: " + warenkorb.versandkostenBerechnen() + " €");
warenkorbListe.add("Gesamtkosten: " + (warenkorb.preisBerechnen() + warenkorb.versandkostenBerechnen()) + " €");
return warenkorbListe;
}
// 5. Bestellung tätigen
public String bestellungTaetigen(String name, String anschrift) {
if (warenkorb.getProduktanzahl().isEmpty()) {
return "Keine Bestellung möglich, der Warenkorb ist leer.";
}
// Bestellung erstellen
Bestellung bestellung = new Bestellung(warenkorb, System.currentTimeMillis(), anschrift, name);
Bestellung.bestellungen.add(bestellung);
// Warenkorb leeren
warenkorb = new Warenkorb();
return "Bestellung erfolgreich abgeschlossen!";
}
// 6. Alle Bestellungen anzeigen
public ArrayList<String> alleBestellungenAnzeigen() {
ArrayList<String> bestellListe = new ArrayList<>();
if (Bestellung.bestellungen.isEmpty()) {
bestellListe.add("Es wurde noch keine Bestellung getätigt.");
return bestellListe;
}
for (Bestellung bestellung : Bestellung.bestellungen) {
bestellListe.add("Kunde: " + bestellung.getName() + " - Anschrift: " + bestellung.getAnschrift());
bestellListe.add("Bestelldatum: " + new SimpleDateFormat("dd.MM.yyyy hh:mm:ss").format(new Date(bestellung.getBestelldatum())));
bestellListe.add("Warenkorb:");
for (Produkt produkt : bestellung.getWarenkorb().getProduktanzahl().keySet()) {
int anzahl = bestellung.getWarenkorb().getProduktanzahl().get(produkt);
bestellListe.add(produkt.getName() + " - Anzahl: " + anzahl);
}
double preis = bestellung.getWarenkorb().preisBerechnen();
double versand = bestellung.getWarenkorb().versandkostenBerechnen();
bestellListe.add("Gesamtpreis: " + (preis + versand) + " € (inkl. Versandkosten von " + versand + " €)");
bestellListe.add("------------");
}
return bestellListe;
}
}

View File

@ -1,48 +1,49 @@
import java.util.HashMap; package de.hs_mannheim.informatik.domain;
public class Warenkorb { import java.util.HashMap;
private final HashMap<Produkt, Integer> produktanzahl = new HashMap<>();
public class Warenkorb {
public HashMap<Produkt, Integer> getProduktanzahl() { private final HashMap<Produkt, Integer> produktanzahl = new HashMap<>();
return produktanzahl;
} public HashMap<Produkt, Integer> getProduktanzahl() {
return produktanzahl;
public void produktHinzufuegen(Produkt produkt, int anzahl) { }
produktanzahl.put(produkt, anzahl);
} public void produktHinzufuegen(Produkt produkt, int anzahl) {
produktanzahl.put(produkt, anzahl);
public double gewichtBerechnen() { }
double finalesGewicht = 0;
for (Produkt produkt : produktanzahl.keySet()) { public double gewichtBerechnen() {
int anzahl = produktanzahl.get(produkt); double finalesGewicht = 0;
double gewicht = produkt.getGewicht() * anzahl; for (Produkt produkt : produktanzahl.keySet()) {
finalesGewicht += gewicht; int anzahl = produktanzahl.get(produkt);
} double gewicht = produkt.getGewicht() * anzahl;
return finalesGewicht; finalesGewicht += gewicht;
} }
return finalesGewicht;
}
public double preisBerechnen() {
double finalerPreis = 0;
for (Produkt produkt : produktanzahl.keySet()) { public double preisBerechnen() {
int anzahl = produktanzahl.get(produkt); double finalerPreis = 0;
double preis = produkt.getPreis() * anzahl; for (Produkt produkt : produktanzahl.keySet()) {
finalerPreis += preis; int anzahl = produktanzahl.get(produkt);
double preis = produkt.getPreis() * anzahl;
} finalerPreis += preis;
return finalerPreis;
} }
finalerPreis = Math.round(finalerPreis * 100.0) / 100.0;
public double versandkostenBerechnen() { return finalerPreis;
double finalesGewicht = gewichtBerechnen(); }
if (finalesGewicht < 1.0) {
return 5.0; public double versandkostenBerechnen() {
} else if (finalesGewicht < 2.5) { double finalesGewicht = gewichtBerechnen();
return 8.0; if (finalesGewicht < 1000) {
} else { return 5.0;
return 10; } else if (finalesGewicht < 2500) {
} return 8.0;
} } else {
} return 10;
}
}
}

View File

@ -0,0 +1,85 @@
package de.hs_mannheim.informatik.main;
import de.hs_mannheim.informatik.domain.ShopVerwaltung;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ShopVerwaltung shop = new ShopVerwaltung();
while (true) {
System.out.println("Online Shop:");
System.out.println("1. Produkte anzeigen");
System.out.println("2. Produkt zum Warenkorb hinzufügen");
System.out.println("3. Warenkorb überarbeiten");
System.out.println("4. Warenkorb anzeigen");
System.out.println("5. Bestellung tätigen");
System.out.println("6. Alle Bestellungen anzeigen");
System.out.println("7. Programm beenden");
System.out.print("Auswahl tätigen: ");
int auswahl = 0;
try {
auswahl = scanner.nextInt();
scanner.nextLine(); // Clear buffer
} catch (Exception e) {
System.out.println("Ungültige Eingabe, nur Zahlen als Eingabe möglich.");
break;
}
switch (auswahl) {
case 1:
for (String produkt : shop.produkteAnzeigen()) {
System.out.println(produkt);
}
break;
case 2:
System.out.println("Geben Sie den Namen des Produkts ein:");
String produktName = scanner.nextLine();
System.out.println("Geben Sie die Anzahl ein:");
int anzahl = scanner.nextInt();
scanner.nextLine(); // Clear buffer
System.out.println(shop.produktZumWarenkorbHinzufuegen(produktName, anzahl));
break;
case 3:
System.out.println("Möchten Sie die Anzahl eines Produkts ändern oder ein Produkt löschen? (ändern/löschen)");
String aktion = scanner.nextLine();
System.out.println("Welches Produkt möchten Sie ändern/löschen?");
produktName = scanner.nextLine();
int neueAnzahl = 0;
if (aktion.equalsIgnoreCase("ändern")) {
System.out.println("Geben Sie die neue Anzahl ein:");
neueAnzahl = scanner.nextInt();
scanner.nextLine(); // Clear buffer
}
System.out.println(shop.warenkorbBearbeiten(aktion, produktName, neueAnzahl));
break;
case 4:
for (String warenkorb : shop.warenkorbAnzeigen()) {
System.out.println(warenkorb);
}
break;
case 5:
System.out.println("Bitte geben Sie Ihren Namen ein:");
String name = scanner.nextLine();
System.out.println("Bitte geben Sie Ihre Anschrift ein:");
String anschrift = scanner.nextLine();
System.out.println(shop.bestellungTaetigen(name, anschrift));
break;
case 6:
for (String bestellung : shop.alleBestellungenAnzeigen()) {
System.out.println(bestellung);
}
break;
case 7:
System.out.println("Programm beendet.");
return;
default:
System.out.println("Ungültige Auswahl.");
break;
}
}
}
}