From 555f8a026136d4661d83fbd9552d310d582bc9d1 Mon Sep 17 00:00:00 2001 From: obai Date: Mon, 21 Oct 2024 19:50:01 +0200 Subject: [PATCH] Online shop --- Programmierung2/src/OnlineShop/Main/Main.java | 2 + Programmierung2/src/OnlineShop/UI/TUI.java | 2 +- .../src/OnlineShop/domain/JTest/JTest.java | 15 +++--- .../src/OnlineShop/domain/Kaufhalle.java | 10 ++-- .../src/OnlineShop/domain/Produkt.java | 9 ++++ .../src/OnlineShop/domain/Warenkorb.java | 25 ++++++++-- .../src/oop/Enumeration/Enumeration.java | 3 +- Programmierung2/src/oop/Enumeration/Main.java | 49 +++++++++++++++++++ 8 files changed, 97 insertions(+), 18 deletions(-) create mode 100644 Programmierung2/src/oop/Enumeration/Main.java diff --git a/Programmierung2/src/OnlineShop/Main/Main.java b/Programmierung2/src/OnlineShop/Main/Main.java index 293b041..d666cae 100644 --- a/Programmierung2/src/OnlineShop/Main/Main.java +++ b/Programmierung2/src/OnlineShop/Main/Main.java @@ -9,5 +9,7 @@ public class Main { public static void main(String[] args) throws FileNotFoundException, ProduktNichtGefundenException { new TUI(); + + } } diff --git a/Programmierung2/src/OnlineShop/UI/TUI.java b/Programmierung2/src/OnlineShop/UI/TUI.java index 6579767..d82abdb 100644 --- a/Programmierung2/src/OnlineShop/UI/TUI.java +++ b/Programmierung2/src/OnlineShop/UI/TUI.java @@ -104,7 +104,7 @@ public class TUI { System.out.print("Name der Produkt: > "); String produktName = eingabe.nextLine(); - System.out.println("Menge > "); + System.out.print("Menge > "); menge = eingabe.nextInt(); try { kaufhalle.addProduktZuWarenkorb(produktName,menge); diff --git a/Programmierung2/src/OnlineShop/domain/JTest/JTest.java b/Programmierung2/src/OnlineShop/domain/JTest/JTest.java index 599fb62..61cb046 100644 --- a/Programmierung2/src/OnlineShop/domain/JTest/JTest.java +++ b/Programmierung2/src/OnlineShop/domain/JTest/JTest.java @@ -14,15 +14,16 @@ class JTest { } @Test - void test() throws FileNotFoundException, ProduktNichtGefundenException, LeereEingabeException { + void test() throws FileNotFoundException, ProduktNichtGefundenException, LeereEingabeException, KeineProdukteImWarenkorb { - assertTrue(kaufhalle.produkteLaden()); + kaufhalle.produkteLaden(); + kaufhalle.addProduktZuWarenkorb("Hut",5); + kaufhalle.addProduktZuWarenkorb("Dosenwurst",10); + kaufhalle.addProduktZuWarenkorb("Hut",5); + + for (String p : kaufhalle.zeigeAlleProdukteImWarenkorb()) + System.out.println(p); -// assertTrue(kaufhalle.addProduktZuWarenkorb("Hut")); -// assertTrue(kaufhalle.addProduktZuWarenkorb("Gieskanne")); - assertEquals(2,kaufhalle.getAnzahlDerAusgewählteProdukte()); - kaufhalle.getKundenDaten("Obai", "Mannheim"); - kaufhalle.sendBestellung(); } diff --git a/Programmierung2/src/OnlineShop/domain/Kaufhalle.java b/Programmierung2/src/OnlineShop/domain/Kaufhalle.java index 28ddf47..45d86aa 100644 --- a/Programmierung2/src/OnlineShop/domain/Kaufhalle.java +++ b/Programmierung2/src/OnlineShop/domain/Kaufhalle.java @@ -20,7 +20,7 @@ public class Kaufhalle { } public boolean produkteLaden() throws FileNotFoundException { - Scanner sc = new Scanner(new File("C:\\Users\\obaya\\git\\Programmierung2\\Programmierung2\\src\\OnlineShop\\domain\\produkte.csv")); + Scanner sc = new Scanner(new File("/home/obai/git/Programmierung2/Programmierung2/src/OnlineShop/domain/produkte.csv")); int cnt = 0; while (sc.hasNextLine()) { @@ -48,12 +48,12 @@ public class Kaufhalle { if (neueProdukt == null) throw new ProduktNichtGefundenException("Produkt ist nicht Verfügbar!"); - double betrag = 0.0; - if (menge <= neueProdukt.getBestand()) - betrag = neueProdukt.getPreis() * menge; + for (int i = 0; i < menge; i++) + kunde.getWarenKorb().addProdukt(neueProdukt); + + - kunde.getWarenKorb().addProdukt(neueProdukt); return true; } diff --git a/Programmierung2/src/OnlineShop/domain/Produkt.java b/Programmierung2/src/OnlineShop/domain/Produkt.java index b65b18b..22bb05a 100644 --- a/Programmierung2/src/OnlineShop/domain/Produkt.java +++ b/Programmierung2/src/OnlineShop/domain/Produkt.java @@ -35,11 +35,20 @@ public class Produkt { public int getBestand() { return bestand; } + + public void setBestand(int bestand) { + this.bestand -= bestand; + } public String print() { return String.format("name=%s, beschreibung=%s, preis=%.2f, gewicht=%d, bestand=%d", name, beschreibung, preis, gewicht, bestand); } + + public String printImWarenkorb() { + return String.format("name=%s, beschreibung=%s, preis=%.2f, gewicht=%d", + name, beschreibung, preis, gewicht); + } } \ No newline at end of file diff --git a/Programmierung2/src/OnlineShop/domain/Warenkorb.java b/Programmierung2/src/OnlineShop/domain/Warenkorb.java index 2b80437..42e057f 100644 --- a/Programmierung2/src/OnlineShop/domain/Warenkorb.java +++ b/Programmierung2/src/OnlineShop/domain/Warenkorb.java @@ -40,11 +40,30 @@ public class Warenkorb { public ArrayList zeigeProdukteImWarenKorb() throws KeineProdukteImWarenkorb { if (produkte.size() == 0) throw new KeineProdukteImWarenkorb("Momentan haben Sie Keine Produkte in Ihrem Warenkorb"); - + ArrayList allProdukte = new ArrayList<>(); + ArrayList merker = new ArrayList<>(); + int anzahl = 0; int index = 1; - for (Produkt p : produkte) - allProdukte.add(index++ + ".Produkt: " + p.print()); + boolean istGespeichert = false; + for (int i = 0; i < produkte.size(); i++) { + anzahl = 0; + istGespeichert = false; + for (int j = 0; j < merker.size(); j++) + if (produkte.get(i).equals(merker.get(j))) { + istGespeichert = true; + break; + } + + if (!istGespeichert) { + merker.add(produkte.get(i)); + for (int h = 0; h < produkte.size(); h++) + if (produkte.get(i) == produkte.get(h)) + anzahl++; + + allProdukte.add(index++ + ".Produkt: " + produkte.get(i).print() + ". ((Anzahl: " + anzahl + "))"); + } + } return allProdukte; } diff --git a/Programmierung2/src/oop/Enumeration/Enumeration.java b/Programmierung2/src/oop/Enumeration/Enumeration.java index ad943cd..98f7611 100644 --- a/Programmierung2/src/oop/Enumeration/Enumeration.java +++ b/Programmierung2/src/oop/Enumeration/Enumeration.java @@ -13,10 +13,9 @@ public class Enumeration { * - Konstruktoren sind immer privat oder paketprivat (d.h. sie können nicht public sein) * ,die Dienen zur Initialisierung der Felder. * - Enums können abstrakte Methoden enthalten, aber es sollen alle Kosntanten sie implementieren (siehe Wochentage class). - * - Enums können Interfaces implementieren. + * - Enums können Interfaces implementieren aber können keine Klassen erben * - Enums können eigene Methoden und Überschreibungen von toString(), equals(), hashCode(), etc. enthalten. * - Enums können keine anderen Klassen erweitern und auch nicht von anderen Klassen erben - * - Enums können interface implementieren * */ diff --git a/Programmierung2/src/oop/Enumeration/Main.java b/Programmierung2/src/oop/Enumeration/Main.java new file mode 100644 index 0000000..245978b --- /dev/null +++ b/Programmierung2/src/oop/Enumeration/Main.java @@ -0,0 +1,49 @@ +package oop.Enumeration; + +public class Main { + + // وضعنا فيه 7 ثوابت Days إسمه enum هنا قمنا بتعريف + enum Days { + MONDAY, + TUESDAY, + WEDNESDAY, + THURSDAY, + FRIDAY, + SATURDAY, + SUNDAY + } + + enum Size { + + // هنا قمنا بتعريف أسماء الثوابت و تحديد قيمهم + SMALL(100), MEDIUM(150), LARGE(200), XLARGE(250); + + private int value; + + private Size(int value) { + this.value = value; + } + + } + + public static void main(String[] args) { + + // .values => Gibt alle Konstaten an + for (Days d : Days.values()) + System.out.println(d); + + // .ordinal => Gibt das Index der Konstante zurück + System.out.println(Days.MONDAY.ordinal()); + + // Hier speichere ich eine Kosntante + Days day = Days.THURSDAY; + System.out.println(day); + + System.out.println(); + System.out.println("Die Sizen: "); + for (Size s : Size.values()) { + System.out.println(s + " " + s.value); + } + + } +}