diff --git a/LibrarySystem/UI/UI.java b/LibrarySystem/UI/UI.java index f714070..6e99fd2 100644 --- a/LibrarySystem/UI/UI.java +++ b/LibrarySystem/UI/UI.java @@ -27,7 +27,7 @@ public class UI { System.out.println("5. Zeige ausgeliehene Medien und Gebühren"); System.out.println("6. Verlängern der Leihfrist"); System.out.println("7. Admin-Login (Überfällige Gebühren verbuchen)"); - System.out.println("8. Systemdatum manuell ändern."); + System.out.println("8. Systemdatum manuell ändern"); System.out.println("0. Beenden\n"); System.out.print("Bitte wählen Sie eine Option: "); int auswahl = scanner.nextInt(); diff --git a/LibrarySystem/andereDateien/KIchatGPT/prompt8.txt b/LibrarySystem/andereDateien/KIchatGPT/prompt8.txt index e76a10a..5ab5fe2 100644 --- a/LibrarySystem/andereDateien/KIchatGPT/prompt8.txt +++ b/LibrarySystem/andereDateien/KIchatGPT/prompt8.txt @@ -1,7 +1,7 @@ -ich: erstelle eine Methode, die das Medienkatalog nach Titel, medienart und ob es ausgeliehen ist durchsucht +ich: erstelle eine Methode, die der Medienkatalog nach Titel, medienart und ob es ausgeliehen ist durchsucht AI: Hier ist die Methode durchsuchenMedien(String titelTeil, String medienart, Boolean istAusgeliehen), -die das Medienkatalog nach Titel, medienart und ob es ausgeliehen ist durchsucht +die der Medienkatalog nach Titel, medienart und ob es ausgeliehen ist durchsucht Java Code: // Durchsuchen der Medien nach einem Titel (Teilstring) und Filterung nach Eigenschaften diff --git a/LibrarySystem/andereDateien/notizen/vorgehen.txt b/LibrarySystem/andereDateien/notizen/vorgehen.txt new file mode 100644 index 0000000..8c0e5f3 --- /dev/null +++ b/LibrarySystem/andereDateien/notizen/vorgehen.txt @@ -0,0 +1,60 @@ +Wie soll die Interaktion zwischen Benutzer und System aussehen? + +1. Benutzer darf nur mit der UI kommunizieren; +2. Die UI darf nur das Bibliothekssystem (facade) sehen, vielleicht auch die Benutzer-Klasse, um sinnvoll eine Liste +der Benutzerverwalten zu können. +3. In der Domain sollen alle anderen Klassen sein, also Medium mit ihren Subklassen und Benutzer mit ihren Subklassen. +4. Die Klasse Bibliothekssystem darf die Klassen der Domain sehen und auf diese zugreifen können -> das kann man mit +'import' realisieren. + +Iterationen: + +1. Anmelden +Benutzer wählt 1 für Anmelden in die UI -> System fragt nach Kartennummer -> Eingabe durch Benutzer -> bei einer richtige +Eingabe (bzw. Benutzer befindet sich in die Benutzerliste) gilt der Benutzer als angemeldet und darf weiter machen + +2. Medien durchsuchen +Benutzer wählt dafür 2 in der UI -> System fragt nach Titel und Medienart -> Eingabe durch Benutzer -> das System bildet +ein Stream und durchsucht die Liste für Medien nach den passenden Kriterien -> bei einer richtige Eingabe durch den +Benutzer wird das gesuchte Medium zurückgegeben mit ID, Titel, Autor, Erscheinungsjahr und Status der Ausleihe + +3. Ausleihe eines Mediums +Benutzer wählt dafür 3 in der UI -> System fragt nach Kartennummer (für die Anmeldung) -> falls Benutzer existiert wird +nach ID des Mediums gefragt bzw. Benutzer muss diese eingeben -> stimmen die beiden Nummern, so wird das Medium in der +Liste mit Ausleihen des Benutzers hinzugefügt und das Rückgabedatum wird berechnet -> Benutzer bekommt die Benachrichtigung, +ob die Ausleihe erfolgreich war, zusammen mit dem Rückgabedatum + +4. Rückgabe eines Mediums +Benutzer wählt dafür 4 in der UI -> System fragt nur nach Medium ID (eine Eingabe der Kartennummer ist nicht notwendig) -> +System sucht nach dem Medium mit der ergebenen Medium ID, und nennt der Benutzer erstmal nur Ausleiher, weiterhin unbekannt +ist -> System setzt den Benutzer gleich dem Ausleiher, falls in der Liste der Benutzer einen Benutzer gibt, der dieses +Medium in seiner Liste der Ausleihen drin hat -> Falls das richtig ist, entfernt das System das Medium aus der Liste der +Ausleihen des Benutzers -> System macht dann mit der Berechnung der Gebühren weiter, falls das aktuelle Datum über das +Rückgabedatum liegt (overdue) -> Benutzer bekommt die Ausgabe über die aktuelle Gebühren und eine Liste mit Ausleihen, +die der Benutzer noch hat + +5. Zeige ausgeliehene Medien und Gebühren +Benutzer wählt dafür 5 in der UI -> System fragt nach Kartennummer (für die Anmeldung) -> falls Benutzer existiert schaut +das System nach seinen offenen Gebühren -> System gibt die offenen Gebühren, sowie die Liste mit der Ausleihen des +Benutzers an + +6. Verlängern der Leihfrist +Benutzer wählt dafür 6 in der UI -> System fragt nach Kartennummer (für die Anmeldung) und Medium ID für das Medium, +das verlängert sein sollte -> Eingabe durch den Benutzer -> Falls Benutzer existiert und Medium ist von ihm ausgeliehen, +schaut das System, ob dieses Medium überhaupt verlängerbar ist -> falls ja, so werden die Verlängerungen um 1 niedriger +und das Rückgabedatum wird zurückgesetzt -> Benutzer bekommt die Ausgabe mit der neuen Leihfrist und wie viele weitere +Verlängerungen möglich sind für dieses eine Medium + +7. Admin-Login (Überfällige Gebühren verbuchen) +Benutzer wählt dafür 7 in der UI -> System fragt nach Kartennummer (für die Anmeldung) -> falls die Kartennummer eine A +am Anfang hat, meldet das System den Benutzer als Admin an -> wenn das erfolgreich war, gibt der Admin die Kartennummer +des Benutzers an, der seine Gebühren bezahlen will -> falls die Kartennummer richtig ist und der Benutzer hat offenen +Gebühren, so werden diese passend von Benutzer bezahlt -> Admin setzt das Gebührenkonto auf 0 zurück und der Benutzer +hat keine offene Gebühren mehr + +8.Systemdatum manuell ändern (zum Testzwecken) +Benutzer wählt dafür 8 in der UI -> Benutzer gibt das gewünschte Datum in YYYY-MM-DD an -> System ändert das aktuelle +Datum des Systems auf das neu eingebene Datum, womit er ab diesen Punkt weiter macht + +0. Beenden +Benutzer wählt dafür 8 in der UI -> Programm wird beendet diff --git a/LibrarySystem/domain/medien/Medium.java b/LibrarySystem/domain/medien/Medium.java index 490093a..14c2dba 100644 --- a/LibrarySystem/domain/medien/Medium.java +++ b/LibrarySystem/domain/medien/Medium.java @@ -96,7 +96,7 @@ public abstract class Medium implements Ausleihbar{ @Override public String toString() { - return "ID: " + ID + ", Titel: " + titel + ", Autor: " + autor + ", Erscheinungsjahr: " + erscheinungsjahr; + return "ID: " + ID + ", Titel: " + titel + ", Autor: " + autor + ", Erscheinungsjahr: " + erscheinungsjahr + ", Ausgeliehen: " + ausgeliehen; } } diff --git a/LibrarySystem/facade/BibliothekSystem.java b/LibrarySystem/facade/BibliothekSystem.java index 2dad986..c6752d9 100644 --- a/LibrarySystem/facade/BibliothekSystem.java +++ b/LibrarySystem/facade/BibliothekSystem.java @@ -182,6 +182,7 @@ public class BibliothekSystem { if (medium.istVerlaengerbar()) { if (medium.istVerlaengerbar()) { medium.verlaengerungen--; + //setAktuellesDatum(aktuellesDatum); //hier Änderung gemacht, wohin stand setzeAktuellesDatumZurueck setzeAktuellesDatumZurueck(); medium.setRueckgabedatum(medium.rechneRueckgabedatum(aktuellesDatum)); } else{ @@ -195,7 +196,7 @@ public class BibliothekSystem { } } else { - System.out.println("Verlängerung nicht möglich, da Kartennummer flasch ist oder Medium existiert nicht."); + System.out.println("Verlängerung nicht möglich, da Kartennummer falsch ist oder Medium existiert nicht."); } }