diff --git a/Programmierung2/src/OnlineShop/Main.java b/Programmierung2/src/OnlineShop/Main.java new file mode 100644 index 0000000..6cbfbb6 --- /dev/null +++ b/Programmierung2/src/OnlineShop/Main.java @@ -0,0 +1,13 @@ +package OnlineShop; + +import java.io.FileNotFoundException; + +import OnlineShop.UI.TUI; +import OnlineShop.domain.ExceptionsKlassen.*; + +public class Main { + + public static void main(String[] args) throws FileNotFoundException, ProduktNichtGefundenException, KundeNichtGefundenException { + new TUI(); + } +} diff --git a/Programmierung2/src/OnlineShop/UI/TUI.java b/Programmierung2/src/OnlineShop/UI/TUI.java new file mode 100644 index 0000000..de4035a --- /dev/null +++ b/Programmierung2/src/OnlineShop/UI/TUI.java @@ -0,0 +1,42 @@ +package OnlineShop.UI; +import java.io.FileNotFoundException; +import java.util.Scanner; + +import OnlineShop.domain.Kaufhalle; +import OnlineShop.domain.ExceptionsKlassen.KundeNichtGefundenException; +import OnlineShop.domain.ExceptionsKlassen.ProduktNichtGefundenException; + + +public class TUI { + + private Kaufhalle kaufhalle; + + public TUI() throws FileNotFoundException, ProduktNichtGefundenException, KundeNichtGefundenException { + this.kaufhalle = new Kaufhalle(); + startProgramm(); + } + + + + 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.print(">"); + produktname = eingabe.nextLine(); + kaufhalle.addProduktZuWarenkorb(produktname); + + + } + +} diff --git a/Programmierung2/src/OnlineShop/domain/ExceptionsKlassen/EmptyInputException.java b/Programmierung2/src/OnlineShop/domain/ExceptionsKlassen/EmptyInputException.java new file mode 100644 index 0000000..41c8957 --- /dev/null +++ b/Programmierung2/src/OnlineShop/domain/ExceptionsKlassen/EmptyInputException.java @@ -0,0 +1,8 @@ +package OnlineShop.domain.ExceptionsKlassen; + +public class EmptyInputException extends Exception{ + + public EmptyInputException(String error){ + super(error); + } +} diff --git a/Programmierung2/src/OnlineShop/domain/ExceptionsKlassen/KundeNichtGefundenException.java b/Programmierung2/src/OnlineShop/domain/ExceptionsKlassen/KundeNichtGefundenException.java new file mode 100644 index 0000000..8f005b8 --- /dev/null +++ b/Programmierung2/src/OnlineShop/domain/ExceptionsKlassen/KundeNichtGefundenException.java @@ -0,0 +1,8 @@ +package OnlineShop.domain.ExceptionsKlassen; + +public class KundeNichtGefundenException extends Exception { + + KundeNichtGefundenException(String error){ + super(error); + } +} diff --git a/Programmierung2/src/OnlineShop/domain/ExceptionsKlassen/ProduktNichtGefundenException.java b/Programmierung2/src/OnlineShop/domain/ExceptionsKlassen/ProduktNichtGefundenException.java new file mode 100644 index 0000000..500be5c --- /dev/null +++ b/Programmierung2/src/OnlineShop/domain/ExceptionsKlassen/ProduktNichtGefundenException.java @@ -0,0 +1,8 @@ +package OnlineShop.domain.ExceptionsKlassen; + +public class ProduktNichtGefundenException extends Exception { + + public ProduktNichtGefundenException(String error){ + super(error); + } +} diff --git a/Programmierung2/src/OnlineShop/domain/GesamtKostenBerechnen.java b/Programmierung2/src/OnlineShop/domain/GesamtKostenBerechnen.java new file mode 100644 index 0000000..d800bd3 --- /dev/null +++ b/Programmierung2/src/OnlineShop/domain/GesamtKostenBerechnen.java @@ -0,0 +1,12 @@ +package OnlineShop.domain; + +public class GesamtKostenBerechnen { + + + public static double gesamtKosten (Produkt p) { + double kosten = 0.0; + + + return kosten; + } +} diff --git a/Programmierung2/src/OnlineShop/domain/Kaufhalle.java b/Programmierung2/src/OnlineShop/domain/Kaufhalle.java new file mode 100644 index 0000000..662a0a3 --- /dev/null +++ b/Programmierung2/src/OnlineShop/domain/Kaufhalle.java @@ -0,0 +1,81 @@ +package OnlineShop.domain; + +import java.io.File; +import java.io.FileNotFoundException; +import java.util.*; +import OnlineShop.domain.ExceptionsKlassen.*; + +public class Kaufhalle { + private ArrayList produkte; + private ArrayList 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 zeigeProdukte() { + ArrayList 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; + } + + + + +} diff --git a/Programmierung2/src/OnlineShop/domain/Kunde.java b/Programmierung2/src/OnlineShop/domain/Kunde.java new file mode 100644 index 0000000..101f7d1 --- /dev/null +++ b/Programmierung2/src/OnlineShop/domain/Kunde.java @@ -0,0 +1,56 @@ +package OnlineShop.domain; + +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; + } + +} diff --git a/Programmierung2/src/OnlineShop/domain/Produkt.java b/Programmierung2/src/OnlineShop/domain/Produkt.java new file mode 100644 index 0000000..b11c53d --- /dev/null +++ b/Programmierung2/src/OnlineShop/domain/Produkt.java @@ -0,0 +1,45 @@ +package OnlineShop.domain; + +public class Produkt { + private String name; + private String beschreibung; + private double preis; + private int gewicht; + private int bestand; + + public Produkt(String name, String beschreibung, double preis, int gewicht, int bestand) { + + this.name = name; + this.beschreibung = beschreibung; + this.preis = preis; + this.gewicht = gewicht; + this.bestand = bestand; + } + + public String getName() { + return name; + } + + public String getBeschreibung() { + return beschreibung; + } + + public double getPreis() { + return preis; + } + + public int getGewicht() { + return gewicht; + } + + public int getBestand() { + return bestand; + } + + + public String print() { + return "name=" + name + ", beschreibung=" + beschreibung + ", preis=" + preis + ", gewicht=" + gewicht + + ", bestand=" + bestand; + } + +} \ No newline at end of file diff --git a/Programmierung2/src/OnlineShop/domain/Warenkorb.java b/Programmierung2/src/OnlineShop/domain/Warenkorb.java new file mode 100644 index 0000000..e906657 --- /dev/null +++ b/Programmierung2/src/OnlineShop/domain/Warenkorb.java @@ -0,0 +1,51 @@ +package OnlineShop.domain; + +import java.util.ArrayList; + +public class Warenkorb { + private ArrayList 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 zeigeProdukteImWarenKorb() { + ArrayList allProdukte = new ArrayList<>(); + for (Produkt p : produkte) + allProdukte.add(anzahlProdkute + ".Produkt: " + p.print() + "\n"); + + return allProdukte; + } + + public int getAnzahlProdkute() { + return anzahlProdkute; + } + + +}