Online Shop

master
3009594 2024-10-18 00:38:46 +02:00
parent b64876a718
commit ce0e81a680
10 changed files with 324 additions and 0 deletions

View File

@ -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();
}
}

View File

@ -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);
}
}

View File

@ -0,0 +1,8 @@
package OnlineShop.domain.ExceptionsKlassen;
public class EmptyInputException extends Exception{
public EmptyInputException(String error){
super(error);
}
}

View File

@ -0,0 +1,8 @@
package OnlineShop.domain.ExceptionsKlassen;
public class KundeNichtGefundenException extends Exception {
KundeNichtGefundenException(String error){
super(error);
}
}

View File

@ -0,0 +1,8 @@
package OnlineShop.domain.ExceptionsKlassen;
public class ProduktNichtGefundenException extends Exception {
public ProduktNichtGefundenException(String error){
super(error);
}
}

View File

@ -0,0 +1,12 @@
package OnlineShop.domain;
public class GesamtKostenBerechnen {
public static double gesamtKosten (Produkt p) {
double kosten = 0.0;
return kosten;
}
}

View File

@ -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<Produkt> produkte;
private ArrayList<Kunde> 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<String> zeigeProdukte() {
ArrayList<String> 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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -0,0 +1,51 @@
package OnlineShop.domain;
import java.util.ArrayList;
public class Warenkorb {
private ArrayList<Produkt> 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<String> zeigeProdukteImWarenKorb() {
ArrayList<String> allProdukte = new ArrayList<>();
for (Produkt p : produkte)
allProdukte.add(anzahlProdkute + ".Produkt: " + p.print() + "\n");
return allProdukte;
}
public int getAnzahlProdkute() {
return anzahlProdkute;
}
}