From cc34dc961d125cfef6e74700e3b67a05cdca6520 Mon Sep 17 00:00:00 2001 From: Oliver Hummel Date: Tue, 9 Apr 2024 12:00:18 +0200 Subject: [PATCH] Initialer Commit. --- OnlineShop2024/.gitignore | 3 ++ OnlineShop2024/.settings/.gitignore | 1 + OnlineShop2024/resources/produkte.csv | 7 +++ .../informatik/rhenus/domain/Produkt.java | 39 ++++++++++++++ .../informatik/rhenus/fassade/OnlineShop.java | 54 +++++++++++++++++++ .../informatik/rhenus/tui/TUI.java | 53 ++++++++++++++++++ 6 files changed, 157 insertions(+) create mode 100644 OnlineShop2024/.gitignore create mode 100644 OnlineShop2024/.settings/.gitignore create mode 100644 OnlineShop2024/resources/produkte.csv create mode 100644 OnlineShop2024/src/de/hs_mannheim/informatik/rhenus/domain/Produkt.java create mode 100644 OnlineShop2024/src/de/hs_mannheim/informatik/rhenus/fassade/OnlineShop.java create mode 100644 OnlineShop2024/src/de/hs_mannheim/informatik/rhenus/tui/TUI.java diff --git a/OnlineShop2024/.gitignore b/OnlineShop2024/.gitignore new file mode 100644 index 0000000..3eaf567 --- /dev/null +++ b/OnlineShop2024/.gitignore @@ -0,0 +1,3 @@ +/bin/ +/.classpath +/.project diff --git a/OnlineShop2024/.settings/.gitignore b/OnlineShop2024/.settings/.gitignore new file mode 100644 index 0000000..b012ade --- /dev/null +++ b/OnlineShop2024/.settings/.gitignore @@ -0,0 +1 @@ +/org.eclipse.core.resources.prefs diff --git a/OnlineShop2024/resources/produkte.csv b/OnlineShop2024/resources/produkte.csv new file mode 100644 index 0000000..a3a74dd --- /dev/null +++ b/OnlineShop2024/resources/produkte.csv @@ -0,0 +1,7 @@ +Name;Beschreibung;Preis;Gewicht;Bestand +Gieskanne;Premium Gärtner-Gieskanne;3,99;250,00;17,00 +Hut;Perfekt für die Hutablage;21,98;120,00;123,00 +Dosenwurst;LWWRSCHT: das Pfälzer Original, nur kurz im Angebot;3,99;200,00;7,00 +Gartenschlauch;10 m, dehnbar bis auf die doppelte Länge;18,99;1300,00;23,00 +Schraubenset;100 zufällig ausgewählte Schrauben;2,99;287,00;99,00 +Akkuschrauber;Mit extra großem Drehmoment;25,00;900,00;13,00 \ No newline at end of file diff --git a/OnlineShop2024/src/de/hs_mannheim/informatik/rhenus/domain/Produkt.java b/OnlineShop2024/src/de/hs_mannheim/informatik/rhenus/domain/Produkt.java new file mode 100644 index 0000000..b97d147 --- /dev/null +++ b/OnlineShop2024/src/de/hs_mannheim/informatik/rhenus/domain/Produkt.java @@ -0,0 +1,39 @@ +package de.hs_mannheim.informatik.rhenus.domain; + +public class Produkt { + private String name; + private String beschreibung; + private float preis; + private int gewicht; + private int bestand; + + public Produkt(String name, String beschreibung, float preis, int gewicht, int bestand) { + super(); + 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 float getPreis() { + return preis; + } + + public int getGewicht() { + return gewicht; + } + + public int getBestand() { + return bestand; + } + +} \ No newline at end of file diff --git a/OnlineShop2024/src/de/hs_mannheim/informatik/rhenus/fassade/OnlineShop.java b/OnlineShop2024/src/de/hs_mannheim/informatik/rhenus/fassade/OnlineShop.java new file mode 100644 index 0000000..53d1a23 --- /dev/null +++ b/OnlineShop2024/src/de/hs_mannheim/informatik/rhenus/fassade/OnlineShop.java @@ -0,0 +1,54 @@ +package de.hs_mannheim.informatik.rhenus.fassade; + +import java.io.File; +import java.io.FileNotFoundException; +import java.util.ArrayList; +import java.util.Scanner; + +import de.hs_mannheim.informatik.rhenus.domain.Produkt; + +public class OnlineShop { + private ArrayList 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."); + } + + public Produkt[] findeProdukte(String suchbegriff) { + ArrayList 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]); + } +} diff --git a/OnlineShop2024/src/de/hs_mannheim/informatik/rhenus/tui/TUI.java b/OnlineShop2024/src/de/hs_mannheim/informatik/rhenus/tui/TUI.java new file mode 100644 index 0000000..f29a629 --- /dev/null +++ b/OnlineShop2024/src/de/hs_mannheim/informatik/rhenus/tui/TUI.java @@ -0,0 +1,53 @@ +package de.hs_mannheim.informatik.rhenus.tui; + +import java.io.FileNotFoundException; +import java.util.Scanner; + +import de.hs_mannheim.informatik.rhenus.domain.Produkt; +import de.hs_mannheim.informatik.rhenus.fassade.OnlineShop; + +public class TUI { + private TUI tui; + private OnlineShop shop; + + private Scanner kb; + + public static void main(String[] args) { + + try { + new TUI(); + } catch (FileNotFoundException e) { + System.err.println("Produktpalette konnte nicht geladen werden."); + System.out.println("Auf Wiedersehen!"); + } + + 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.print("Produktsuche ('alle' für eine Übersicht; 'exit' für Beenden): "); + eingabe = kb.nextLine(); + + Produkt[] trefferliste = shop.findeProdukte(eingabe); + + } while(!eingabe.toLowerCase().equals("exit")); + } + + private void trefferliste(Produkt[] trefferliste) { + + } + +}