weitere Verbesserungen, vorgehen.txt hinzugefügt
parent
beae8953c7
commit
25f5896a5f
|
@ -27,7 +27,7 @@ public class UI {
|
||||||
System.out.println("5. Zeige ausgeliehene Medien und Gebühren");
|
System.out.println("5. Zeige ausgeliehene Medien und Gebühren");
|
||||||
System.out.println("6. Verlängern der Leihfrist");
|
System.out.println("6. Verlängern der Leihfrist");
|
||||||
System.out.println("7. Admin-Login (Überfällige Gebühren verbuchen)");
|
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.println("0. Beenden\n");
|
||||||
System.out.print("Bitte wählen Sie eine Option: ");
|
System.out.print("Bitte wählen Sie eine Option: ");
|
||||||
int auswahl = scanner.nextInt();
|
int auswahl = scanner.nextInt();
|
||||||
|
|
|
@ -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),
|
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:
|
Java Code:
|
||||||
// Durchsuchen der Medien nach einem Titel (Teilstring) und Filterung nach Eigenschaften
|
// Durchsuchen der Medien nach einem Titel (Teilstring) und Filterung nach Eigenschaften
|
||||||
|
|
|
@ -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
|
|
@ -96,7 +96,7 @@ public abstract class Medium implements Ausleihbar{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "ID: " + ID + ", Titel: " + titel + ", Autor: " + autor + ", Erscheinungsjahr: " + erscheinungsjahr;
|
return "ID: " + ID + ", Titel: " + titel + ", Autor: " + autor + ", Erscheinungsjahr: " + erscheinungsjahr + ", Ausgeliehen: " + ausgeliehen;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -182,6 +182,7 @@ public class BibliothekSystem {
|
||||||
if (medium.istVerlaengerbar()) {
|
if (medium.istVerlaengerbar()) {
|
||||||
if (medium.istVerlaengerbar()) {
|
if (medium.istVerlaengerbar()) {
|
||||||
medium.verlaengerungen--;
|
medium.verlaengerungen--;
|
||||||
|
//setAktuellesDatum(aktuellesDatum); //hier Änderung gemacht, wohin stand setzeAktuellesDatumZurueck
|
||||||
setzeAktuellesDatumZurueck();
|
setzeAktuellesDatumZurueck();
|
||||||
medium.setRueckgabedatum(medium.rechneRueckgabedatum(aktuellesDatum));
|
medium.setRueckgabedatum(medium.rechneRueckgabedatum(aktuellesDatum));
|
||||||
} else{
|
} else{
|
||||||
|
@ -195,7 +196,7 @@ public class BibliothekSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} 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.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue