diff --git a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/Ausleihe.java b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/Ausleihe.java index 95ce5d3..f09614d 100644 --- a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/Ausleihe.java +++ b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/Ausleihe.java @@ -3,6 +3,10 @@ package domain.AusleiheSystem; import java.text.SimpleDateFormat; import java.util.Date; +import domain.Benutzer.Ausweis; +import domain.Benutzer.Benutzer; +import domain.Benutzer.Kunde; +import domain.Medium.Buch; import domain.Medium.Medium; import domain.Medium.Mediumverwalter; @@ -10,15 +14,18 @@ public class Ausleihe { private SimpleDateFormat simpleFormatter; private Date ausleiheBeginn, ausleiheEnde; + private Mediumverwalter medium; + private Benutzer benutzer; private int verlängerungen; - public Ausleihe(Mediumverwalter medium,Date ausleiheBeginn, Date ausleiheEnde) { + public Ausleihe(Mediumverwalter medium, Benutzer benutzer,Date ausleiheBeginn, Date ausleiheEnde) { this.medium = medium; this.ausleiheBeginn = ausleiheBeginn; this.ausleiheEnde = ausleiheEnde; this.simpleFormatter = new SimpleDateFormat("dd-MM-yyyy HH:mm"); this.verlängerungen = 0; + this.benutzer = benutzer; } public Date getAusleiheBeginn() { @@ -37,12 +44,24 @@ public class Ausleihe { this.ausleiheEnde = ausleiheEnde; } - public Mediumverwalter getMedium() { + public Mediumverwalter getMediumverwalter() { return medium; } + + public Benutzer getBenutzer() { + return benutzer; + } + + public void setBenutzer(Benutzer benutzer) { + this.benutzer = benutzer; + } @Override public String toString() { - return "Ausgeliehene Mediums= "+ medium.toString()+ " Ausleihe Beginn= " +simpleFormatter.format(ausleiheBeginn) + " ,Ausleihe Ende= " + simpleFormatter.format(ausleiheEnde) + " ,verlängerungen= " + verlängerungen; + return "Ausgeliehene Mediums= "+ medium.toString()+ + " Ausleihe Beginn= " +simpleFormatter.format(ausleiheBeginn) + + " ,Ausleihe Ende= " + simpleFormatter.format(ausleiheEnde) + + " ,verlängerungen= " + verlängerungen + + " ,inhaber= " + benutzer.toString() ; } } diff --git a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java index 69c36b0..22084dd 100644 --- a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java +++ b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java @@ -31,9 +31,8 @@ public class AusleiheSystem { calendar.add(Calendar.WEEK_OF_YEAR, mediumAusleihen.getLeihdauer()); this.ausleiheEnde = calendar.getTime(); - Ausleihe neueAusleihe = new Ausleihe(mediumAusleihen,ausleiheBeginn,ausleiheEnde); - benutzer.ausleihen(neueAusleihe); - System.out.println(benutzer.getAusgeliehenenMedien()); + Ausleihe neueAusleihe = new Ausleihe(mediumAusleihen,benutzer,ausleiheBeginn,ausleiheEnde); + return neueAusleihe; } diff --git a/Bibliotheksverwaltungssystem/src/domain/Benutzer/Benutzer.java b/Bibliotheksverwaltungssystem/src/domain/Benutzer/Benutzer.java index 6d6233b..5094297 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Benutzer/Benutzer.java +++ b/Bibliotheksverwaltungssystem/src/domain/Benutzer/Benutzer.java @@ -17,7 +17,7 @@ public abstract class Benutzer { private ArrayList ausgeliehenenMedien; private boolean angemeldet; private double gebühren; - private Date anmeldebeginn,anmeldeEnde; + private Date anmeldebeginn; private SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); public Benutzer(Ausweis bibAusweis, String name, int alter, boolean istStudent) { @@ -103,22 +103,28 @@ public abstract class Benutzer { this.anmeldebeginn = formatter.parse(anmeldebeginn); } - public Date getAnmeldeEnde() { - return anmeldeEnde; - } - - public void setAnmeldeEnde(String anmeldeEnde) throws ParseException { - this.anmeldeEnde= formatter.parse(anmeldeEnde); - } +// public Date getAnmeldeEnde() { +// return anmeldeEnde; +// } +// +// public void setAnmeldeEnde(String anmeldeEnde) throws ParseException { +// this.anmeldeEnde= formatter.parse(anmeldeEnde); +// } public abstract double getJahresgebühr(); @Override public String toString() { - return "Benutzer [bibAusweisNummer= " + bibAusweis.getKartenNummer() + ", name=" + name + ", alter=" + alter + ", istStudent=" - + istStudent + ", ist im System Online = " + angemeldet + "Gebühren= "+ gebühren +"Anmeldet seit= " + formatter.format(anmeldeEnde) + ", ausgeliehenenMedien=" + ausgeliehenenMedien + "]"; + return "Benutzer [bibAusweisNummer= " + bibAusweis.getKartenNummer() + + ", name=" + name + + ", alter=" + alter + + ", istStudent=" + istStudent + + ", ist im System Online = " + angemeldet + + " ,Gebühren= "+ gebühren + "]"; } - + public String zeigeAusgeliehenMediums() { + return "Ausgeliehene Mediums= " + ausgeliehenenMedien; + } } diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java index 7a60a4f..362f27e 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java @@ -4,8 +4,8 @@ package domain.Medium; public class Brettspiel extends Medium { private String Verlag; - public Brettspiel(String title, int erscheinungsjahr, String Verlag) { - super(title, erscheinungsjahr); + public Brettspiel(String ID,String title, int erscheinungsjahr, String Verlag) { + super(ID,title, erscheinungsjahr); if (Verlag.isEmpty()) this.Verlag = "-"; diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Buch.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Buch.java index cd11a22..bbb4d7e 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Buch.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Buch.java @@ -5,8 +5,8 @@ public class Buch extends Medium { private String autor; - public Buch(String title, int erscheinungsjahr, String autor) { - super(title, erscheinungsjahr); + public Buch(String ID,String title, int erscheinungsjahr, String autor) { + super(ID,title, erscheinungsjahr); if (autor.isEmpty()) this.autor = "-"; diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java index 46129c3..06cec4a 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java @@ -5,8 +5,8 @@ import java.util.Date; public class Cd extends Medium { private String Künstler; - public Cd(String title, int erscheinungsjahr,String Künstler) { - super(title, erscheinungsjahr); + public Cd(String ID,String title, int erscheinungsjahr,String Künstler) { + super(ID,title, erscheinungsjahr); if (Künstler.isEmpty()) this.Künstler = "-"; diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Dvd.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Dvd.java index 845061e..46da76f 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Dvd.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Dvd.java @@ -4,8 +4,8 @@ package domain.Medium; public class Dvd extends Medium { private String regisseur; - public Dvd(String title, int erscheinungsjahr,String regisseur) { - super(title, erscheinungsjahr); + public Dvd(String ID,String title, int erscheinungsjahr,String regisseur) { + super(ID,title, erscheinungsjahr); if (regisseur.isEmpty()) this.regisseur = "-"; diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Medium.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Medium.java index e9fe81d..8a2f063 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Medium.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Medium.java @@ -1,16 +1,17 @@ package domain.Medium; -import java.util.Date; public abstract class Medium { private String title; private int erscheinungsjahr; + private String ID; - public Medium(String title, int erscheinungsjahr) { + public Medium(String ID,String title, int erscheinungsjahr) { super(); this.title = title; this.erscheinungsjahr = erscheinungsjahr; + this.ID = ID; } public String getTitle() { @@ -20,10 +21,14 @@ public abstract class Medium { public int getErscheinungsjahr() { return erscheinungsjahr; } + + public String getID() { + return ID; + } @Override public String toString() { - return "title=" + title + ", erscheinungsjahr=" + erscheinungsjahr; + return "ID= "+ ID + " ,title=" + title + ", erscheinungsjahr=" + erscheinungsjahr; } } diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Mediumverwalter.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Mediumverwalter.java index 5fe5784..7a52b34 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Mediumverwalter.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Mediumverwalter.java @@ -48,9 +48,13 @@ public class Mediumverwalter { @Override public String toString() { - return "Medium=" + medium.toString() + " ,verlängerbar=" + verlängerbar + ", anzahl=" + anzahl + ",ist Ausgeliehen= " + istAusgeliehen + ", Leihdauer=" - + leihdauer ; + return "Medium=" + medium.toString() + + " ,verlängerbar=" + verlängerbar + + ", anzahl=" + anzahl + + ",ist Ausgeliehen= " + istAusgeliehen + + ", Leihdauer=" + leihdauer ; } + } diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Videospiel.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Videospiel.java index 4fd00d2..ceeae36 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Videospiel.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Videospiel.java @@ -6,8 +6,8 @@ public class Videospiel extends Medium { private String plattform; - public Videospiel(String title, int erscheinungsjahr, String plattform) { - super(title, erscheinungsjahr); + public Videospiel(String ID,String title, int erscheinungsjahr, String plattform) { + super(ID,title, erscheinungsjahr); if (plattform.isEmpty()) this.plattform = "-"; diff --git a/Bibliotheksverwaltungssystem/src/domain/fassade/BibSystem.java b/Bibliotheksverwaltungssystem/src/domain/fassade/BibSystem.java index 97486ab..e070080 100644 --- a/Bibliotheksverwaltungssystem/src/domain/fassade/BibSystem.java +++ b/Bibliotheksverwaltungssystem/src/domain/fassade/BibSystem.java @@ -25,12 +25,14 @@ import domain.UserRegistieren.Registieren; public class BibSystem { private ArrayList alleBibBenutzer; - private HashMap medien; + private HashMap medien; private ArrayList ausleihe; private AusleiheSystem ausleiheSystem; private Date heutigesDatum; private SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); - + + private Benutzer temp; + public BibSystem() { this.alleBibBenutzer = new ArrayList<>(); @@ -40,60 +42,83 @@ public class BibSystem { this.ausleihe = new ArrayList<>(); mediumsAufladen(); } - - public ArrayList mediumDurchsuchen(String auswahl, String bibKartenNummer) throws FalscheEingabeException, MediumNichtGefundenException, BenutzerNichtAngemeldetException { - if (!checkIfUserImSystemAngemeldetIst(bibKartenNummer)) - throw new BenutzerNichtAngemeldetException("Sie müssen sich erst im System anmelden"); - - ArrayList treffer = new ArrayList<>(); + + public ArrayList medienRückgabe(String eindeutigeKennung) { + Ausleihe ausgelieheneMedium = ausleihe.stream() + .filter(k -> k.getMediumverwalter().getMedium().getID().equalsIgnoreCase(eindeutigeKennung)).findFirst() + .orElse(null); + + ArrayList ausgeliehenMedien = new ArrayList<>(); + + if (ausgelieheneMedium != null) { + ausgelieheneMedium.getBenutzer().removeMedium(ausgelieheneMedium); + ausleihe.remove(ausgelieheneMedium); + ausgelieheneMedium.getMediumverwalter().setIstAusgeliehen(false); + ausgelieheneMedium.getMediumverwalter().setAnzahl(ausgelieheneMedium.getMediumverwalter().getAnzahl() + 1); + for (Ausleihe a : ausgelieheneMedium.getBenutzer().getAusgeliehenenMedien()) + ausgeliehenMedien.add(a.toString()); + + } + return ausgeliehenMedien; + } + + public ArrayList mediumDurchsuchen(String auswahl, String bibKartenNummer) + throws FalscheEingabeException, MediumNichtGefundenException, BenutzerNichtAngemeldetException { + if (!checkIfUserImSystemAngemeldetIst(bibKartenNummer)) + throw new BenutzerNichtAngemeldetException("Sie müssen sich erst im System anmelden"); + + ArrayList treffer = new ArrayList<>(); Mediensuchen medienSuchen = new Mediensuchen(); - - if(auswahl.equalsIgnoreCase("ausgeliehen")) + + if (auswahl.equalsIgnoreCase("ausgeliehen")) treffer = medienSuchen.ausgeliehen(auswahl, medien); - - else if(auswahl.equalsIgnoreCase("nicht Ausgeliehen")) + + else if (auswahl.equalsIgnoreCase("nicht Ausgeliehen")) treffer = medienSuchen.nichtAusgeliehen(auswahl, medien); - - else if(auswahl.equalsIgnoreCase("Bücher") || auswahl.equalsIgnoreCase("Brettspiele") || auswahl.equalsIgnoreCase("Dvds") || auswahl.equalsIgnoreCase("Cds") || auswahl.equalsIgnoreCase("Videospiele") ) + + else if (auswahl.equalsIgnoreCase("Bücher") || auswahl.equalsIgnoreCase("Brettspiele") + || auswahl.equalsIgnoreCase("Dvds") || auswahl.equalsIgnoreCase("Cds") + || auswahl.equalsIgnoreCase("Videospiele")) treffer = medienSuchen.medienart(auswahl, medien); - + else treffer = medienSuchen.title(auswahl, medien); - - + if (treffer.size() == 0) throw new MediumNichtGefundenException("Kein treffer"); - + return treffer; } - - public void userRegistrieren(String name, String type, int alter,String istAdmin) throws FalscheEingabeException { + + public void userRegistrieren(String name, String type, int alter, String istAdmin) throws FalscheEingabeException { Benutzer bibBenutzer = Registieren.userRegistrieren(name, type, alter, istAdmin); - alleBibBenutzer.add(bibBenutzer); + alleBibBenutzer.add(bibBenutzer); } - + public boolean userAnmdelden(String bibKartenNummer) throws BenutzerNichtGefundenException { - Benutzer bibBenutzer = findeBenutzer(bibKartenNummer); + Benutzer bibBenutzer = findeBenutzer(bibKartenNummer); bibBenutzer.setAngemeldet(true); return bibBenutzer.isAngemeldet(); } - + public String mediumAusleihen(String bibKartenNummer, String eindeutigeKennung) throws Exception { - Benutzer tempBenutzer = findeBenutzer(bibKartenNummer); + this.temp = findeBenutzer(bibKartenNummer); - if (tempBenutzer instanceof Mitarbeiter) + if (temp instanceof Mitarbeiter) throw new Exception("Mitarbeiter können keine Mediums ausleihen!"); - - if (!checkIfUserImSystemAngemeldetIst(bibKartenNummer)) + + if (!checkIfUserImSystemAngemeldetIst(bibKartenNummer)) throw new BenutzerNichtAngemeldetException("Sie müssen sich erst im System anmelden"); - - Ausleihe neueAusleihe = ausleiheSystem.mediumAusleihen(tempBenutzer,eindeutigeKennung); - + + Ausleihe neueAusleihe = ausleiheSystem.mediumAusleihen(temp, eindeutigeKennung); ausleihe.add(neueAusleihe); - return "Das Medium wurde erfolgreich ausgeliehen"; + temp.ausleihen(neueAusleihe); + return "Das Medium wurde erfolgreich ausgeliehen"; } + + public Date getHeutigesDatum() { return heutigesDatum; } @@ -104,18 +129,22 @@ public class BibSystem { // Temporäre Test Methode private void mediumsAufladen() { - Mediumverwalter buch = new Mediumverwalter(true, 10, 4, new Buch("Effektives Java Programmieren", 2018, "Joshua Bloch")); - medien.put("B001",buch); - - Mediumverwalter buchIStAusgeliehen = new Mediumverwalter(true, 10, 4, new Buch("Effektives C++ Programmieren", 2018, "Joshua Bloch")); + Mediumverwalter buch = new Mediumverwalter(true, 10, 4, + new Buch("B001", "Effektives Java Programmieren", 2018, "Joshua Bloch")); + medien.put(buch.getMedium().getID(), buch); + + Mediumverwalter buchIStAusgeliehen = new Mediumverwalter(true, 10, 4, + new Buch("B00", "Effektives C++ Programmieren", 2018, "Joshua Bloch")); buchIStAusgeliehen.setIstAusgeliehen(true); - medien.put("B00", buchIStAusgeliehen); - - Mediumverwalter buchIStNichtAusgeliehen = new Mediumverwalter(true, 10, 4, new Buch("Javascript lenren", 2018, "Joshua Bloch")); - medien.put("BG001",buchIStNichtAusgeliehen); - - Mediumverwalter Videospiel = new Mediumverwalter(true,2,1,new Videospiel ("The Legend of Zelda: Breath of the Wild", 2017,"Nintendo Switch")); - medien.put("BG00122",Videospiel); + medien.put(buchIStAusgeliehen.getMedium().getID(), buchIStAusgeliehen); + + Mediumverwalter buchIStNichtAusgeliehen = new Mediumverwalter(true, 10, 4, + new Buch("BG001", "Javascript lenren", 2018, "Joshua Bloch")); + medien.put(buchIStNichtAusgeliehen.getMedium().getID(), buchIStNichtAusgeliehen); + + Mediumverwalter Videospiel = new Mediumverwalter(true, 2, 1, + new Videospiel("BG00122", "The Legend of Zelda: Breath of the Wild", 2017, "Nintendo Switch")); + medien.put(Videospiel.getMedium().getID(), Videospiel); } private boolean checkIfUserImSystemAngemeldetIst(String bibKartenNummer) { @@ -125,7 +154,8 @@ public class BibSystem { private Benutzer findeBenutzer(String bibKartenNummer) throws BenutzerNichtGefundenException { return alleBibBenutzer.stream() .filter(k -> k.getBibAusweis().getKartenNummer().equalsIgnoreCase(bibKartenNummer)).findFirst() - .orElseThrow(() -> new BenutzerNichtGefundenException("Benutzer mit Kartennummer " + bibKartenNummer + " nicht gefunden")); + .orElseThrow(() -> new BenutzerNichtGefundenException( + "Benutzer mit Kartennummer " + bibKartenNummer + " nicht gefunden")); } } diff --git a/Bibliotheksverwaltungssystem/src/domain/fassade/MedienRückgabeTest.java b/Bibliotheksverwaltungssystem/src/domain/fassade/MedienRückgabeTest.java new file mode 100644 index 0000000..1623730 --- /dev/null +++ b/Bibliotheksverwaltungssystem/src/domain/fassade/MedienRückgabeTest.java @@ -0,0 +1,29 @@ +package domain.fassade; + +import static org.junit.jupiter.api.Assertions.*; + +import java.util.ArrayList; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class MedienRückgabeTest { + + private BibSystem bib; + + @BeforeEach + void setUp() throws Exception { + this.bib = new BibSystem(); + } + + @Test + void test() throws Exception { + bib.userRegistrieren("obai", "student", 15, "nein"); + bib.userAnmdelden("K1000"); + bib.mediumAusleihen("K1000", "B001"); + + ArrayList test = bib.medienRückgabe("B001"); + test.forEach(System.out::println); + } + +} diff --git a/Bibliotheksverwaltungssystem/src/tui/Tui.java b/Bibliotheksverwaltungssystem/src/tui/Tui.java index 06e4225..49a18b5 100644 --- a/Bibliotheksverwaltungssystem/src/tui/Tui.java +++ b/Bibliotheksverwaltungssystem/src/tui/Tui.java @@ -1,5 +1,6 @@ package tui; +import java.util.ArrayList; import java.util.Scanner; import domain.ExceptionsKlassen.BenutzerNichtAngemeldetException; @@ -52,11 +53,33 @@ public class Tui { case "4": mediumAusleihenProzess(); break; + + case "5": + mediumsRückgabeProzess(); } } } + private void mediumsRückgabeProzess() throws FalscheEingabeException, MediumNichtGefundenException, BenutzerNichtAngemeldetException { + String eindutigekennung; + boolean mediumsRückgabeProzess = true; + + while (mediumsRückgabeProzess) { + System.out.println("Geben Sie bitte das eindutige Kennung des Mediums an"); + eindutigekennung = eingabe.nextLine(); + ArrayList ausgeliehneMedien = fassade.medienRückgabe(eindutigekennung); + System.out.println("Medium ist erfolgreich zurückgegeben"); + if (ausgeliehneMedien.size() == 0) + System.out.println("Sie haben keine Mediums mehr"); + + else + ausgeliehneMedien.stream().forEach(System.out::println); + + startBibProgramm(); + } + } + private void mediumAusleihenProzess(){ String kartennummer; String eindutigeKennung; diff --git a/Bibliotheksverwaltungssystem/vorgehen.txt b/Bibliotheksverwaltungssystem/vorgehen.txt index dad8b79..13f3c96 100644 --- a/Bibliotheksverwaltungssystem/vorgehen.txt +++ b/Bibliotheksverwaltungssystem/vorgehen.txt @@ -1,18 +1,27 @@ +Projektstruktur aufsetzen: + +ich werde erst das Git-Repository und die Grundstruktur erstellen. +werde danach die Hauptverzeichnisse und grundlegende Klassen erstellen. + +Ich werde in meiner Hauptverzeichnisse drei Packages anlegen: +1. domain für das Geschäftslogik +2. Tui texteulle user Interface Benutzeroberfläche (UI) und Controller-Logik + - die BibliotheksUI-Klasse, die die Interaktion mit dem Benutzer ermöglicht. + - hierbei werde ich Methoden für Anmeldung, Medienausleihe, Medienrückgabe, Verlängerung, und Gebührenerfassung erstellen +3. Main main klasse damit ich mein Software ausführe + + Anforderungsanalyse: Für das Bibliotheksverwaltungssystem werde ich zunächst eine gründliche Analyse der Anforderungen durchführen. -Hierbei werde ich festlegen, welche Funktionen und Ziele die Software erfüllen soll. Ein wesentlicher Aspekt ist auch, -die unterschiedlichen Akteure zu identifizieren, die die Software verwenden werden, um ihre Bedürfnisse und Anforderungen zu berücksichtigen. +Hierbei werde ich festlegen, welche Funktionen und Ziele die BibSoftware erfüllen soll. -Das Bibsystem unterstützt 6 Aktionen: -Aktion1 : Registrieren -Also hier werde ich in der UI dem Benutzer die Möglichkeit seine Daten einzugeben(Name,alter,etc...) -die Fassade nimmt die Daten entgegen und erstellt für die Benutzer ein neues Konto und ein neuer Ausweis -hier soll der kunde eingeben, ob er normale Kunde ist oder ein Mitarbeiter(Admin) +danach werde ich festlegen, welche Klassen ich für mein Software benötige + - Entwickle die abstrakte Klasse Medium mit Attributen und Methoden. + - Implementiere spezifische Medienklassen (Buch, DVD, CD, Brettspiel, Videospiel). + - Erstelle eine abstrakte Klasse Benutzer und spezifische Benutzerklassen (Erwachsener, Schüler, Student). + - Implementiere die AdminBenutzer-Klasse für spezielle Verwaltungsfunktionen. + -Design und Datenstrukturentscheidung: -In diesem Schritt plane und entwerfe ich die grundlegende Klassenstruktur. -Dazu werde ich ermitteln, wie viele Klassen benötigt werden und welche Attribute und Methoden jede Klasse enthalten soll. -ich werde auch die Beziehungen zwischen den Klassen definieren(z.b Vererbung, Assoziation, etc..)