online Shop
parent
f29ef016d8
commit
33a17b38f8
|
@ -9,12 +9,12 @@ import java.awt.event.ActionListener;
|
|||
|
||||
public class ButtonBeispiel {
|
||||
|
||||
static JFrame frame = new JFrame("JButton demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
|
||||
static JButton plus_button = new JButton("+1"); // plus_button إسمه Button هنا أنشأنا
|
||||
static JButton minus_button = new JButton("-1"); // minus_button إسمه Button هنا أنشأنا
|
||||
static JLabel label = new JLabel("0"); // label إسمه Label هنا أنشأنا
|
||||
static JFrame frame = new JFrame("JButton demo");
|
||||
static JButton plus_button = new JButton("+1");
|
||||
static JButton minus_button = new JButton("-1");
|
||||
static JLabel label = new JLabel("0");
|
||||
|
||||
static int counter = 0; // سنستخدم هذه المتغير كعداد
|
||||
static int counter = 0;
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
|
@ -24,6 +24,13 @@ public class ButtonBeispiel {
|
|||
label.setText("" + (++counter)); // plus_button عند النقر على الـ label واحداً ثم توضع كنص للـ counter ستزيد قيمة المتغير
|
||||
}
|
||||
});
|
||||
|
||||
plus_button.addActionListener(e -> label.setText("" + (++counter)));
|
||||
plus_button.addActionListener(e -> new Test());
|
||||
plus_button.addActionListener(e -> test());
|
||||
|
||||
plus_button.addActionListener(e -> new ButtonBeispiel().new InnereKalsse());
|
||||
|
||||
|
||||
minus_button.addActionListener(new ActionListener() { // minus_button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الزر
|
||||
@Override
|
||||
|
@ -42,5 +49,33 @@ public class ButtonBeispiel {
|
|||
frame.setVisible(true); // هنا جعلنا النافذة مرئية
|
||||
|
||||
}
|
||||
|
||||
public static void test() {
|
||||
|
||||
class Test{
|
||||
|
||||
Test(){
|
||||
System.out.println("Lokale Klasse");
|
||||
}
|
||||
}
|
||||
|
||||
new Test();
|
||||
}
|
||||
|
||||
public class InnereKalsse{
|
||||
InnereKalsse(){
|
||||
System.out.println("Hallo InnereKalsse");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Test{
|
||||
|
||||
Test(){
|
||||
System.out.println("Hallo Test");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package Lambda;
|
||||
|
||||
public class FunctionalInterfaceTest {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
berechneFunktion f = (a,b) -> a+b;
|
||||
|
||||
System.out.println(f.berechne(12, 12));
|
||||
|
||||
SwissKnife d = name -> System.out.println("obai");;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
interface berechneFunktion{
|
||||
|
||||
int berechne(int a , int b);
|
||||
}
|
||||
|
||||
@FunctionalInterface
|
||||
interface SwissKnife {
|
||||
|
||||
default int compare(int i1, int i2) {
|
||||
return i1 - i2;
|
||||
}
|
||||
|
||||
static void run() {
|
||||
System.out.println("Running !");
|
||||
}
|
||||
|
||||
void welcomify(String name);
|
||||
}
|
|
@ -1,5 +1,4 @@
|
|||
package OnlineShop.Main;
|
||||
|
||||
import OnlineShop.UI.TUI;
|
||||
import OnlineShop.domain.ExceptionsKlassen.*;
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ public class TUI {
|
|||
private void startProgramm() throws Exception {
|
||||
System.out.println("<< Willkommen in meinem Online Shop >>");
|
||||
System.out.println();
|
||||
if (kaufhalle.produkteLaden()) {
|
||||
if (kaufhalle.produkteLadenImSystem()) {
|
||||
System.out.println("Meine aktuelle Produkte: ");
|
||||
|
||||
for (String p : kaufhalle.zeigeProdukte())
|
||||
|
@ -34,124 +34,119 @@ public class TUI {
|
|||
while (programmAktive) {
|
||||
System.out.println("Wählen Sie bitte ein Option aus: ");
|
||||
System.out.println("1. Produkte auswählen");
|
||||
System.out.println("2. Alle Produkte im Warenkorb anzeigen");
|
||||
System.out.println("3. Einkauf Beenden!");
|
||||
System.out.print("> ");
|
||||
optionAuswahl = eingabe.nextLine();
|
||||
|
||||
switch (optionAuswahl) {
|
||||
case "1":
|
||||
ProdukteAuwählenUI();
|
||||
break;
|
||||
|
||||
case "2":
|
||||
System.out.println("Anzahl Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||
try {
|
||||
for (String p : kaufhalle.zeigeAlleProdukteImWarenkorb())
|
||||
System.out.println(p);
|
||||
|
||||
System.out.println("Möchten Sie die ausgewählte Produkte bestellen Ja/Nein");
|
||||
System.out.print(">");
|
||||
String bestellung = eingabe.nextLine();
|
||||
if (bestellung.equalsIgnoreCase("ja")) {
|
||||
System.out.println("Geben Sie bitte Ihren Name ein:");
|
||||
System.out.print(">");
|
||||
String name = eingabe.nextLine();
|
||||
System.out.println("Geben Sie bitte Ihren Anschrift ein:");
|
||||
System.out.print(">");
|
||||
String anschrift = eingabe.nextLine();
|
||||
try {
|
||||
kaufhalle.getKundenDaten(name, anschrift);
|
||||
System.out.println(kaufhalle.sendBestellung());
|
||||
System.out.println("Betrag bitte eingeben: ");
|
||||
System.out.print(">");
|
||||
double betrag = eingabe.nextDouble();
|
||||
if (kaufhalle.getBetrag(betrag))
|
||||
kaufhalle.speichereBestellung();
|
||||
|
||||
|
||||
} catch (LeereEingabeException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
} else
|
||||
shwoOptions();
|
||||
|
||||
} catch (KeineProdukteImWarenkorb e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
WarenkorbEditieren();
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void ProdukteAuwählenUI() throws Exception {
|
||||
|
||||
private void WarenkorbEditieren() throws Exception {
|
||||
boolean einkaufAktive = true;
|
||||
String weiterEinkaufen;
|
||||
int menge;
|
||||
while (einkaufAktive) {
|
||||
System.out.println("Wählen Sie bitte ein Option aus: ");
|
||||
System.out.println("1. Prpdukte auswählen und zu Ihrem Warenkorb senden");
|
||||
System.out.println("2. Prpdukte aus dem Warenkorb löschen");
|
||||
System.out.println("3. Zurück zum Hauptmenu");
|
||||
System.out.print("> ");
|
||||
optionAuswahl = eingabe.nextLine();
|
||||
switch (optionAuswahl) {
|
||||
case "1":
|
||||
while (true) {
|
||||
System.out.print("Name der Produkt: > ");
|
||||
String produktName = eingabe.nextLine();
|
||||
|
||||
System.out.print("Menge > ");
|
||||
menge = eingabe.nextInt();
|
||||
try {
|
||||
kaufhalle.addProduktZuWarenkorb(produktName,menge);
|
||||
for (String p : kaufhalle.zeigeProdukte())
|
||||
System.out.println(p);
|
||||
} catch (ProduktNichtGefundenException e) {
|
||||
System.out.println(e.getMessage());
|
||||
|
||||
switch(optionAuswahl) {
|
||||
case "1":
|
||||
while (true) {
|
||||
System.out.print("Name der Produkt: > ");
|
||||
String produktName = eingabe.nextLine();
|
||||
System.out.print("Menge > ");
|
||||
int menge = eingabe.nextInt();
|
||||
try {
|
||||
kaufhalle.addProduktZuWarenkorb(produktName,menge);
|
||||
} catch (ProduktNichtGefundenException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
|
||||
System.out.println("Weitere Produkte auswählen Ja/Nein");
|
||||
System.out.print(">");
|
||||
weiterEinkaufen = eingabe.nextLine();
|
||||
if (weiterEinkaufen.equalsIgnoreCase("ja"))
|
||||
continue;
|
||||
else
|
||||
break;
|
||||
}
|
||||
System.out.println(
|
||||
"Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||
System.out.println("Weitere Produkte auswählen Ja/Nein");
|
||||
System.out.print(">");
|
||||
weiterEinkaufen = eingabe.nextLine();
|
||||
if (weiterEinkaufen.equalsIgnoreCase("ja"))
|
||||
continue;
|
||||
else
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case "2":
|
||||
while (true) {
|
||||
System.out.print("Name der Produkt: > ");
|
||||
String produktName = eingabe.nextLine();
|
||||
if (kaufhalle.loescheProduktausWarenkorb(produktName) == true) {
|
||||
System.out.println("Produkt erfolgreich gelöscht");
|
||||
System.out.println(
|
||||
"Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||
} else
|
||||
System.out.println("Produkt ist nicht in Ihrem Warenkorb");
|
||||
|
||||
System.out.println("Weiter Produkte aus dem Wrenkorb löschen Ja/Nein");
|
||||
System.out.print(">");
|
||||
String weitereProdukteLoeschen = eingabe.nextLine();
|
||||
if (weitereProdukteLoeschen.equalsIgnoreCase("ja"))
|
||||
continue;
|
||||
else
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case "3":
|
||||
System.out.println("Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||
shwoOptions();
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
System.out.println("Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||
|
||||
}
|
||||
|
||||
|
||||
// private void ProdukteAuwählenUI() throws Exception {
|
||||
// boolean einkaufAktive = true;
|
||||
// String weiterEinkaufen;
|
||||
// int menge;
|
||||
// while (einkaufAktive) {
|
||||
// System.out.println("Wählen Sie bitte ein Option aus: ");
|
||||
// System.out.println("1. Prpdukte auswählen und zu Ihrem Warenkorb senden");
|
||||
// System.out.println("2. Prpdukte aus dem Warenkorb löschen");
|
||||
// System.out.println("3. Zurück zum Hauptmenu");
|
||||
// System.out.print("> ");
|
||||
// optionAuswahl = eingabe.nextLine();
|
||||
// switch (optionAuswahl) {
|
||||
// case "1":
|
||||
// while (true) {
|
||||
// System.out.print("Name der Produkt: > ");
|
||||
// String produktName = eingabe.nextLine();
|
||||
//
|
||||
// System.out.print("Menge > ");
|
||||
// menge = eingabe.nextInt();
|
||||
// try {
|
||||
// kaufhalle.addProduktZuWarenkorb(produktName,menge);
|
||||
// for (String p : kaufhalle.zeigeProdukte())
|
||||
// System.out.println(p);
|
||||
// } catch (ProduktNichtGefundenException e) {
|
||||
// System.out.println(e.getMessage());
|
||||
// }
|
||||
// System.out.println(
|
||||
// "Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||
// System.out.println("Weitere Produkte auswählen Ja/Nein");
|
||||
// System.out.print(">");
|
||||
// weiterEinkaufen = eingabe.nextLine();
|
||||
// if (weiterEinkaufen.equalsIgnoreCase("ja"))
|
||||
// continue;
|
||||
// else
|
||||
// break;
|
||||
// }
|
||||
// break;
|
||||
//
|
||||
// case "2":
|
||||
// while (true) {
|
||||
// System.out.print("Name der Produkt: > ");
|
||||
// String produktName = eingabe.nextLine();
|
||||
//// if (kaufhalle.loescheProduktausWarenkorb(produktName) == true) {
|
||||
//// System.out.println("Produkt erfolgreich gelöscht");
|
||||
//// System.out.println(
|
||||
//// "Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||
//// } else
|
||||
//// System.out.println("Produkt ist nicht in Ihrem Warenkorb");
|
||||
//
|
||||
// System.out.println("Weiter Produkte aus dem Wrenkorb löschen Ja/Nein");
|
||||
// System.out.print(">");
|
||||
// String weitereProdukteLoeschen = eingabe.nextLine();
|
||||
// if (weitereProdukteLoeschen.equalsIgnoreCase("ja"))
|
||||
// continue;
|
||||
// else
|
||||
// break;
|
||||
// }
|
||||
// break;
|
||||
//
|
||||
// case "3":
|
||||
// System.out.println("Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||
// shwoOptions();
|
||||
// break;
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// System.out.println("Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||
// }
|
||||
}
|
||||
|
|
|
@ -1,47 +1,48 @@
|
|||
package OnlineShop.domain;
|
||||
|
||||
import java.sql.Date;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Bestellung {
|
||||
|
||||
|
||||
private double kosten;
|
||||
private String formattedkosten;
|
||||
private String kundeName;
|
||||
private int gewicht;
|
||||
private double versandKosten;
|
||||
private ArrayList<Produkt> tempProdukt;
|
||||
private LocalDate date;
|
||||
|
||||
public void gesamtKosten(ArrayList<Produkt> produkts) {
|
||||
tempProdukt = produkts;
|
||||
private ArrayList<WarenkorbMenge> tempProdukt;
|
||||
private Date date;
|
||||
|
||||
public Bestellung(ArrayList<WarenkorbMenge> produkts, String kundeName) {
|
||||
this.tempProdukt = produkts;
|
||||
this.kundeName = kundeName;
|
||||
}
|
||||
|
||||
public double getKosten() {
|
||||
kosten = 0;
|
||||
|
||||
for (Produkt p : tempProdukt)
|
||||
kosten += p.getPreis();
|
||||
|
||||
String formatted = String.format("%.2f", kosten);
|
||||
formatted = formatted.replace(",", "."); // Ersetzt das Komma durch einen Punkt
|
||||
double formattedDouble = Double.parseDouble(formatted);
|
||||
|
||||
return formattedDouble;
|
||||
for (WarenkorbMenge p : tempProdukt) {
|
||||
kosten += p.getProdukt().getPreis();
|
||||
kosten *= p.getMenge();
|
||||
}
|
||||
formattedkosten = String.format("%.2f", kosten);
|
||||
formattedkosten = formattedkosten.replace(",", "."); // Ersetzt das Komma durch einen Punkt
|
||||
|
||||
return Double.parseDouble(formattedkosten);
|
||||
}
|
||||
|
||||
public int getGewicht() {
|
||||
gewicht = 0;
|
||||
for (Produkt p : tempProdukt)
|
||||
gewicht += p.getGewicht();
|
||||
|
||||
for (WarenkorbMenge p : tempProdukt) {
|
||||
gewicht += p.getProdukt().getGewicht();
|
||||
gewicht *= p.getMenge();
|
||||
}
|
||||
|
||||
return gewicht;
|
||||
}
|
||||
|
||||
public double getVersandKosten() {
|
||||
getGewicht();
|
||||
versandKosten = 0;
|
||||
double gewichtInKg = gewicht / 1000.0;
|
||||
System.out.println("GeWicht: " + gewichtInKg);
|
||||
System.out.println("gewichtInKg: " + gewichtInKg);
|
||||
|
||||
if (gewichtInKg < 1)
|
||||
versandKosten += 5;
|
||||
|
@ -54,30 +55,26 @@ public class Bestellung {
|
|||
|
||||
return versandKosten;
|
||||
}
|
||||
|
||||
|
||||
public double getGesamtKosten() {
|
||||
double gesmatKosten = kosten + versandKosten;
|
||||
double gesmatKosten = kosten + versandKosten;
|
||||
String formatted = String.format("%.2f", gesmatKosten);
|
||||
formatted = formatted.replace(",", "."); // Ersetzt das Komma durch einen Punkt
|
||||
double formattedDouble = Double.parseDouble(formatted);
|
||||
|
||||
return formattedDouble;
|
||||
|
||||
formatted = formatted.replace(",", "."); // Ersetzt das Komma durch einen Punkt
|
||||
return Double.parseDouble(formatted);
|
||||
}
|
||||
|
||||
public LocalDate getDate() {
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public void setDate(LocalDate date) {
|
||||
public void setDate(Date date) {
|
||||
this.date = date;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "kosten=" + kosten + ", gewicht=" + gewicht + ", versandKosten=" + versandKosten
|
||||
+ ", tempProdukt=" + tempProdukt + ", date=" + date;
|
||||
return "Kunde= " + kundeName + ", kosten=" + formattedkosten + ", versandKosten=" + versandKosten + ", date="
|
||||
+ date;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -4,10 +4,10 @@ import static org.junit.jupiter.api.Assertions.*;
|
|||
|
||||
import org.junit.jupiter.api.*;
|
||||
import OnlineShop.domain.*;
|
||||
import OnlineShop.domain.ExceptionsKlassen.*;
|
||||
|
||||
class JTest {
|
||||
Kaufhalle kaufhalle;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() throws Exception {
|
||||
kaufhalle = new Kaufhalle();
|
||||
|
@ -15,17 +15,22 @@ class JTest {
|
|||
|
||||
@Test
|
||||
void test() throws Exception {
|
||||
kaufhalle.produkteLadenImSystem();
|
||||
kaufhalle.addProduktZuWarenkorb("hut", 10);
|
||||
|
||||
kaufhalle.produkteLaden();
|
||||
kaufhalle.addProduktZuWarenkorb("Hut",5);
|
||||
kaufhalle.addProduktZuWarenkorb("Dosenwurst",6);
|
||||
kaufhalle.addProduktZuWarenkorb("Hut",5);
|
||||
|
||||
for (String p : kaufhalle.zeigeAlleProdukteImWarenkorb())
|
||||
System.out.println(p);
|
||||
|
||||
kaufhalle.addProduktZuWarenkorb("hut", 5);
|
||||
kaufhalle.printTest();
|
||||
|
||||
kaufhalle.loginKunde("Obai", "Mannheim");
|
||||
kaufhalle.bestellen();
|
||||
kaufhalle.speichereBestellung();
|
||||
|
||||
kaufhalle.addProduktZuWarenkorb("hut", 5);
|
||||
kaufhalle.printTest();
|
||||
kaufhalle.loginKunde("Omar", "Mannheim");
|
||||
kaufhalle.bestellen();
|
||||
kaufhalle.speichereBestellung();
|
||||
kaufhalle.printbestellung();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,121 +1,116 @@
|
|||
package OnlineShop.domain;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import OnlineShop.domain.ExceptionsKlassen.*;
|
||||
|
||||
public class Kaufhalle {
|
||||
private ArrayList<Produkt> produkte;
|
||||
private ArrayList<Bestellung> Bestellungen;
|
||||
private ArrayList<Bestellung> bestellungen;
|
||||
private Kunde kunde;
|
||||
private Bestellung aktuellBestelung;
|
||||
private Bestellung akteulleBestellung;
|
||||
|
||||
public Kaufhalle() throws FileNotFoundException {
|
||||
this.produkte = new ArrayList<>();
|
||||
this.kunde = new Kunde();
|
||||
this.Bestellungen = new ArrayList<>();
|
||||
this.bestellungen = new ArrayList<>();
|
||||
}
|
||||
|
||||
public boolean produkteLaden() throws FileNotFoundException {
|
||||
Scanner sc = new Scanner(new File(
|
||||
"C:\\Users\\obaya\\git\\Programmierung2\\Programmierung2\\src\\OnlineShop\\domain\\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 boolean produkteLadenImSystem() throws FileNotFoundException {
|
||||
return produkteLaden.produkteLaden(produkte);
|
||||
}
|
||||
|
||||
public boolean addProduktZuWarenkorb(String Produktname, int menge) throws ProduktNichtGefundenException,Exception {
|
||||
public boolean addProduktZuWarenkorb(String Produktname, int menge)
|
||||
throws ProduktNichtGefundenException, Exception {
|
||||
Produkt neueProdukt = findeProduktImKaufhalle(Produktname);
|
||||
if (neueProdukt == null)
|
||||
throw new ProduktNichtGefundenException("Produkt ist nicht Verfügbar!");
|
||||
|
||||
if (menge > neueProdukt.getBestand())
|
||||
throw new Exception ("Errore");
|
||||
|
||||
for (int i = 0; i < menge; i++)
|
||||
kunde.getWarenKorb().addProdukt(neueProdukt);
|
||||
|
||||
neueProdukt.setBestand(menge);
|
||||
if (menge > neueProdukt.getBestand())
|
||||
throw new Exception("Wir haben nicht genug Produktmenge im Lager!");
|
||||
|
||||
WarenkorbMenge wp = kunde.getWarenKorb().findWarenkorbMenge(Produktname);
|
||||
if (wp != null)
|
||||
wp.setMenge(wp.getMenge() + menge);
|
||||
|
||||
else {
|
||||
WarenkorbMenge neueWarenkorbMenge = new WarenkorbMenge();
|
||||
neueWarenkorbMenge.addProdukt(neueProdukt, menge);
|
||||
kunde.getWarenKorb().addProdukt(neueWarenkorbMenge);
|
||||
}
|
||||
|
||||
neueProdukt.setBestand(neueProdukt.getBestand() - menge);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean loescheProduktausWarenkorb(String Produktname) {
|
||||
return kunde.getWarenKorb().loescheprodukt(Produktname);
|
||||
public boolean mengeaendern(String Produktname, int menge) throws ProduktNichtGefundenException {
|
||||
WarenkorbMenge akteulleProdukt = kunde.getWarenKorb().findWarenkorbMenge(Produktname);
|
||||
|
||||
if (akteulleProdukt == null)
|
||||
throw new ProduktNichtGefundenException("Sie haben das Produkt nicht in Ihrem Warenkorb");
|
||||
|
||||
if (menge > akteulleProdukt.getProdukt().getBestand())
|
||||
throw new ProduktNichtGefundenException("Wir haben nicht genug Produktmenge im Lager!");
|
||||
|
||||
akteulleProdukt.setMenge(menge);
|
||||
akteulleProdukt.getProdukt().setBestand(akteulleProdukt.getProdukt().getBestand() - menge);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean loescheProdukt(String Produktname) throws ProduktNichtGefundenException {
|
||||
WarenkorbMenge produktToBERemoved = kunde.getWarenKorb().findWarenkorbMenge(Produktname);
|
||||
|
||||
if (produktToBERemoved == null)
|
||||
throw new ProduktNichtGefundenException("Sie haben das Produkt nicht in Ihrem Warenkorb");
|
||||
|
||||
return kunde.getWarenKorb().getProdukte().remove(produktToBERemoved);
|
||||
}
|
||||
|
||||
public boolean bestellen() throws ProduktNichtGefundenException {
|
||||
if (kunde.getWarenKorb().getProdukte().size() == 0)
|
||||
throw new ProduktNichtGefundenException("Sie haben das Produkt nicht in Ihrem Warenkorb");
|
||||
|
||||
akteulleBestellung = new Bestellung(kunde.getWarenKorb().getProdukte(), kunde.getName());
|
||||
akteulleBestellung.getKosten();
|
||||
akteulleBestellung.getVersandKosten();
|
||||
kunde.getWarenKorb().getProdukte().clear();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean speichereBestellung() {
|
||||
this.akteulleBestellung.setDate(new Date());
|
||||
bestellungen.add(akteulleBestellung);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean loginKunde(String name, String anschrift) throws LeereEingabeException {
|
||||
|
||||
if (name.isEmpty() || anschrift.isEmpty())
|
||||
throw new LeereEingabeException("Sie müssen Name sowie anschrift eingeben");
|
||||
|
||||
kunde.setName(name);
|
||||
kunde.setAnschrift(anschrift);
|
||||
return true;
|
||||
}
|
||||
|
||||
private Produkt findeProduktImKaufhalle(String Produktname) {
|
||||
|
||||
for (Produkt p : produkte)
|
||||
if (p.getName().equalsIgnoreCase(Produktname))
|
||||
return p;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ArrayList<String> zeigeProdukte() {
|
||||
ArrayList<String> allProdukte = new ArrayList<>();
|
||||
int index = 1;
|
||||
for (Produkt p : produkte)
|
||||
allProdukte.add(index++ + ".Produkt: " + p.print());
|
||||
allProdukte.add(index++ + ".Produkt: " + p.toString());
|
||||
|
||||
return allProdukte;
|
||||
}
|
||||
|
||||
private Produkt findeProduktImKaufhalle(String name) {
|
||||
|
||||
for (Produkt p : produkte)
|
||||
if (p.getName().equalsIgnoreCase(name))
|
||||
return p;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getAnzahlDerAusgewählteProdukte() {
|
||||
return kunde.getWarenKorb().getAnzahlProdkute();
|
||||
}
|
||||
|
||||
public ArrayList<String> zeigeAlleProdukteImWarenkorb() throws KeineProdukteImWarenkorb {
|
||||
return kunde.getWarenKorb().zeigeProdukteImWarenKorb();
|
||||
}
|
||||
|
||||
public String sendBestellung() {
|
||||
aktuellBestelung = new Bestellung();
|
||||
aktuellBestelung.gesamtKosten(kunde.getWarenKorb().getProdukte());
|
||||
|
||||
return "Produkts Kosten = " + aktuellBestelung.getKosten() + "\n" + "Versand Kosten = "
|
||||
+ aktuellBestelung.getVersandKosten() + "\n" + "GesamtKosten(Produkts Ksoten + Versand Kosten) = "
|
||||
+ aktuellBestelung.getGesamtKosten();
|
||||
|
||||
}
|
||||
|
||||
public void getKundenDaten(String name, String anschrift) throws LeereEingabeException {
|
||||
if (!name.isEmpty() && !name.isEmpty()) {
|
||||
kunde.setName(name);
|
||||
kunde.setAnschrift(anschrift);
|
||||
return;
|
||||
} else
|
||||
throw new LeereEingabeException("Sie müssen Ihren Name sowie Ihren Anschrift eingeben");
|
||||
}
|
||||
|
||||
public boolean getBetrag(double betrag) {
|
||||
System.out.println(aktuellBestelung.getGesamtKosten());
|
||||
return betrag == aktuellBestelung.getGesamtKosten();
|
||||
}
|
||||
|
||||
public void speichereBestellung() {
|
||||
aktuellBestelung.setDate(LocalDate.now());
|
||||
Bestellungen.add(aktuellBestelung);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,22 +1,19 @@
|
|||
package OnlineShop.domain;
|
||||
|
||||
public class Kunde {
|
||||
|
||||
|
||||
private String name;
|
||||
private String anschrift;
|
||||
private Warenkorb warenKorb;
|
||||
private double produktKosten;
|
||||
;
|
||||
|
||||
|
||||
public Kunde(String name, String anschrift) {
|
||||
this.name = name;
|
||||
this.anschrift = anschrift;
|
||||
this.produktKosten = 0.0;
|
||||
this.warenKorb = new Warenkorb();
|
||||
}
|
||||
|
||||
|
||||
public Kunde() {
|
||||
this(null,null);
|
||||
this(null, null);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
|
@ -38,13 +35,4 @@ public class Kunde {
|
|||
public Warenkorb getWarenKorb() {
|
||||
return warenKorb;
|
||||
}
|
||||
|
||||
public double getProduktKosten() {
|
||||
return produktKosten;
|
||||
}
|
||||
|
||||
public void setProduktKosten(double produktKosten) {
|
||||
this.produktKosten = produktKosten;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ public class Produkt {
|
|||
private double preis;
|
||||
private int gewicht;
|
||||
private int bestand;
|
||||
|
||||
|
||||
public Produkt(String name, String beschreibung, double preis, int gewicht, int bestand) {
|
||||
|
||||
this.name = name;
|
||||
|
@ -35,20 +35,15 @@ public class Produkt {
|
|||
public int getBestand() {
|
||||
return bestand;
|
||||
}
|
||||
|
||||
|
||||
public void setBestand(int bestand) {
|
||||
this.bestand -= 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);
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("name=%s, beschreibung=%s, preis=%.2f, gewicht=%d, bestand=%d", name, beschreibung, preis,
|
||||
gewicht, bestand);
|
||||
}
|
||||
|
||||
}
|
|
@ -5,75 +5,27 @@ import java.util.ArrayList;
|
|||
import OnlineShop.domain.ExceptionsKlassen.KeineProdukteImWarenkorb;
|
||||
|
||||
public class Warenkorb {
|
||||
private ArrayList<Produkt> produkte;
|
||||
private int anzahlProdkute;
|
||||
private ArrayList<WarenkorbMenge> produkte;
|
||||
|
||||
Warenkorb() {
|
||||
produkte = new ArrayList<>();
|
||||
this.produkte = new ArrayList<>();
|
||||
}
|
||||
|
||||
public boolean addProdukt(Produkt neueProdukt) {
|
||||
produkte.add(neueProdukt);
|
||||
anzahlProdkute++;
|
||||
public boolean addProdukt(WarenkorbMenge neueWarenkorbMenge) {
|
||||
produkte.add(neueWarenkorbMenge);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean loescheprodukt(String name) {
|
||||
Produkt produktZuLoeschen = findeProduktImWarenkorb(name);
|
||||
if (produktZuLoeschen == null)
|
||||
return false;
|
||||
|
||||
produkte.remove(produktZuLoeschen);
|
||||
anzahlProdkute--;
|
||||
return true;
|
||||
}
|
||||
|
||||
public Produkt findeProduktImWarenkorb(String name) {
|
||||
|
||||
for (Produkt p : produkte)
|
||||
if (p.getName().equalsIgnoreCase(name))
|
||||
return p;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ArrayList<String> zeigeProdukteImWarenKorb() throws KeineProdukteImWarenkorb {
|
||||
if (produkte.size() == 0)
|
||||
throw new KeineProdukteImWarenkorb("Momentan haben Sie Keine Produkte in Ihrem Warenkorb");
|
||||
|
||||
ArrayList<String> allProdukte = new ArrayList<>();
|
||||
ArrayList<Produkt> merker = new ArrayList<>();
|
||||
int anzahl = 0;
|
||||
int index = 1;
|
||||
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;
|
||||
}
|
||||
|
||||
public int getAnzahlProdkute() {
|
||||
return anzahlProdkute;
|
||||
}
|
||||
|
||||
public ArrayList<Produkt> getProdukte() {
|
||||
public ArrayList<WarenkorbMenge> getProdukte() {
|
||||
return produkte;
|
||||
}
|
||||
|
||||
public WarenkorbMenge findWarenkorbMenge(String name) {
|
||||
|
||||
for (WarenkorbMenge wp : produkte)
|
||||
if (wp.getProdukt().getName().equalsIgnoreCase(name))
|
||||
return wp;
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
package OnlineShop.domain;
|
||||
|
||||
public class WarenkorbMenge {
|
||||
private Produkt produkt;
|
||||
private int menge;
|
||||
|
||||
public void addProdukt(Produkt p, int menge) {
|
||||
|
||||
this.produkt = p;
|
||||
this.menge = menge;
|
||||
|
||||
}
|
||||
|
||||
public Produkt getProdukt() {
|
||||
return produkt;
|
||||
}
|
||||
|
||||
public void setProdukt(Produkt produkt) {
|
||||
this.produkt = produkt;
|
||||
}
|
||||
|
||||
public int getMenge() {
|
||||
return menge;
|
||||
}
|
||||
|
||||
public void setMenge(int menge) {
|
||||
this.menge = menge;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return produkt.toString() + ", menge=" + menge;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package OnlineShop.domain;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class produkteLaden {
|
||||
|
||||
public static boolean produkteLaden(ArrayList<Produkt> produkte) throws FileNotFoundException {
|
||||
Scanner sc = new Scanner(new File(
|
||||
"C:\\Users\\obaya\\git\\Programmierung2\\Programmierung2\\src\\OnlineShop\\domain\\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;
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
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
|
|
|
@ -41,17 +41,18 @@ public class Firma {
|
|||
|
||||
//ma = mi; nein, weil nicht jeder mitarbeiter ein manager ist!
|
||||
|
||||
Mitarbeiter mitarbeiter = new Mitarbeiter("Müller", "27.10.1972");
|
||||
Manager manager = new Manager("Stromberg", "01.02.1970", "Finanzen");
|
||||
|
||||
|
||||
|
||||
Firma firma = new Firma();
|
||||
|
||||
Mitarbeiter mitarbeiter2 = new Mitarbeiter("Mayer", "12.12.1999");
|
||||
Mitarbeiter mitarbeiter = new Mitarbeiter("Müller", "27.10.1972");
|
||||
Manager manager = new Manager("Stromberg", "01.02.1970", "Finanzen");
|
||||
firma.mitarbeiterEinstellen(mitarbeiter);
|
||||
firma.mitarbeiterEinstellen(manager);
|
||||
|
||||
Mitarbeiter mitarbeiter2 = new Mitarbeiter("Mayer", "12.12.1999");
|
||||
firma.mitarbeiterEinstellen(mitarbeiter);
|
||||
|
||||
firma.mitarbeiterEinstellen(mitarbeiter2);
|
||||
|
||||
/* geht nicht! Warum?
|
||||
* weil nicht jeder mitarbeiter ein manager ist!
|
||||
|
@ -61,17 +62,22 @@ public class Firma {
|
|||
|
||||
|
||||
//weil jeder manager ist ein mitarbeiter
|
||||
mitarbeiter = manager;// Ja geht:
|
||||
// mitarbeiter = manager;// Ja geht:
|
||||
System.out.println("Polymorphismus");
|
||||
System.out.println(mitarbeiter.getGehalt());
|
||||
System.out.println(manager.getAbteilung());
|
||||
// System.out.println(mitarbeiter.getAbteilung()); // geht nicht, wg. statischem Typ Mitarbeiter
|
||||
|
||||
if (mitarbeiter instanceof Manager)
|
||||
System.out.println( ((Manager)mitarbeiter).getAbteilung() );
|
||||
|
||||
System.out.println("Geht ");
|
||||
|
||||
Manager me = ((Manager)mitarbeiter);
|
||||
|
||||
// mitarbeiter2 = manager;// Ja geht:
|
||||
Manager md =((Manager)mitarbeiter2);
|
||||
|
||||
// ClassCastException zur laufzeit, weil ich if (mitarbeiter instanceof Manager) verwenden soll
|
||||
((Manager)mitarbeiter2).getAbteilung();
|
||||
|
||||
|
||||
// WICHTIG:
|
||||
//instanceof prüft, ob die klasse manager die klasse mitarbeiter erbt
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,50 @@
|
|||
package oop.Interface;
|
||||
|
||||
interface A {
|
||||
|
||||
void myMethod();
|
||||
}
|
||||
|
||||
class B {
|
||||
|
||||
public void myMethod() {
|
||||
System.out.println("My Method");
|
||||
}
|
||||
}
|
||||
/*
|
||||
* - Die Klasse C erbt von B und implementiert A. Da B bereits eine Implementierung für myMethod() hat,
|
||||
* übernimmt C diese Implementierung automatisch. Die Methode myMethod() muss daher in C nicht erneut implementiert werden,
|
||||
* weil sie über die Vererbung von B zur Verfügung gestellt wird.
|
||||
*/
|
||||
class C extends B implements A {
|
||||
|
||||
}
|
||||
|
||||
interface X
|
||||
{
|
||||
void methodX();
|
||||
}
|
||||
|
||||
/*
|
||||
* - Interface methods must be implemented as public. Because,
|
||||
* interface methods are public by default
|
||||
* and you should not reduce the visibility of any methods while overriding.
|
||||
*/
|
||||
class Y implements X
|
||||
{
|
||||
public void methodX()
|
||||
{
|
||||
System.out.println("Method X");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class MainClass {
|
||||
|
||||
public static void main(String[] args){
|
||||
A a = new C();
|
||||
|
||||
a.myMethod();
|
||||
}
|
||||
}
|
|
@ -26,5 +26,13 @@ public class Polymorphism {
|
|||
* • aber anderes Verhalten
|
||||
*/
|
||||
|
||||
/*
|
||||
* Überladung vs. Überschreibung:
|
||||
*
|
||||
* - Bei Methodenüberladung wählt der Compiler die Methode basierend auf dem besten passenden Parameter-Typ zur Kompilierzeit.
|
||||
* - Bei Methodenüberschreibung entscheidet der Compiler basierend auf der Laufzeit-Instanz,
|
||||
* welche Methode aufgerufen wird. Das bezieht sich jedoch nur auf Methoden mit exakt der gleichen Signatur.
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue