Klassen der Domain
parent
a80da0f00a
commit
18d20817b4
|
@ -0,0 +1 @@
|
||||||
|
/bin/
|
|
@ -0,0 +1,13 @@
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
|
||||||
|
import de.hs_mannheim.informatik.rhenus.domain.ExceptionsKlassen.KundeNichtGefundenException;
|
||||||
|
import de.hs_mannheim.informatik.rhenus.domain.ExceptionsKlassen.ProduktNichtGefundenException;
|
||||||
|
import de.hs_mannheim.informatik.rhenus.tui.TUI;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws FileNotFoundException, ProduktNichtGefundenException, KundeNichtGefundenException {
|
||||||
|
new TUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,5 +0,0 @@
|
||||||
package de.hs_mannheim.informatik.rhenus.domain;
|
|
||||||
|
|
||||||
public class Bestellung {
|
|
||||||
|
|
||||||
}
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
package de.hs_mannheim.informatik.rhenus.domain.ExceptionsKlassen;
|
||||||
|
|
||||||
|
public class EmptyInputException extends Exception{
|
||||||
|
|
||||||
|
public EmptyInputException(String error){
|
||||||
|
super(error);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
package de.hs_mannheim.informatik.rhenus.domain.ExceptionsKlassen;
|
||||||
|
|
||||||
|
public class KundeNichtGefundenException extends Exception {
|
||||||
|
|
||||||
|
KundeNichtGefundenException(String error){
|
||||||
|
super(error);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
package de.hs_mannheim.informatik.rhenus.domain.ExceptionsKlassen;
|
||||||
|
|
||||||
|
public class ProduktNichtGefundenException extends Exception {
|
||||||
|
|
||||||
|
public ProduktNichtGefundenException(String error){
|
||||||
|
super(error);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package de.hs_mannheim.informatik.rhenus.domain;
|
||||||
|
|
||||||
|
public class GesamtKostenBerechnen {
|
||||||
|
|
||||||
|
|
||||||
|
public static double gesamtKosten (Produkt p) {
|
||||||
|
double kosten = 0.0;
|
||||||
|
|
||||||
|
|
||||||
|
return kosten;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
package de.hs_mannheim.informatik.rhenus.domain.JTests;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import org.junit.jupiter.api.*;
|
||||||
|
import de.hs_mannheim.informatik.rhenus.domain.*;
|
||||||
|
|
||||||
|
class WarenkorbTest {
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test() throws FileNotFoundException {
|
||||||
|
Kaufhalle kaufhalle = new Kaufhalle();
|
||||||
|
|
||||||
|
assertTrue(kaufhalle.produkteLaden());
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 1.Produkt: name=Gieskanne, beschreibung=Premium Gärtner-Gieskanne, preis=3.99, gewicht=250, bestand=17
|
||||||
|
2.Produkt: name=Hut, beschreibung=Perfekt für die Hutablage, preis=21.98, gewicht=120, bestand=123
|
||||||
|
*/
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
package de.hs_mannheim.informatik.rhenus.domain;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.util.*;
|
||||||
|
import de.hs_mannheim.informatik.rhenus.domain.ExceptionsKlassen.*;
|
||||||
|
|
||||||
|
public class Kaufhalle {
|
||||||
|
private ArrayList<Produkt> produkte;
|
||||||
|
private ArrayList<Kunde> kunden;
|
||||||
|
|
||||||
|
public Kaufhalle() throws FileNotFoundException {
|
||||||
|
this.produkte = new ArrayList<>();
|
||||||
|
this.kunden = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addProduktZuWarenkorb(String Produktname) throws ProduktNichtGefundenException, KundeNichtGefundenException {
|
||||||
|
Produkt neueProdukt = findeProduktImKaufhalle(Produktname);
|
||||||
|
if (neueProdukt == null)
|
||||||
|
throw new ProduktNichtGefundenException("Produkt ist nicht Verfügbar!");
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private Kunde findKunde(String kundeName) {
|
||||||
|
for (Kunde kunde : kunden)
|
||||||
|
if (kunde.getName().equalsIgnoreCase(kundeName))
|
||||||
|
return kunde;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public boolean produkteLaden() throws FileNotFoundException {
|
||||||
|
Scanner sc = new Scanner(
|
||||||
|
new File("C:\\Users\\obaya\\git\\OnlineShop2024\\OnlineShop2024\\resources\\produkte.csv"));
|
||||||
|
|
||||||
|
int cnt = 0;
|
||||||
|
while (sc.hasNextLine()) {
|
||||||
|
String produkt = sc.nextLine();
|
||||||
|
|
||||||
|
if (produkt.startsWith("Name"))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
String[] spalten = produkt.split(";");
|
||||||
|
spalten[2] = spalten[2].replaceAll(",", ".");
|
||||||
|
spalten[3] = spalten[3].substring(0, spalten[3].indexOf(","));
|
||||||
|
spalten[4] = spalten[4].substring(0, spalten[4].indexOf(","));
|
||||||
|
|
||||||
|
produkte.add(new Produkt(spalten[0], spalten[1], Float.parseFloat(spalten[2]), Integer.parseInt(spalten[3]),
|
||||||
|
Integer.parseInt(spalten[4])));
|
||||||
|
cnt++;
|
||||||
|
}
|
||||||
|
|
||||||
|
sc.close();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<String> zeigeProdukte() {
|
||||||
|
ArrayList<String> allProdukte = new ArrayList<>();
|
||||||
|
int index = 1;
|
||||||
|
for (Produkt p : produkte)
|
||||||
|
allProdukte.add(index++ + ".Produkt: " + p.print());
|
||||||
|
|
||||||
|
return allProdukte;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Produkt findeProduktImKaufhalle(String name) {
|
||||||
|
|
||||||
|
for (Produkt p : produkte)
|
||||||
|
if (p.getName().equalsIgnoreCase(name))
|
||||||
|
return p;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -1,5 +1,56 @@
|
||||||
package de.hs_mannheim.informatik.rhenus.domain;
|
package de.hs_mannheim.informatik.rhenus.domain;
|
||||||
|
|
||||||
public class Kunde {
|
public class Kunde {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private String anschrift;
|
||||||
|
private Warenkorb warenKorb;
|
||||||
|
private double produktKosten;
|
||||||
|
private static int UserID = 100;
|
||||||
|
private int ID;
|
||||||
|
|
||||||
|
public Kunde(String name, String anschrift) {
|
||||||
|
this.name = name;
|
||||||
|
this.anschrift = anschrift;
|
||||||
|
this.ID = UserID++;
|
||||||
|
this.produktKosten = 0.0;
|
||||||
|
this.warenKorb = new Warenkorb();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Kunde() {
|
||||||
|
this(null,null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAnschrift() {
|
||||||
|
return anschrift;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnschrift(String anschrift) {
|
||||||
|
this.anschrift = anschrift;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Warenkorb getWarenKorb() {
|
||||||
|
return warenKorb;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getID() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getProduktKosten() {
|
||||||
|
return produktKosten;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProduktKosten(double produktKosten) {
|
||||||
|
this.produktKosten = produktKosten;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,54 +0,0 @@
|
||||||
package de.hs_mannheim.informatik.rhenus.domain;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileNotFoundException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Scanner;
|
|
||||||
|
|
||||||
public class OnlineShop {
|
|
||||||
private ArrayList<Produkt> lager;
|
|
||||||
|
|
||||||
public OnlineShop() throws FileNotFoundException {
|
|
||||||
lager = new ArrayList<>();
|
|
||||||
|
|
||||||
produkteLaden();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void produkteLaden() throws FileNotFoundException {
|
|
||||||
Scanner sc = new Scanner(new File("resources/produkte.csv"));
|
|
||||||
|
|
||||||
int cnt = 0;
|
|
||||||
while (sc.hasNextLine()) {
|
|
||||||
String produkt = sc.nextLine();
|
|
||||||
|
|
||||||
if (produkt.startsWith("Name"))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
String[] spalten = produkt.split(";");
|
|
||||||
spalten[2] = spalten[2].replaceAll(",", ".");
|
|
||||||
spalten[3] = spalten[3].substring(0, spalten[3].indexOf(","));
|
|
||||||
spalten[4] = spalten[4].substring(0, spalten[4].indexOf(","));
|
|
||||||
|
|
||||||
lager.add(new Produkt(spalten[0], spalten[1], Float.parseFloat(spalten[2]), Integer.parseInt(spalten[3]), Integer.parseInt(spalten[4])));
|
|
||||||
cnt++;
|
|
||||||
} // while
|
|
||||||
|
|
||||||
System.out.println(cnt + " Produkte geladen.");
|
|
||||||
|
|
||||||
sc.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Produkt[] findeProdukte(String suchbegriff) {
|
|
||||||
ArrayList<Produkt> trefferliste = new ArrayList<>();
|
|
||||||
|
|
||||||
if (suchbegriff.equals("alle"))
|
|
||||||
trefferliste = lager;
|
|
||||||
else
|
|
||||||
for (Produkt p : lager) {
|
|
||||||
if (p.getName().contains(suchbegriff) || p.getBeschreibung().contains(suchbegriff))
|
|
||||||
trefferliste.add(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
return trefferliste.toArray(new Produkt[0]);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -3,12 +3,12 @@ package de.hs_mannheim.informatik.rhenus.domain;
|
||||||
public class Produkt {
|
public class Produkt {
|
||||||
private String name;
|
private String name;
|
||||||
private String beschreibung;
|
private String beschreibung;
|
||||||
private float preis;
|
private double preis;
|
||||||
private int gewicht;
|
private int gewicht;
|
||||||
private int bestand;
|
private int bestand;
|
||||||
|
|
||||||
public Produkt(String name, String beschreibung, float preis, int gewicht, int bestand) {
|
public Produkt(String name, String beschreibung, double preis, int gewicht, int bestand) {
|
||||||
super();
|
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.beschreibung = beschreibung;
|
this.beschreibung = beschreibung;
|
||||||
this.preis = preis;
|
this.preis = preis;
|
||||||
|
@ -24,7 +24,7 @@ public class Produkt {
|
||||||
return beschreibung;
|
return beschreibung;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getPreis() {
|
public double getPreis() {
|
||||||
return preis;
|
return preis;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,10 +36,10 @@ public class Produkt {
|
||||||
return bestand;
|
return bestand;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
public String print() {
|
||||||
return "Produkt [name=" + name + ", beschreibung=" + beschreibung + ", preis=" + preis + ", gewicht=" + gewicht
|
return "name=" + name + ", beschreibung=" + beschreibung + ", preis=" + preis + ", gewicht=" + gewicht
|
||||||
+ ", bestand=" + bestand + "]";
|
+ ", bestand=" + bestand;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,5 +1,51 @@
|
||||||
package de.hs_mannheim.informatik.rhenus.domain;
|
package de.hs_mannheim.informatik.rhenus.domain;
|
||||||
|
|
||||||
public class Warenkorb {
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class Warenkorb {
|
||||||
|
private ArrayList<Produkt> produkte;
|
||||||
|
private int anzahlProdkute;
|
||||||
|
|
||||||
|
Warenkorb() {
|
||||||
|
produkte = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean addProdukt(Produkt neueProdukt) {
|
||||||
|
|
||||||
|
produkte.add(neueProdukt);
|
||||||
|
anzahlProdkute++;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean loescheprodukt(String name) {
|
||||||
|
Produkt produktZuLoeschen = findeProduktImWarenkorb(name);
|
||||||
|
if (produktZuLoeschen == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
anzahlProdkute--;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Produkt findeProduktImWarenkorb(String name) {
|
||||||
|
|
||||||
|
for (Produkt p : produkte)
|
||||||
|
if (p.getName().equalsIgnoreCase(name))
|
||||||
|
return p;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<String> zeigeProdukteImWarenKorb() {
|
||||||
|
ArrayList<String> allProdukte = new ArrayList<>();
|
||||||
|
for (Produkt p : produkte)
|
||||||
|
allProdukte.add(anzahlProdkute + ".Produkt: " + p.print() + "\n");
|
||||||
|
|
||||||
|
return allProdukte;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAnzahlProdkute() {
|
||||||
|
return anzahlProdkute;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
package de.hs_mannheim.informatik.rhenus.domain;
|
|
||||||
|
|
||||||
public class Warenkorbeintrag {
|
|
||||||
private Produkt produkt;
|
|
||||||
private int anzahl;
|
|
||||||
}
|
|
|
@ -1,87 +1,41 @@
|
||||||
package de.hs_mannheim.informatik.rhenus.tui;
|
package de.hs_mannheim.informatik.rhenus.tui;
|
||||||
|
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
import de.hs_mannheim.informatik.rhenus.domain.OnlineShop;
|
import de.hs_mannheim.informatik.rhenus.domain.Kaufhalle;
|
||||||
import de.hs_mannheim.informatik.rhenus.domain.Produkt;
|
import de.hs_mannheim.informatik.rhenus.domain.ExceptionsKlassen.KundeNichtGefundenException;
|
||||||
|
import de.hs_mannheim.informatik.rhenus.domain.ExceptionsKlassen.ProduktNichtGefundenException;
|
||||||
|
|
||||||
public class TUI {
|
public class TUI {
|
||||||
private OnlineShop shop;
|
|
||||||
private Scanner kb;
|
private Kaufhalle kaufhalle;
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public TUI() throws FileNotFoundException, ProduktNichtGefundenException, KundeNichtGefundenException {
|
||||||
|
this.kaufhalle = new Kaufhalle();
|
||||||
try {
|
startProgramm();
|
||||||
new TUI();
|
}
|
||||||
} catch (FileNotFoundException e) {
|
|
||||||
System.err.println("Produktpalette konnte nicht geladen werden.");
|
|
||||||
System.out.println("Auf Wiedersehen!");
|
|
||||||
|
private void startProgramm() throws FileNotFoundException, ProduktNichtGefundenException, KundeNichtGefundenException {
|
||||||
|
Scanner eingabe = new Scanner(System.in);
|
||||||
|
String produktname;
|
||||||
|
String anschrift;
|
||||||
|
System.out.println();
|
||||||
|
System.out.println("<< Willkommen in meinem Online Shop >>");
|
||||||
|
System.out.println();
|
||||||
|
if (kaufhalle.produkteLaden()) {
|
||||||
|
System.out.println("Meine aktuelle Produkte: ");
|
||||||
|
for (String p : kaufhalle.zeigeProdukte())
|
||||||
|
System.out.println(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("Danke für Ihren Einkauf! - Auf Wiedersehen!");
|
|
||||||
}
|
|
||||||
|
|
||||||
public TUI() throws FileNotFoundException {
|
|
||||||
kb = new Scanner(System.in);
|
|
||||||
|
|
||||||
shop = new OnlineShop();
|
|
||||||
this.willkommen();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void willkommen() {
|
|
||||||
System.out.println("Willkommen bei Rhenus, dem Mannheimer Online-Baumarkt!");
|
|
||||||
System.out.println();
|
|
||||||
|
|
||||||
String eingabe = "";
|
|
||||||
do {
|
|
||||||
System.out.println("Produktsuche ('alle' für eine Übersicht; 'exit' für Beenden). ");
|
|
||||||
System.out.print("> ");
|
|
||||||
eingabe = kb.nextLine();
|
|
||||||
|
|
||||||
Produkt[] trefferliste = shop.findeProdukte(eingabe);
|
|
||||||
|
|
||||||
if (trefferliste.length == 0)
|
|
||||||
System.out.println("Keine Treffer für: " + eingabe);
|
|
||||||
else
|
|
||||||
trefferlisteAusgeben(trefferliste);
|
|
||||||
|
|
||||||
System.out.println("0 = zurück zur Suche; Zahl des Produkt für Details.");
|
|
||||||
System.out.print("> ");
|
|
||||||
eingabe = kb.nextLine();
|
|
||||||
|
|
||||||
try {
|
|
||||||
int zahl = Integer.parseInt(eingabe);
|
|
||||||
|
|
||||||
if (zahl > 0 && zahl < trefferliste.length)
|
|
||||||
produktDetailsAnzeigen(trefferliste[zahl-1]);
|
|
||||||
} catch(NumberFormatException nfe) {
|
|
||||||
System.err.println("Inkorrekte Eingabe!");
|
|
||||||
}
|
|
||||||
|
|
||||||
} while(!eingabe.toLowerCase().equals("exit"));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void trefferlisteAusgeben(Produkt[] trefferliste) {
|
System.out.print(">");
|
||||||
for (int i = 0; i < trefferliste.length; i++)
|
produktname = eingabe.nextLine();
|
||||||
System.out.printf("%2d) %s %5.2f Euro%n", i+1, trefferliste[i].getName(), trefferliste[i].getPreis());
|
kaufhalle.addProduktZuWarenkorb(produktname);
|
||||||
|
|
||||||
System.out.println();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void produktDetailsAnzeigen(Produkt p) {
|
|
||||||
System.out.printf("%s für nur %5.2f%n", p.getName(), p.getPreis());
|
|
||||||
System.out.println(p.getBeschreibung());
|
|
||||||
System.out.println("Produktgewicht: " + p.getGewicht() + " g");
|
|
||||||
|
|
||||||
if (p.getBestand() > 10)
|
|
||||||
System.out.println("mehr als 10 Stück auf Lager");
|
|
||||||
else if (p.getBestand() > 0)
|
|
||||||
System.out.println("nur noch " + p.getBestand() + " Stück auf Lager");
|
|
||||||
else
|
|
||||||
System.out.println("leider gerade ausverkauft");
|
|
||||||
|
|
||||||
System.out.println();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue