Hallo Leute,
ich habe mir ein Projekt ausgedacht, welches meine Kenntnisse herausfordern soll. So möchte ich ein Kassensystem programmieren, welches verschiedene Objekte über die Artikelnummer, welches ein String ist, erkennt und dessen Eigenschaften ausgibt, bzw. den Bezahlvorgang abschließt.
Je nach Produktkategorie habe ich eine Vaterklasse erstellt, welches seine Attribute zu seinen Kindesklassen vererben soll, z.B. Produkt -> Food und Non-Food -> Getränke, Frisches, Tiefgefrorenes und Haushaltsgeräte usw.
Nun habe ich eine Liste mit verschiedenen Objekten als ArrayList() in der main-Methode erstellt, dessen Klasse ich "Supermarkt" genannt habe.
Eine weitere Klasse die "Kasse" heißt soll die Methoden enthalten, die die Artikelnummer vergleicht und dessen Produkteigenschaften ausgibt. Die Methode in der Kasse, welches ich scann() genannt habe soll jetzt die per Scanner eingelesene Artikelnummern von allen Produkten vergleichen und erkennen.
Wie kann man das am besten Umsetzten?
Schon mal vielen Dank im Voraus
//Vaterklasse "Produkt"
// Supermarkt Klasse
//Kasse Klasse
ich habe mir ein Projekt ausgedacht, welches meine Kenntnisse herausfordern soll. So möchte ich ein Kassensystem programmieren, welches verschiedene Objekte über die Artikelnummer, welches ein String ist, erkennt und dessen Eigenschaften ausgibt, bzw. den Bezahlvorgang abschließt.
Je nach Produktkategorie habe ich eine Vaterklasse erstellt, welches seine Attribute zu seinen Kindesklassen vererben soll, z.B. Produkt -> Food und Non-Food -> Getränke, Frisches, Tiefgefrorenes und Haushaltsgeräte usw.
Nun habe ich eine Liste mit verschiedenen Objekten als ArrayList() in der main-Methode erstellt, dessen Klasse ich "Supermarkt" genannt habe.
Eine weitere Klasse die "Kasse" heißt soll die Methoden enthalten, die die Artikelnummer vergleicht und dessen Produkteigenschaften ausgibt. Die Methode in der Kasse, welches ich scann() genannt habe soll jetzt die per Scanner eingelesene Artikelnummern von allen Produkten vergleichen und erkennen.
Wie kann man das am besten Umsetzten?
Schon mal vielen Dank im Voraus
//Vaterklasse "Produkt"
Java:
package produkt;
public class Produkt {
private String artikelNR, name;
private int bestand;
private double vkp, ekp;
public static double mwSt;
public Produkt(String artikelNR, String name, int bestand, double vkp, double ekp) {
super();
this.artikelNR = artikelNR;
this.name = name;
this.bestand = bestand;
this.vkp = vkp;
this.ekp = ekp;
}
public Produkt() {
}
public String getArtikelNR() {
return artikelNR;
}
public void setArtikelNR(String artikelNR) {
this.artikelNR = artikelNR;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMwSt() {
return mwSt;
}
public void setMwSt(double mwSt) {
Produkt.mwSt = 1.19;
}
public int getBestand() {
return bestand;
}
public void setBestand(int bestand) {
this.bestand = bestand;
}
public double getVkp() {
return vkp;
}
public void setVkp(double vkp) {
this.vkp = vkp;
}
public double getEkp() {
return ekp;
}
public void setEkp(double ekp) {
this.ekp = ekp;
}
}
// Supermarkt Klasse
Java:
package supermarkt;
import java.time.LocalDate;
import java.util.ArrayList;
import food.Frisch;
import food.Gekühlt;
import food.Getränke;
import food.Langhaltbaren;
import food.Tiefgefroren;
import non_food.Drogerie;
import non_food.Haushalts_kl_gr_Geraete;
import kasse.Kasse;
public class Supermarkt {
public static void main(String[] args) {
ArrayList<Frisch> frisch = new ArrayList<>();
frisch.add(new Frisch("231430", "Banane", 100, 2.39, 0.89, LocalDate.of(2018, 8, 31)));
frisch.add(new Frisch("123314", "Avocado", 94, 2.99, 1.10, LocalDate.of(2018, 8, 31)));
ArrayList<Gekühlt> gekühlt = new ArrayList<>();
gekühlt.add(new Gekühlt("89796", "Joghurt", 200, 2.10, 0.90, LocalDate.of(2018, 9, 15)));
gekühlt.add(new Gekühlt("87214", "Käse", 200, 2.45, 1.40, LocalDate.of(2018, 10, 05)));
ArrayList<Tiefgefroren> gefroren = new ArrayList<>();
gefroren.add(new Tiefgefroren("864123", "Lachsfilet", 80, 4.99, 1.80, LocalDate.of(2018, 8, 31)));
gefroren.add(new Tiefgefroren("638565", "Magnum Eis", 100, 2.35, 0.99, LocalDate.of(2018, 10, 31)));
ArrayList<Drogerie> drogerie = new ArrayList<>();
drogerie.add(new Drogerie("7289174", "Zahnpasta", 200, 1.80, 0.60));
drogerie.add(new Drogerie("7862535", "Deodorant", 180, 2.80, 0.99));
ArrayList<Haushalts_kl_gr_Geraete> geräte = new ArrayList<>();
geräte.add(new Haushalts_kl_gr_Geraete("783242", "Toaster", 150, 29.99, 9.99));
geräte.add(new Haushalts_kl_gr_Geraete("1231784", "Kaffemaschine", 90, 79.99, 19.99));
ArrayList<Langhaltbaren> haltbar = new ArrayList<>();
haltbar.add(new Langhaltbaren("878924", "Tuhnfischdose", 200, 2.39, 0.88, LocalDate.of(2020, 5, 30)));
haltbar.add(new Langhaltbaren("762354", "Erdnussdose", 400, 2.89, 0.99, LocalDate.of(2021, 3, 31)));
ArrayList<Getränke> getränke = new ArrayList<>();
getränke.add(new Getränke("212658", "Pepsi", 100, 1.79, 0.70, LocalDate.of(2019, 1, 31)));
getränke.add(new Getränke("8623512", "Bananensaft", 80, 2.79, 1.00, LocalDate.of(2018, 12, 31)));
Kasse kasse = new Kasse("01", 500.00);
kasse.scann();
}
}
//Kasse Klasse
Java:
package kasse;
import java.util.Scanner;
import produkt.Produkt;
public class Kasse {
private String kassenNR;
private double kassengeld;
public Kasse(String kassenNR, double kassengeld) {
super();
this.kassenNR = kassenNR;
this.kassengeld = kassengeld;
}
public String getKassenNR() {
return kassenNR;
}
public void setKassenNR(String kassenNR) {
this.kassenNR = kassenNR;
}
public double getKassengeld() {
return kassengeld;
}
public void setKassengeld(double kassengeld) {
this.kassengeld = kassengeld;
}
public void scann() {
Scanner keyb = new Scanner(System.in);
System.out.println("Geben Sie die Artikelnummer ein: ");
String eingabe = keyb.nextLine();
double kassenstand = 0;
Produkt produkt = new Produkt() {
};
if (eingabe.equals(produkt.getArtikelNR())) {
System.out.println("ArtNR: " + produkt.getArtikelNR() + "\nArtikel: " + produkt.getName() + "\nPreis: "
+ produkt.getVkp());
System.out.println("\nBezahlt?");
if (eingabe.equalsIgnoreCase("Ja")) {
kassenstand = this.kassengeld + produkt.getVkp();
} else {
System.out.println("Abgebrochen!");
}
} else {
System.out.println("Artikel nicht gefunden!");
}
System.out.println("Kassenstand aktuell: ");
System.out.println(kassenstand);
keyb.close();
}
}