diff --git a/Bibliotheksverwaltungssystem/Anforderungsanalyse/Textuelle Beschreibung b/Bibliotheksverwaltungssystem/Anforderungsanalyse/Textuelle Beschreibung index 959f848..b5d7aa5 100644 --- a/Bibliotheksverwaltungssystem/Anforderungsanalyse/Textuelle Beschreibung +++ b/Bibliotheksverwaltungssystem/Anforderungsanalyse/Textuelle Beschreibung @@ -21,7 +21,7 @@ Anwendungsfälle: 2. Medien ausleihen: -• Akteur: Kunde +• Akteur: Kunde , System • Ziel: Medien ausleihen und zurückgeben • Schritte: 1. Der Kunde muss im System angemeldet sein. @@ -34,7 +34,7 @@ Anwendungsfälle: 3. Leihfrist verlängern: -• Akteur: Kunde +• Akteur: Kunde , System • Ziel: Die Leihfrist für Medien verlängern • Schritte: 1. Der Kunde muss im System angemeldet sein. @@ -63,7 +63,7 @@ Anwendungsfälle: 5. Überfällige Artikel und Gebühren berechnen: -• Akteure: System +• Akteur: Kunde , System • Ziel: Verwaltung der überfälligen Gebühren • Schritte: 1. Das System überprüft regelmäßig die Rückgabedaten der ausgeliehenen Artikel. @@ -81,7 +81,7 @@ Anwendungsfälle: 6. Durchsuchen der Medien: -• Akteur: Kunde +• Akteur: Kunde , System • Ziel: Der Benutzer soll in der Lage sein, den Medienkatalog des Systems nach verschiedenen Kriterien zu durchsuchen, um spezifische Medien zu finden. • Schritte: 1. Kunde öffnet die Suchfunktion des Medienkatalogs im System. @@ -98,7 +98,7 @@ Anwendungsfälle: 7. Hinzufügen von Medien: -• Akteur: Kunde(Mitarbeiter) +• Akteur: Kunde(Mitarbeiter), System • Ziel: der Mitarbeiter haben die Fähigkeit Medien im System hinzuzufügen • Schritte: 1. Der Mitarbeiter gibt die Details des Mediums im System ein. diff --git a/Bibliotheksverwaltungssystem/Design/SystemUml.drawio b/Bibliotheksverwaltungssystem/Design/SystemUml.drawio index 05606b7..5648089 100644 --- a/Bibliotheksverwaltungssystem/Design/SystemUml.drawio +++ b/Bibliotheksverwaltungssystem/Design/SystemUml.drawio @@ -1,183 +1,148 @@ - + - + - - + + - - - - - - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - - - - - - - + + - - + + - + - + - + - + - + - - + + - + - - + + - + - + - + + + + + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + @@ -186,43 +151,43 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -230,7 +195,7 @@ - + @@ -238,7 +203,7 @@ - + @@ -246,7 +211,7 @@ - + @@ -254,7 +219,7 @@ - + @@ -262,7 +227,7 @@ - + @@ -270,76 +235,76 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -347,54 +312,30 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem.java b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java similarity index 68% rename from Bibliotheksverwaltungssystem/src/domain/AusleiheSystem.java rename to Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java index 71bc6cc..d29d85f 100644 --- a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem.java +++ b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java @@ -1,9 +1,10 @@ -package domain; +package domain.AusleiheSystem; import java.util.ArrayList; import domain.Benutzer.Benutzer; import domain.ExceptionsKlassen.MediumNichtGefundenException; +import domain.Medium.Brettspiel; import domain.Medium.Medium; public class AusleiheSystem { @@ -18,10 +19,18 @@ public class AusleiheSystem { public void mediumAusleihen(Benutzer benutzer, String eindutigenummer) throws MediumNichtGefundenException { this.benutzer = benutzer; Medium mediumAusleihen = findMedium(eindutigenummer); - MediumZumAusleihen medium = new MediumZumAusleihen(); - medium.getMedium(mediumAusleihen); - benutzer.getAusgeliehenenMedien().add(medium); - System.out.println(benutzer.getAusgeliehenenMedien().toString()); + MediumZumAusleihen medium; + if (mediumAusleihen instanceof Brettspiel) + + medium = new MediumZumAusleihen(false,mediumAusleihen); + else + medium = new MediumZumAusleihen(true,mediumAusleihen); + + benutzer.ausleihen(medium); + benutzer.getAusgeliehenenMedien().stream() + .forEach(System.out::println); + + } private Medium findMedium(String eindeutigeKennung) throws MediumNichtGefundenException { diff --git a/Bibliotheksverwaltungssystem/src/domain/MediumZumAusleihen.java b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MediumZumAusleihen.java similarity index 51% rename from Bibliotheksverwaltungssystem/src/domain/MediumZumAusleihen.java rename to Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MediumZumAusleihen.java index b7b6f8f..59664d6 100644 --- a/Bibliotheksverwaltungssystem/src/domain/MediumZumAusleihen.java +++ b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MediumZumAusleihen.java @@ -1,5 +1,6 @@ -package domain; +package domain.AusleiheSystem; +import java.text.SimpleDateFormat; import java.util.Date; import domain.Medium.Medium; @@ -7,15 +8,19 @@ import domain.Medium.Medium; public class MediumZumAusleihen { private Date ausleihefrist; + private SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); + private String formattedDate; private Medium medium; + private boolean verlängerbar; - - public void getMedium(Medium medium) { + public MediumZumAusleihen(boolean verlängerbar, Medium medium) { this.ausleihefrist = new Date(); + formattedDate = formatter.format(this.ausleihefrist); + this.verlängerbar = verlängerbar; this.medium = medium; } - - + + public Date getAusleihefrist() { return ausleihefrist; } @@ -34,12 +39,12 @@ public class MediumZumAusleihen { public void setMedium(Medium medium) { this.medium = medium; } - - + + @Override public String toString() { - return "MediumZumAusleihen [ausleihefrist=" + ausleihefrist + ", medium=" + medium.toString() + "]"; + return "MediumZumAusleihen [ausleihefrist=" + formattedDate + ", verlängerbar=" + + verlängerbar + ", medium=" + medium + "]"; } - - + } diff --git a/Bibliotheksverwaltungssystem/src/domain/Benutzer/Benutzer.java b/Bibliotheksverwaltungssystem/src/domain/Benutzer/Benutzer.java index a421746..3b9edb0 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Benutzer/Benutzer.java +++ b/Bibliotheksverwaltungssystem/src/domain/Benutzer/Benutzer.java @@ -2,7 +2,7 @@ package domain.Benutzer; import java.util.ArrayList; -import domain.MediumZumAusleihen; +import domain.AusleiheSystem.MediumZumAusleihen; import domain.Medium.Medium; public abstract class Benutzer { diff --git a/Bibliotheksverwaltungssystem/src/domain/BibSystem.java b/Bibliotheksverwaltungssystem/src/domain/BibSystem.java index e9eebd7..9615f0f 100644 --- a/Bibliotheksverwaltungssystem/src/domain/BibSystem.java +++ b/Bibliotheksverwaltungssystem/src/domain/BibSystem.java @@ -3,8 +3,10 @@ package domain; import java.util.ArrayList; import java.util.stream.Stream; +import domain.AusleiheSystem.AusleiheSystem; import domain.Benutzer.*; import domain.ExceptionsKlassen.*; +import domain.Medium.Brettspiel; import domain.Medium.Buch; import domain.Medium.Medium; @@ -59,6 +61,8 @@ public class BibSystem { private void mediumAufladen() { alleMediums.add(new Buch("B001","Effektives Java Programmieren",2018,"Joshua Bloch")); + alleMediums.add(new Buch("B00","Effektives C++ Programmieren",2012,"XY Müller")); + alleMediums.add(new Brettspiel("BG001","Die Siedler von Catan",2012,"XY Müller")); } diff --git a/Bibliotheksverwaltungssystem/src/domain/JTests/AusleihenJTest.java b/Bibliotheksverwaltungssystem/src/domain/JTests/AusleihenJTest.java index b47c5df..8ad1e97 100644 --- a/Bibliotheksverwaltungssystem/src/domain/JTests/AusleihenJTest.java +++ b/Bibliotheksverwaltungssystem/src/domain/JTests/AusleihenJTest.java @@ -26,6 +26,8 @@ class AusleihenJTest { bib.userRegistrieren("obai", "student", 15, "nein"); bib.userAnmdelden(1000); bib.mediumAusleihen(1000,"B001" ); + bib.mediumAusleihen(1000,"B00" ); + bib.mediumAusleihen(1000,"BG001" ); } diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java index 6fbf072..96de664 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java @@ -2,9 +2,24 @@ package domain.Medium; public class Brettspiel extends Medium { + private String Verlag; - public Brettspiel(String eindeutigeKennung, String title, int erscheinungsjahr, String autor) { - super(eindeutigeKennung, title, erscheinungsjahr, autor); + public Brettspiel(String eindeutigeKennung, String title, int erscheinungsjahr, String Verlag) { + super(eindeutigeKennung, title, erscheinungsjahr); + this.Verlag = Verlag; + } + + public String getVerlag() { + return Verlag; + } + + public void setVerlag(String verlag) { + Verlag = verlag; + } + + @Override + public String toString() { + return "Brettspiel: " + super.toString() + " ,Verlag=" + Verlag; } } diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Buch.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Buch.java index 7bcc93e..3ec74e5 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Buch.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Buch.java @@ -4,15 +4,24 @@ import java.util.Date; public class Buch extends Medium { - private int anzahlVerlängerung; + private String autor; public Buch(String eindeutigeKennung, String title, int erscheinungsjahr, String autor) { - super(eindeutigeKennung, title, erscheinungsjahr, autor); + super(eindeutigeKennung, title, erscheinungsjahr); + this.autor = autor; + } + public String getAutor() { + return autor; + } + public void setAutor(String autor) { + this.autor = autor; + } + @Override + public String toString() { + return "Buch: " + super.toString() + " ,autor=" + autor; } - public int getAnzahlVerlängerung() { - return anzahlVerlängerung; - } - public void setAnzahlVerlängerung(int anzahlVerlängerung) { - this.anzahlVerlängerung = anzahlVerlängerung; - } + + + + } diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java index 801ac9a..832f2b9 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java @@ -3,9 +3,22 @@ package domain.Medium; import java.util.Date; public class Cd extends Medium { - - public Cd(String eindeutigeKennung, String title, int erscheinungsjahr, String autor) { - super(eindeutigeKennung, title, erscheinungsjahr, autor); + + private String Künstler; + public Cd(String eindeutigeKennung, String title, int erscheinungsjahr, String Künstler) { + super(eindeutigeKennung, title, erscheinungsjahr); + this.Künstler = Künstler; + } + public String getKünstler() { + return Künstler; + } + public void setKünstler(String künstler) { + Künstler = künstler; + } + + @Override + public String toString() { + return "CD: " + super.toString() + " ,Künstler=" + Künstler; } } diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Dvd.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Dvd.java index ff89ab3..c46a7ca 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Dvd.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Dvd.java @@ -2,9 +2,23 @@ package domain.Medium; public class Dvd extends Medium { - - public Dvd(String eindeutigeKennung, String title, int erscheinungsjahr, String autor) { - super(eindeutigeKennung, title, erscheinungsjahr, autor); + + private String regisseur; + public Dvd(String eindeutigeKennung, String title, int erscheinungsjahr, String regisseur) { + super(eindeutigeKennung, title, erscheinungsjahr); + this.regisseur = regisseur; + } + + public String getRegisseur() { + return regisseur; + } + public void setRegisseur(String regisseur) { + this.regisseur = regisseur; + } + + @Override + public String toString() { + return "DVD: " + super.toString() + " ,Regisseur=" + regisseur; } } diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Medium.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Medium.java index 4f01efc..76fc9aa 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Medium.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Medium.java @@ -7,16 +7,12 @@ public abstract class Medium { private String eindeutigeKennung; private String title; private int erscheinungsjahr; - private String autor; - private int anzahlWochen; - public Medium(String eindeutigeKennung, String title, int erscheinungsjahr, String autor) { + public Medium(String eindeutigeKennung, String title, int erscheinungsjahr) { super(); this.eindeutigeKennung = eindeutigeKennung; this.title = title; this.erscheinungsjahr = erscheinungsjahr; - this.autor = autor; - this.anzahlWochen = 0; } public String getKennungNummer() { @@ -43,26 +39,11 @@ public abstract class Medium { this.erscheinungsjahr = erscheinungsjahr; } - public String getAutor() { - return autor; - } - - public void setAutor(String autor) { - this.autor = autor; - } - - public int getAnzahlWochen() { - return anzahlWochen; - } - - public void setAnzahlWochen(int anzahlWochen) { - this.anzahlWochen = anzahlWochen; - } - + @Override public String toString() { - return "Medium [eindeutigeKennung=" + eindeutigeKennung + ", title=" + title + ", erscheinungsjahr=" - + erscheinungsjahr + ", autor=" + autor + ", anzahlWochen=" + anzahlWochen + "]"; + return "eindeutigeKennung=" + eindeutigeKennung + ", title=" + title + ", erscheinungsjahr=" + + erscheinungsjahr ; } diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Videospiel.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Videospiel.java index b701630..528c942 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Videospiel.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Videospiel.java @@ -4,16 +4,24 @@ import java.util.Date; public class Videospiel extends Medium { - private int anzahlVerlängerung; - public Videospiel(String kennungNummer, String title, int erscheinungsjahr, String autor) { - super(kennungNummer, title, erscheinungsjahr, autor); + private String plattform; + + public Videospiel(String kennungNummer, String title, int erscheinungsjahr, String plattform) { + super(kennungNummer, title, erscheinungsjahr); + this.plattform = plattform; + } + + public String getPlattform() { + return plattform; + } + + public void setPlattform(String plattform) { + this.plattform = plattform; } - public int getAnzahlVerlängerung() { - return anzahlVerlängerung; - } - public void setAnzahlVerlängerung(int anzahlVerlängerung) { - this.anzahlVerlängerung = anzahlVerlängerung; + @Override + public String toString() { + return "Videospiel: " + super.toString() + " ,Plattform=" + plattform; } } diff --git a/Bibliotheksverwaltungssystem/src/tui/Tui.java b/Bibliotheksverwaltungssystem/src/tui/Tui.java index 7ceb8da..161c849 100644 --- a/Bibliotheksverwaltungssystem/src/tui/Tui.java +++ b/Bibliotheksverwaltungssystem/src/tui/Tui.java @@ -3,8 +3,10 @@ package tui; import java.util.Scanner; import domain.BibSystem; +import domain.ExceptionsKlassen.BenutzerNichtAngemeldetException; import domain.ExceptionsKlassen.BenutzerNichtGefundenException; import domain.ExceptionsKlassen.FalscheEingabeException; +import domain.ExceptionsKlassen.MediumNichtGefundenException; public class Tui { private BibSystem fassade; @@ -23,8 +25,8 @@ public class Tui { while(programmIstAktiv) { System.out.println("1.Registrieren"); System.out.println("2.Anmelden"); - System.out.println("3.Medien Durchsuchen"); - System.out.println("4.Ausleihen eines Gegenstandes"); + System.out.println("4.Medien Durchsuchen"); + System.out.println("3.Ausleihen eines Gegenstandes"); System.out.println("5.Rückgabe eines Gegenstandes"); System.out.println("6.Ausgeliehene Gegenstände, Fälligkeitsdaten und aufgelaufene Gebühren anzeigen"); System.out.println("7.Verlängern der Leihfrist"); @@ -41,11 +43,46 @@ public class Tui { case "2": anmeldenProzess(); break; + + case "3": + mediumDurchsuchenProzess(); + break; + + case "4": + mediumAusleihenProzess(); + break; } } } + private void mediumAusleihenProzess(){ + int kartennummer; + String eindutigeKennung; + boolean mediumAusleihenProzess = true; + + System.out.println("Geben Sie bitte Ihre kartennummer"); + System.out.print(">"); + kartennummer = eingabe.nextInt(); + while(mediumAusleihenProzess) { + System.out.println("Geben Sie bitte die eindutige Kennung des Mediums"); + System.out.print(">"); + eindutigeKennung = eingabe.nextLine(); + + try { + fassade.mediumAusleihen(kartennummer, eindutigeKennung); + + } catch (BenutzerNichtAngemeldetException | BenutzerNichtGefundenException | MediumNichtGefundenException e) { + System.out.println(e.getMessage()); + } + } + + } + + + private void mediumDurchsuchenProzess() { + + } private void anmeldenProzess() { int kartennummer;