Initial commit of project.
commit
e48803b408
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-14">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="module" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" path="src"/>
|
||||||
|
<classpathentry kind="output" path="bin"/>
|
||||||
|
</classpath>
|
|
@ -0,0 +1 @@
|
||||||
|
/bin/
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>Bibliothek</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
|
@ -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
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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<Integer, Buch> buecher = new HashMap<>();
|
||||||
|
private HashMap<Integer, Student> studenten = new HashMap<>();
|
||||||
|
|
||||||
|
public Bibliothek(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Collection<Buch> 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<Student> 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.";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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 + "]";
|
||||||
|
}
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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<Buch> 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<Buch> getAusgelieheneBuecher() {
|
||||||
|
return this.buecher;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return super.toString() + " matrikelnummer: " + matrikelnummer;
|
||||||
|
}
|
||||||
|
}
|
|
@ -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<Student> 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<Buch> 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue