commit e48803b40809eb3327dce5a904831a3d4488a9e9 Author: cansu.tns Date: Fri Oct 21 13:10:15 2022 +0200 Initial commit of project. diff --git a/Bibliothek/.classpath b/Bibliothek/.classpath new file mode 100644 index 0000000..1cd9d95 --- /dev/null +++ b/Bibliothek/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Bibliothek/.gitignore b/Bibliothek/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/Bibliothek/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Bibliothek/.project b/Bibliothek/.project new file mode 100644 index 0000000..20e912a --- /dev/null +++ b/Bibliothek/.project @@ -0,0 +1,17 @@ + + + Bibliothek + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Bibliothek/.settings/org.eclipse.jdt.core.prefs b/Bibliothek/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..910a770 --- /dev/null +++ b/Bibliothek/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=14 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=14 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=14 diff --git a/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/Main.java b/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/Main.java new file mode 100644 index 0000000..3d5af5a --- /dev/null +++ b/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/Main.java @@ -0,0 +1,24 @@ +package de.hs_mannheim.informatik.bibliothek; + +import de.hs_mannheim.informatik.bibliothek.domain.Buch; +import de.hs_mannheim.informatik.bibliothek.facade.Bibliotheksystem; +import de.hs_mannheim.informatik.bibliothek.ui.UI; + +public class Main { + + public static void main(String[] args) { + Bibliotheksystem bs = new Bibliotheksystem("Goethe-Universität Frankfurt"); + Buch b1 = new Buch("Artificial Intelligence: Learning automation skills with Python", + "Chris Baker", 2019 , 2 ); + Buch b2 = new Buch("PHP und MySQL: für Einsteiger", "Michael Bonacina", 2018 , 1); + Buch b3 = new Buch("Einführung in die Web Security", " Andreas Happe", 2021 , 2); + Buch b4 = new Buch("Hacking & IT-Security für Einsteiger: Der leichte Weg zum IT-Security-Experten", + "Max Engelhardt", 2020 ,3); + bs.buchHinzufuegen(b1); + bs.buchHinzufuegen(b2); + bs.buchHinzufuegen(b3); + bs.buchHinzufuegen(b4); + UI ui = new UI(bs); + } + +} diff --git a/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/domain/Bibliothek.java b/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/domain/Bibliothek.java new file mode 100644 index 0000000..5fbb0e0 --- /dev/null +++ b/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/domain/Bibliothek.java @@ -0,0 +1,51 @@ +package de.hs_mannheim.informatik.bibliothek.domain; + +import java.util.Collection; +import java.util.HashMap; + +public class Bibliothek { + + private String name; + private HashMap buecher = new HashMap<>(); + private HashMap studenten = new HashMap<>(); + + public Bibliothek(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public Collection getBuecher() { + return buecher.values(); + } + + public void buchHinzufuegen(Buch buch) { + this.buecher.put(buch.getId(), buch); + } + + public String buchAusleihen(Student student, int buchId) { + Buch buch = this.buecher.get(buchId); + String msg = ""; + if (buch.getExemplar() - 1 < 0) { + msg = "Das Buch " + "\"" + buch.getTitel() + "\"" + " ist nicht verfügbar"; + } else { + buch.reduzierExemplar(); + student.buchAusleihen(buch); + msg = "Das Buch " + "\"" + buch.getTitel() + "\"" + " wurde erfolgreich ausgeliehen"; + } + return msg; + } + + public Collection getStudenten() { + return studenten.values(); + } + + public String studentRegristrieren(Student student) { + this.studenten.put(student.getMatrikelnummer(), student); + return "Student mit der Matrikelnummer " + student.getMatrikelnummer() + " wurde regristriert." + + " Sie können nun Bücher ausleihen."; + } + +} diff --git a/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/domain/Buch.java b/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/domain/Buch.java new file mode 100644 index 0000000..75c37dd --- /dev/null +++ b/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/domain/Buch.java @@ -0,0 +1,43 @@ +package de.hs_mannheim.informatik.bibliothek.domain; + +public class Buch { + private static int idZaehler = 1; + private String titel; + private int id; + private String autor; + private int erscheinungsJahr; + private int exemplar; + + public Buch(String titel, String autor, int erscheinungsJahr, int exemplare) { + this.titel = titel; + this.autor = autor; + this.erscheinungsJahr = erscheinungsJahr; + this.exemplar = exemplare; + this.id = idZaehler++; + } + + public int getExemplar() { + return this.exemplar; + } + + public void reduzierExemplar() { + this.exemplar--; + } + + public void erhoeheExemplar() { + this.exemplar++; + } + + public int getId() { + return this.id; + } + + public String getTitel() { + return this.titel; + } + + @Override + public String toString() { + return titel + " von " + autor + " [" + erscheinungsJahr + "]"; + } +} diff --git a/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/domain/Person.java b/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/domain/Person.java new file mode 100644 index 0000000..ec2dcc1 --- /dev/null +++ b/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/domain/Person.java @@ -0,0 +1,48 @@ +package de.hs_mannheim.informatik.bibliothek.domain; + +public class Person { + + private String vorname; + private String nachname; + private int geburtsjahr; + + public Person(String vorname, String nachname, int geburtsjahr) { + this.vorname = vorname; + this.nachname = nachname; + this.geburtsjahr = geburtsjahr; + } + + public String getVorname() { + return vorname; + } + + public void setVorname(String vorname) { + this.vorname = vorname; + } + + public String getNachname() { + return nachname; + } + + public void setNachname(String nachname) { + this.nachname = nachname; + } + + public int getGeburtsjahr() { + return geburtsjahr; + } + + public void setGeburtsjahr(int geburtsjahr) { + this.geburtsjahr = geburtsjahr; + } + + public String generiereAccountNamen() { + return this.vorname; + } + + @Override + public String toString() { + return "name = " + vorname + " nachname= " + nachname + "\ngeburtsjahr = " + geburtsjahr; + } + +} diff --git a/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/domain/Student.java b/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/domain/Student.java new file mode 100644 index 0000000..b6d1e78 --- /dev/null +++ b/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/domain/Student.java @@ -0,0 +1,32 @@ +package de.hs_mannheim.informatik.bibliothek.domain; + +import java.util.ArrayList; + +public class Student extends Person { + private static int zaehler = 2000; + private int matrikelnummer; + private ArrayList buecher; + + public Student(String vorname, String nachname, int geburtsjahr) { + super(vorname, nachname, geburtsjahr); + this.matrikelnummer = zaehler++; + this.buecher = new ArrayList<>(); + } + + public void buchAusleihen(Buch buch) { + this.buecher.add(buch); + } + + public int getMatrikelnummer() { + return this.matrikelnummer; + } + + public ArrayList getAusgelieheneBuecher() { + return this.buecher; + } + + @Override + public String toString() { + return super.toString() + " matrikelnummer: " + matrikelnummer; + } +} diff --git a/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/facade/Bibliotheksystem.java b/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/facade/Bibliotheksystem.java new file mode 100644 index 0000000..bdb8eb3 --- /dev/null +++ b/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/facade/Bibliotheksystem.java @@ -0,0 +1,59 @@ +package de.hs_mannheim.informatik.bibliothek.facade; + +import java.util.Collection; + +import de.hs_mannheim.informatik.bibliothek.domain.Buch; +import de.hs_mannheim.informatik.bibliothek.domain.Bibliothek; +import de.hs_mannheim.informatik.bibliothek.domain.Student; + +public class Bibliotheksystem { + + private Bibliothek bib; + + public Bibliotheksystem(String name) { + this.bib = new Bibliothek(name); + } + + public void buchHinzufuegen(Buch buch) { + this.bib.buchHinzufuegen(buch); + } + + public String buchAusleihen(int matrikelnummer, int buchId) { + Collection studenten = this.bib.getStudenten(); + Student student = null; + String msg = ""; + for (Student s : studenten) { + if (s.getMatrikelnummer() == matrikelnummer) { + student = s; + msg = this.bib.buchAusleihen(student, buchId); + } + } + if (student != null) { + return msg; + } else + return "Die Matrikelnummer existiert nicht. Bitte regristrieren Sie sich zuerst."; + } + + public String[] getBuecher() { + Collection buecher = this.bib.getBuecher(); + int size = this.bib.getBuecher().size(); + String[] buecherListe = new String[size]; + + int i = 0; + for (Buch buch : buecher) { + buecherListe[i++] = buch.getId() + ") " + buch.toString(); + } + return buecherListe; + } + + public String studentRegristrieren(String vorname, String nachname, int geburtsjahr) { + Student s = new Student(vorname, nachname, geburtsjahr); + String msg = this.bib.studentRegristrieren(s); + return msg; + } + + public String getName() { + return bib.getName(); + } + +} diff --git a/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/ui/UI.java b/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/ui/UI.java new file mode 100644 index 0000000..529fffd --- /dev/null +++ b/Bibliothek/src/de/hs_mannheim/informatik/bibliothek/ui/UI.java @@ -0,0 +1,72 @@ +package de.hs_mannheim.informatik.bibliothek.ui; + +import java.util.Scanner; + +import de.hs_mannheim.informatik.bibliothek.facade.Bibliotheksystem; + +public class UI { + + private Bibliotheksystem bs; + Scanner sc = new Scanner(System.in); + + public UI(Bibliotheksystem bs) { + this.bs = bs; + menue(); + } + + private void menue() { + System.out.println("Willkommen in der Bibliothek der " + bs.getName()); + + mainloop: while (true) { + System.out.println(); + System.out.println("--------"); + System.out.println("Hauptmenue"); + System.out.println("1 -> Alle verfügbaren Bücher anzeigen"); + System.out.println("2 -> In der Bibliothek regristrieren"); + System.out.println("3 -> Buch ausleihen"); + System.out.println("9 -> Beenden"); + System.out.println(); + + System.out.print("> "); + int input = Integer.parseInt(sc.nextLine()); + System.out.println(); + + switch (input) { + case 1:buecherAnzeigen();break; + case 2:anmelden();break; + case 3:buchAusleihen();break; + case 9:break mainloop; + } + } + + } + + private void buchAusleihen() { + System.out.println("Geben Sie Ihre Matrikelnummer ein: "); + int matrikelnummer = Integer.parseInt(sc.nextLine()); + System.out.println("Wählen Sie für die Ausleihe ein Buch mit der entsprechenden Nummer aus: "); + buecherAnzeigen(); + int buchId = Integer.parseInt(sc.nextLine()); + String msg = bs.buchAusleihen(matrikelnummer, buchId); + System.out.println(msg); + } + + private void anmelden() { + System.out.println("Vornamen eingeben: "); + String vorname = sc.nextLine(); + System.out.println("Nachnamen eingeben: "); + String nachname = sc.nextLine(); + System.out.println("Geburtsjahr eingeben: "); + int geburtsjahr = Integer.parseInt(sc.nextLine()); + String msg = bs.studentRegristrieren(vorname, nachname, geburtsjahr); + System.out.println(msg); + } + + private void buecherAnzeigen() { + String buecher[] = bs.getBuecher(); + for (String buch : buecher) { + System.out.println(buch); + } + } + +}