Browse Source

Merge commit 'c7b75e1ef49952238f1d78d81aa1c6799c3bb692' into HEAD

Jenkins Automation Server 6 months ago
parent
commit
8c483777aa

+ 26 - 0
src/main/java/Gebaeude.java

@@ -0,0 +1,26 @@
+public class Gebaeude {
+    private String name;
+    private String adresse;
+    private static int raeume;
+
+    public Gebaeude(String name, String adresse) {
+        this.name = name;
+        this.adresse = adresse;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getAdresse() {
+        return adresse;
+    }
+
+    public static int getRaeume() {
+        return raeume;
+    }
+
+    public static void addRaum() {
+        Gebaeude.raeume ++;
+    }
+}

+ 150 - 17
src/main/java/Hochschule.java

@@ -2,20 +2,33 @@ import java.util.List;
 
 public class Hochschule {
 
+    private String name;
     private List<Professor> professoren;
     private List<Student> studenten;
-    private int ausgaben;
-    private int einnahmen;
-    private int bilanz;
+    private static double ausgaben;
+    private static double einnahmen;
 
-    public Hochschule(List<Professor> professoren, List<Student> studenten) {
+    /**
+     * Erstellen einer Hochschule.
+     * @param name Name der Hochschule.
+     * @param professoren Liste der beschaeftigen Professoren.
+     * @param studenten Liste der eingeschiebenen Studenten.
+     */
+    public Hochschule(String name, List<Professor> professoren, List<Student> studenten) {
+        this.name = name;
         this.professoren = professoren;
         this.studenten = studenten;
         einnahmen = 0;
         ausgaben = 0;
-        bilanz = einnahmen - ausgaben;
     }
 
+    /**
+     *
+     * @return Name der Hochschule als String.
+     */
+    public String getName() {
+        return name;
+    }
 
     /**
      *
@@ -29,8 +42,24 @@ public class Hochschule {
      * Hinzufügen eines Professors zu Hochschule.
      * @param professor Hinzugefuegter Professor.
      */
-    public void addProfessoren(Professor professor) {
+    public boolean addProfessoren(Professor professor) {
+        for (Professor i: professoren) {
+            if (i == professor) {
+                System.out.println("Dieser Professor arbeitet bereits hier!");
+                return false;
+            }
+        }
         professoren.add(professor);
+        return true;
+    }
+
+    /**
+     * Entlassen eines Professors mit Abfindung.
+     * @param professor
+     */
+    public void removeProfessor(Professor professor) {
+        updateAusgaben((professor.getGehalt()*professor.getDienstjahre()*12)/5);
+        professoren.remove(professor);
     }
 
     /**
@@ -45,48 +74,152 @@ public class Hochschule {
      * Hinzufügen eines Studenten zu Hochschule.
      * @param student Hinzugefuegter Student.
      */
-    public void addStudenten(Student student) {
+    public boolean addStudent(Student student) {
+        for (Student k: studenten) {
+            if (k == student) {
+                System.out.println("Dieser Student ist bereits eingeschrieben!");
+                return false;
+            }
+        }
+
         studenten.add(student);
+        return true;
+    }
+
+    /**
+     * Exmatrikulieren
+     * @param student
+     */
+    public boolean removeStudent(Student student) {
+        if(student.getSemestergebuehren() == 0) {
+            studenten.remove(student);
+            return true;
+        } else {
+            System.out.println("Bitte erst die Semestergebuehren in Höhe von " +
+                    student.getSemestergebuehren() + " Euro bezahlen!");
+            return false;
+        }
     }
 
     /**
      *
      * @return Ausgaben der Hochschule in Euro.
      */
-    public int getAusgaben() {
+    public double getAusgaben() {
         return ausgaben;
     }
 
     /**
      * Hinzufuegen neuer Ausgaben.
-     * @param ausgaben ausgegebener Betrag in Euro.
+     * @param betrag ausgegebener Betrag in Euro.
      */
-    public void updateAusgaben(int ausgaben) {
-        this.ausgaben += ausgaben;
+    public static void updateAusgaben(double betrag) {
+        if(betrag > 0) {
+            ausgaben += betrag;
+        } else
+            System.out.println("Nur Betraege ueber 0 erlaubt");
     }
 
     /**
      *
      * @return Einnahmen der Hochschule.
      */
-    public int getEinnahmen() {
+    public double getEinnahmen() {
         return einnahmen;
     }
 
     /**
      * Hinzufuegen neuer Einnahmen.
-     * @param einnahmen Eingenommener Betrag in Euro.
+     * @param betrag Eingenommener Betrag in Euro.
      */
-    public void updateEinnahmen(int einnahmen) {
-        this.einnahmen += einnahmen;
+    public static void updateEinnahmen(double betrag) {
+        if(betrag > 0) {
+            einnahmen += betrag;
+        } else
+            System.out.println("Nur Betraege ueber 0 erlaubt");
     }
 
     /**
      *
      * @return Bilanz der Hochschule.
      */
-    public int getBilanz() {
-        return bilanz;
+    public double getBilanz() {
+        return einnahmen - ausgaben;
+    }
+
+    /**
+     * Ausgabe alle Studenten mit nicht bezahlten Gebuehren auf Konsole.
+     */
+    public void getStudentenmitSchulden() {
+        for(Student i: studenten) {
+            if(i.getSemestergebuehren() != 0){
+                System.out.println(i.getMatrikel_nr() + " " + i.getName());
+            }
+        }
+    }
+
+    /**
+     * Funktion fuer das neue Semeseter, setzt alle Studenten die ihre Gebuehren gezahlt haben ein Semester hoch
+     * und setzt neue Semestergebuehren. Studenten die nicht bezahlt haben bekommen Strafzahlung
+     */
+    public void neuesSemester() {
+        for(Student i: studenten) {
+            if(i.getSemestergebuehren() == 0) {
+                i.addGebuehren(298);
+                i.addSemester();
+            } else
+                i.addGebuehren(298);;
+        }
+    }
+
+    /**
+     * Funktion fuer neuen Monat die Gehaelter der Professoren abzieht.
+     */
+    public void neuerMonat() {
+        for(Professor i: professoren) {
+            updateAusgaben(i.getGehalt());
+        }
+    }
+
+    /**
+     * Funktion fuer das neue Jahr, fuegt Urlaubstage und neues Dienstjahr hinzu.
+     */
+    public void neuesJahr() {
+        for(Professor i: professoren) {
+            i.addDienstjahr();
+            i.addUrlaubstage(15);
+        }
+    }
+
+    /**
+     * Prognose der Bilanz über das Jahr gerechnet.
+     * @return Betrag in Euro.
+     */
+    public double jahresBilanzPrognose() {
+        double i = 0;
+        double j = 0;
+        for(Professor k: professoren)
+            i += k.getGehalt() * 12;
+
+        for(Student k: studenten)
+            j += k.getSemestergebuehren() * 2;
+
+        return j - i;
+    }
+
+    /**
+     * Antrag auf Urlaub, nur mit genuegend Urlaubstagen.
+     * @param professor Ausgewaehlter Professor.
+     * @param tage Anzahl an Tagen
+     */
+    public boolean urlaubsantrag(Professor professor, int tage) {
+        if(professor.getUrlaubstage() >= tage) {
+            professor.remUrlaubstage(tage);
+            return true;
+        } else {
+            System.out.println("Sie haben nichtmehr genug Urlaubstage uebrig! ---Abgelehnt---");
+            return false;
+        }
     }
 }
 

+ 4 - 5
src/main/java/Kurs.java

@@ -4,7 +4,7 @@ public class Kurs {
     private int kurs_Id;
     private String kursname;
     private Professor professor;
-    private List<Student> studenten;
+    private static List<Student> studenten;
     private int max_teilnehmer;
     private int teilnehmer;
 
@@ -15,15 +15,14 @@ public class Kurs {
      * @param professor Leitender Professor.
      * @param studenten Teilnehmende Studenten.
      * @param max_teilnehmer Maximal zulaessige Teilnehmer.
-     * @param teilnehmer Aktuelle Anzahl an Teilnehmern.
      */
-    public Kurs(int kurs_Id, String kursname, Professor professor, List<Student> studenten, int max_teilnehmer, int teilnehmer) {
+    public Kurs(int kurs_Id, String kursname, Professor professor, List<Student> studenten, int max_teilnehmer) {
         this.kurs_Id = kurs_Id;
         this.kursname = kursname;
         this.professor = professor;
         this.studenten = studenten;
         this.max_teilnehmer = max_teilnehmer;
-        this.teilnehmer = studenten.size();
+        teilnehmer = 0;
     }
 
     /**
@@ -62,7 +61,7 @@ public class Kurs {
      *
      * @return Teilnehmerliste
      */
-    public List<Student> getStudenten() {
+    public static List<Student> getStudenten() {
         return studenten;
     }
 

+ 42 - 1
src/main/java/Professor.java

@@ -3,6 +3,8 @@ public class Professor {
     private String name;
     private double gehalt;
     private String fachgebiet;
+    private int dienstjahre;
+    private int urlaubstage;
 
     /**
      *
@@ -17,6 +19,8 @@ public class Professor {
         this.name = name;
         this.gehalt = gehalt;
         this.fachgebiet = fachgebiet;
+        dienstjahre = 0;
+        urlaubstage = 13;
     }
 
     /**
@@ -61,7 +65,10 @@ public class Professor {
      */
 
     public void setGehalt(double gehalt) {
-        this.gehalt = gehalt;
+        if(gehalt > 0) {
+            this.gehalt = gehalt;
+        } else
+            System.out.println("Keine Gehaelter unter 1 zugelassen.");
     }
 
     /**
@@ -72,4 +79,38 @@ public class Professor {
     public void setFachgebiet(String fachgebiet) {
         this.fachgebiet = fachgebiet;
     }
+
+    /**
+     * @return Anzahl der Dienstjahre in int.
+     */
+    public int getDienstjahre() {
+        return dienstjahre;
+    }
+
+    /**
+     * Hinzufuegen eines neuen Dienstjahres
+     */
+    public void addDienstjahr() {
+        this.dienstjahre ++;
+    }
+
+    /**
+     * Ausgabe der verbleibenden Urlaubstage.
+     * @return Anzahl der Tage in int.
+     */
+    public int getUrlaubstage() {
+        return urlaubstage;
+    }
+
+    /**
+     * Entfehrnen von Urlaubstagen durch Urlaub.
+     * @param urlaubstage Anzahl an Tagen.
+     */
+    public void remUrlaubstage(int urlaubstage) {
+        this.urlaubstage -= urlaubstage;
+    }
+
+    public void addUrlaubstage(int urlaubstage) {
+        this.urlaubstage += urlaubstage;
+    }
 }

+ 15 - 10
src/main/java/Pruefung.java

@@ -1,19 +1,24 @@
 import java.util.List;
 
-public class Pruefung extends Kurs {
+public class Pruefung {
     private List<Student> angemeldet;
 
     /**
-     * @param kurs_Id        unique Id des Kurses.
-     * @param kursname       Name des Kurses.
-     * @param professor      Leitender Professor.
-     * @param studenten      Teilnehmende Studenten.
-     * @param max_teilnehmer Maximal zulaessige Teilnehmer.
-     * @param teilnehmer     Aktuelle Anzahl an Teilnehmern.
+     * @param angemeldet     Angemeldete Studenten.
      */
-    public Pruefung(int kurs_Id, String kursname, Professor professor, List<Student> studenten, int max_teilnehmer, int teilnehmer, List<Student> angemeldet) {
-        super(kurs_Id, kursname, professor, studenten, max_teilnehmer, teilnehmer);
+    public Pruefung(List<Student> angemeldet) {
         this.angemeldet = angemeldet;
     }
-    
+
+    public List<Student> getAngemeldet() {
+        return angemeldet;
+    }
+
+    public boolean addAngemeldet(Student student) {
+        if (Kurs.getStudenten().contains(student)) {
+            angemeldet.add(student);
+            return true;
+        } else
+            return false;
+    }
 }

+ 38 - 0
src/main/java/Raum.java

@@ -0,0 +1,38 @@
+public class Raum {
+    private int raumNr;
+    private int sitzplaetze;
+    private int beamer;
+    private int tafel;
+
+    public Raum(int raumNr, int sitzplaetze, int beamer, int tafel) {
+        this.raumNr = raumNr;
+        this.sitzplaetze = sitzplaetze;
+        this.beamer = beamer;
+        this.tafel = tafel;
+        Gebaeude.addRaum();
+    }
+
+    public int getRaumNr() {
+        return raumNr;
+    }
+
+    public int getSitzplaetze() {
+        return sitzplaetze;
+    }
+
+    public int getBeamer() {
+        return beamer;
+    }
+
+    public int getTafel() {
+        return tafel;
+    }
+
+    public void setBeamer(int beamer) {
+        this.beamer = beamer;
+    }
+
+    public void setTafel(int tafel) {
+        this.tafel = tafel;
+    }
+}

+ 20 - 6
src/main/java/Student.java

@@ -23,11 +23,10 @@ public class Student {
 
     /**
      * Aktualisieren des Semesters von Student.
-     * @param semester aktualisieren Semester.
      */
 
-    public void setSemester (int semester) {
-        this.semester = semester;
+    public void addSemester () {
+        this.semester ++;
     }
 
     /**
@@ -36,9 +35,24 @@ public class Student {
      * @param betrag neuer Gebuehren Betrag.
      */
 
-    public void updateGebuehren (double betrag) {
-        if (betrag <= this.semestergebuehren)
-        semestergebuehren -= betrag;
+    public Boolean updateGebuehren (double betrag) {
+        if (betrag <= this.semestergebuehren) {
+            semestergebuehren -= betrag;
+            Hochschule.updateEinnahmen(betrag);
+            return true;
+        } else {
+            System.out.println("Der Gezahlte Betrag uebersteigt die geforderte Summe um " + ((this.semestergebuehren -
+                    betrag) * -1) + " Euro. Bitte korrigieren Zahlung wurde nicht akzeptiert");
+            return false;
+        }
+    }
+
+    /**
+     * Hinzufuegen von Semestergebuehren.
+     * @param betrag Betrag in Euro.
+     */
+    public void addGebuehren(double betrag) {
+        semestergebuehren += betrag;
     }
 
     /**

+ 15 - 0
src/main/java/Waehrungsrechner.java

@@ -8,6 +8,11 @@ public class Waehrungsrechner {
         return wechselkursabgleich(zielkurs);
     }
 
+    /**
+     *
+     * @param waehrung Zielwaehrung.
+     * @return Aktueller wechselkurs 1 zu x.
+     */
     public double wechselkursabgleich(String waehrung) {
         if (waehrung.equals("FRANKEN")) {
             return Math.random() + 0.45;
@@ -19,9 +24,19 @@ public class Waehrungsrechner {
             return Math.random() + 0.3;
         }
 
+        System.out.println("Wahrung: "+ waehrung + " nicht gefunden.");
         return 0;
     }
 
+    /**
+     * @param betrag Betrag der umgetauscht werden soll.
+     * @param waehrung Zielwaehrung.
+     * @return Umgerechneter Betrag.
+     */
+    public double umtauschen(double betrag, String waehrung) {
+        return (betrag * wechselkursabgleich(waehrung));
+    }
+
 
 
 }

+ 175 - 0
src/test/java/Test_Hochschule.java

@@ -0,0 +1,175 @@
+import org.junit.Test;
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class Test_Hochschule {
+
+    List<Professor> prof = new ArrayList<Professor>();
+    List<Student> studenten = new ArrayList<Student>();
+    Hochschule hsfulda = new Hochschule("HS-Fulda", prof, studenten);
+    Student std1 = new Student(1, "Alex", 1, 200);
+    Professor prof1 = new Professor(1, "Max", 2000, "SDN");
+
+
+
+    @Test
+    public void testDerBilanzBerechnung() {
+
+        //Act
+        Hochschule.updateEinnahmen(400);
+        Hochschule.updateAusgaben(200);
+
+        //Assert
+        assert(hsfulda.getBilanz() == 200);
+    }
+
+    @Test
+    public void austretenNurOhneRestgebuehr() {
+
+        //Act
+        hsfulda.addStudent(std1);
+
+        //Asssert
+        assert(!hsfulda.removeStudent(std1));
+    }
+
+    @Test
+    public void ausgabenBerechnung() {
+
+        //Act
+        hsfulda.addProfessoren(prof1);
+        prof1.setGehalt(2500);
+        hsfulda.neuerMonat();
+
+        //Assert
+        assert(hsfulda.getAusgaben() == 2500);
+    }
+
+    @Test
+    public void semestergebuehrenInEinnahmenVerrechnen() {
+
+        //Act
+        hsfulda.addStudent(std1);
+        std1.updateGebuehren(200);
+
+        //Assert
+        assert(hsfulda.getEinnahmen() == 200);
+    }
+
+    @Test
+    public void keineDoppeltenProffesoren() {
+        //Arrange
+        boolean erg;
+
+        //Act
+        hsfulda.addProfessoren(prof1);
+        erg = hsfulda.addProfessoren(prof1);
+
+        //Assert
+        assert(!erg);
+    }
+
+    @Test
+    public void keineDoppeltenStudenten() {
+        //Arrange
+        boolean erg;
+
+        //Act
+        hsfulda.addStudent(std1);
+        erg = hsfulda.addStudent(std1);
+
+        //Assert
+        assert(!erg);
+    }
+
+    @Test
+    public void neuesSemesterSetztGebuehrenundSemesterHoch() {
+        //Arrange
+        hsfulda.addStudent(std1);
+        std1.updateGebuehren(200);
+
+        //Act
+        hsfulda.neuesSemester();
+
+        //Assert
+        assert(std1.getSemestergebuehren() == 298 && std1.getSemester() == 2);
+    }
+
+    @Test
+    public void keinNeuesSemesterBeiNichtBezahltenGebuehren(){
+        //arrange
+        hsfulda.addStudent(std1);
+
+        //Act
+        hsfulda.neuesSemester();
+
+        //assert
+        assert(std1.getSemester() == 1);
+    }
+
+    @Test
+    public void gehaltsauszahlungNeuerMonat() {
+        //Arrange
+        Professor prof2 = new Professor(2, "Max", 1000, "SDN");
+        hsfulda.addProfessoren(prof2);
+        hsfulda.addProfessoren(prof1);
+
+        //Act
+        hsfulda.neuerMonat();
+
+        //Assert
+        assert(hsfulda.getAusgaben() == 3000);
+
+    }
+
+    @Test
+    public void abfindungBeiEntlassung() {
+        //Arrange
+        hsfulda.addProfessoren(prof1);
+
+        //Act
+        prof1.addDienstjahr();
+        prof1.addDienstjahr();
+        hsfulda.removeProfessor(prof1);
+
+        //Assert
+        assert(hsfulda.getAusgaben() == 9600);
+    }
+
+    @Test
+    public void prognoseBilanz() {
+        //Act
+        hsfulda.addProfessoren(prof1);
+        hsfulda.addStudent(std1);
+
+        //Assert
+        assert(hsfulda.jahresBilanzPrognose() == -23600);
+    }
+
+    @Test
+    public void mehrUrlaubalsUebrigBeantragen() {
+        //Arrange
+        hsfulda.addProfessoren(prof1);
+        boolean erg;
+
+        //Act
+        erg = hsfulda.urlaubsantrag(prof1,14);
+
+        //Assert
+        assert (!erg);
+    }
+
+    @Test
+    public void neuesJahrNeuesDienstjahr() {
+        //Arrange
+        hsfulda.addProfessoren(prof1);
+
+        //Act
+        hsfulda.neuesJahr();
+
+        //Assert
+        assert(prof1.getDienstjahre() == 1);
+    }
+
+}

+ 25 - 0
src/test/java/Test_Pruefung.java

@@ -0,0 +1,25 @@
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Test_Pruefung {
+    @Test
+    public void anmeldungNurAlsTeilnehmerVonKurs() {
+        //Arrange
+        List<Student> studenten = new ArrayList<Student>();
+        List<Student> angemeldet = new ArrayList<Student>();
+        Student std1 = new Student(1, "Alex", 2, 200);
+        Professor prof1 = new Professor(1, "Max", 0, "SDN");
+        Kurs kurs1 = new Kurs(1,"Daten", prof1, studenten, 2);
+        Pruefung p1 = new Pruefung(angemeldet);
+        boolean erg;
+
+        //Act
+        kurs1.addStudent(std1);
+        erg = p1.addAngemeldet(std1);
+
+        //Assert
+        assert(erg);
+    }
+}

+ 13 - 0
src/test/java/Test_Raum.java

@@ -0,0 +1,13 @@
+import org.junit.Test;
+
+public class Test_Raum {
+
+    @Test
+    public void neuerRaumaddiertZuRaeume() {
+        Gebaeude geb1 = new Gebaeude("E22", "Fulda");
+        Raum raum1 = new Raum(22, 100, 0, 1);
+
+        assert(geb1.getRaeume() == 1);
+    }
+
+}

+ 3 - 2
src/test/java/Test_Student.java

@@ -6,11 +6,12 @@ public class Test_Student {
     public void zuVielGebuehrenGezahlt_abgelehnt() {
         //Arrange
         Student student = new Student(1, "Max", 1, 300);
+        boolean erg;
 
         //Act
-        student.updateGebuehren(400);
+        erg = student.updateGebuehren(400);
 
         //Assert
-        assert(student.getSemestergebuehren() == 300);
+        assert(!erg);
     }
 }