core
Class ExamDataBase

java.lang.Object
  extended bycore.ExamDataBase

public abstract class ExamDataBase
extends java.lang.Object

Abstrakte ExamDataBase Klasse. Speichert Benotungsparameter, Teilnehmerdaten und ermöglicht Abfragen der Datenbasis.


Field Summary
protected  int maxPoints
          Die maximal erreichbare Punktzahl
protected  int step
          Die Schrittweite zwischen den einzelnen Notenstufen.
protected  Student[] students
          Die zu der Klausur angemeldeten Studenten, auch diejenigen, die sich wieder abgemeldet haben.
protected  int threshold
          Die Bestehensgrenze.
 
Constructor Summary
ExamDataBase()
           
 
Method Summary
abstract  void addStudent(int matrNr, java.lang.String firstname, java.lang.String surname)
          Fügt einen Studenten mit der Matrikelnummer matrNr, dem Vornamen firstname und dem Nachnamen surname zur Datenbasis hinzu, falls: firstname und surname nicht null sind matrNr>0 gilt.
abstract  boolean consistent()
          Gibt genau dann true zurück, wenn für jeden in der Datenbasis befindlichen Studenten, der nicht von der Klausur zurückgetreten ist ein gültiger Punktestand größer 0 eingetragen wurde.
abstract  void deleteStudent(int matrNr)
          Entfernt den Studenten mit der Matrikelnummer matrNr aus der Datenbasis, falls ein solcher darin enthalten ist.
abstract  int getAverage()
          Gibt den Notendurchschnitt zurück, falls die Datenbasis konsistent ist (consistent()==true).
abstract  boolean getBackedOut(int matrNr)
          Ist ein Student mit der Matrikelnummer matrNr in der Datenbasis enthalten, wird genau dann true zurückgeliefert, wenn dieser Studenten von der Klausur zurückgetreten ist.
abstract  int getBonusPoints(int matrNr)
          Liefert die Bonuspunkte des Studenten mit der Matrikelnummer matrNr zurück, falls ein solcher in der Datenbasis enthalten ist.
abstract  java.lang.String getFirstname(int matrNr)
          Liefert den Vornamen des Studenten mit der Matrikelnummer matrNr zurück, falls ein solcher in der Datenbasis enthalten ist.
abstract  int getGrade(int matrNr)
          Liefert die Note des Studenten mit der Matrikelnummer matrNr zurück, falls ein solcher in der Datenbasis enthalten ist.
abstract  int[] getMatrNrs()
          Liefert die Matrikelnummern aller in der Datenbasis enthaltenen Studenten als Array zurück.
abstract  int getNumParticipants()
          Gibt die Anzahl der (nicht wieder abgemeldeten) Klausurteilnehmer zurück.
abstract  int getNumWithGrade(int grade)
          Gibt die Anzahl der Klausurteilnehmer mit Note grade zurück, falls die Datenbasis konsistent ist (consistent()==true).
abstract  int getPassedAverage()
          Gibt den Notendurchschnitt der bestandenen Klausuren zurück, falls die Datenbasis konsistent ist (consistent()==true).
abstract  int getPoints(int matrNr)
          Liefert die Punkte des Studenten mit der Matrikelnummer matrNr zurück, falls ein solcher in der Datenbasis enthalten ist.
abstract  java.lang.String getSurname(int matrNr)
          Liefert den Nachnamen des Studenten mit der Matrikelnummer matrNr zurück, falls ein solcher in der Datenbasis enthalten ist.
abstract  int maxPoints()
           
protected  int pointsToGrade(int points, int bonusPoints)
          Berechnet aus Punkt- und Bonuspunktzahl die Note.
abstract  void setBackedOut(int matrNr, boolean backedOut)
          Vermerkt den Studenten mit der Matrikelnummer matrNr als von der Klausur zurückgetreten oder macht die Abmeldung rückgängig.
abstract  void setBonusPoints(int matrNr, int bonusPoints)
          Setzt die Bonuspunktzahl des Studenten mit der Matrikelnummer matrNr auf bonusPoints.
abstract  void setExamParameters(int newThreshold, int newStep, int newMaxPoints)
          Setzt die Bestehensgrenze (threshold), die Schrittweite (step) und die Maximalpunktzahl (maxPoints) auf die neuen Werte newThreshold, newStep und newMaxPoints, falls diese die folgenden Bedingungen erfüllen: 0<newThreshold 0<newStep newStep<=(newMaxPoints-newThreshold)/10 newThreshold<=newMaxPoints andernfalls wird eine ExamDataBaseException geworfen.
abstract  void setPoints(int matrNr, int points)
          Setzt die Punktzahl des Studenten mit der Matrikelnummer matrNr auf points.
abstract  int step()
           
abstract  int threshold()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

threshold

protected int threshold
Die Bestehensgrenze. Ist immer echt größer null und kleiner oder gleich maxPoints.


step

protected int step
Die Schrittweite zwischen den einzelnen Notenstufen. Liegt im Bereich von echt größer 0 bis (maxPoints-threshold)/10.


maxPoints

protected int maxPoints
Die maximal erreichbare Punktzahl


students

protected Student[] students
Die zu der Klausur angemeldeten Studenten, auch diejenigen, die sich wieder abgemeldet haben. students ist niemals null. Für alle Studenten in students gilt:

Constructor Detail

ExamDataBase

public ExamDataBase()
Method Detail

pointsToGrade

protected int pointsToGrade(int points,
                            int bonusPoints)
Berechnet aus Punkt- und Bonuspunktzahl die Note. Noten liegen im Bereich von 100 bis 500 (1,0 bis 5,0).


setExamParameters

public abstract void setExamParameters(int newThreshold,
                                       int newStep,
                                       int newMaxPoints)
                                throws ExamDataBaseException
Setzt die Bestehensgrenze (threshold), die Schrittweite (step) und die Maximalpunktzahl (maxPoints) auf die neuen Werte newThreshold, newStep und newMaxPoints, falls diese die folgenden Bedingungen erfüllen: andernfalls wird eine ExamDataBaseException geworfen.

Parameters:
newThreshold - der neue Wert für die Bestehensgrenze threshold
newStep - der neue Wert für die Schrittweite step
newMaxPoints - der neue Wert für die Maximalpunktzahl maxPoints
Throws:
ExamDataBaseException - wird geworfen, falls die obigen Konsistenzbedingungen nicht erfüllt sind.

addStudent

public abstract void addStudent(int matrNr,
                                java.lang.String firstname,
                                java.lang.String surname)
                         throws ExamDataBaseException
Fügt einen Studenten mit der Matrikelnummer matrNr, dem Vornamen firstname und dem Nachnamen surname zur Datenbasis hinzu, falls: andernfalls wird eine ExamDataBaseException geworfen.

Parameters:
matrNr - die Matrikelnummer des hinzuzufügenden Studenten.
firstname - der Vorname des Studenten.
surname - der Nachname des Studenten.
Throws:
ExamDataBaseException - wird geworfen, falls die obigen Konsistenzbedingungen nicht erfüllt sind.

deleteStudent

public abstract void deleteStudent(int matrNr)
                            throws ExamDataBaseException
Entfernt den Studenten mit der Matrikelnummer matrNr aus der Datenbasis, falls ein solcher darin enthalten ist. Falls nicht, wird eine ExamDataBaseException geworfen. Diese Methode ist dazu gedacht, Fehleingaben in die Datenbasis zu korrigieren. Bei Abmeldungen von der Klausur ist die Methode setBackedOut zu verwenden.

Parameters:
matrNr - die Matrikelnummer des zu löschenden Studenten.
Throws:
ExamDataBaseException - wird geworfen, falls kein Student mit der Matrikelnummer matrNr in der Datenbasis enthalten ist.

setPoints

public abstract void setPoints(int matrNr,
                               int points)
                        throws ExamDataBaseException
Setzt die Punktzahl des Studenten mit der Matrikelnummer matrNr auf points.

Parameters:
matrNr - die Matrikelnummer. Ein Student mit dieser Matrikelnummer muß in der Datenbasis enthalten sein.
points - die Punktzahl des Studenten mit der Matrikelnummer matrNr. Muß zwischen -1 und maxPoints liegen.
Throws:
ExamDataBaseException - wird geworfen wenn kein Student mit Matrikelnummer matrNr in der Datenbasis enthalten ist, oder points nicht im Bereich zwischen 0 und maxPoints liegt.

setBonusPoints

public abstract void setBonusPoints(int matrNr,
                                    int bonusPoints)
                             throws ExamDataBaseException
Setzt die Bonuspunktzahl des Studenten mit der Matrikelnummer matrNr auf bonusPoints.

Parameters:
matrNr - die Matrikelnummer. Ein Student mit dieser Matrikelnummer muß in der Datenbasis enthalten sein.
bonusPoints - die Bonuspunktzahl des Studenten mit der Matrikelnummer matrNr. Muß zwischen 0 und maxPoints liegen.
Throws:
ExamDataBaseException - wird geworfen wenn kein Student mit Matrikelnummer matrNr in der Datenbasis enthalten ist, oder bonusPoints nicht im Bereich zwischen 0 und maxPoints liegt.

setBackedOut

public abstract void setBackedOut(int matrNr,
                                  boolean backedOut)
                           throws ExamDataBaseException
Vermerkt den Studenten mit der Matrikelnummer matrNr als von der Klausur zurückgetreten oder macht die Abmeldung rückgängig.

Parameters:
matrNr - die Matrikelnummer. Ein Student mit dieser Matrikelnummer muß in der Datenbasis enthalten sein.
backedOut - true falls der Student sich abmeldet, false, falls er von der Abmeldung zurücktritt.
Throws:
ExamDataBaseException - wird geworfen falls kein Student mit Matrikelnummer matrNr in der Datenbasis existiert.

threshold

public abstract int threshold()
Returns:
threshold

step

public abstract int step()
Returns:
step

maxPoints

public abstract int maxPoints()
Returns:
maxPoints

getMatrNrs

public abstract int[] getMatrNrs()
Liefert die Matrikelnummern aller in der Datenbasis enthaltenen Studenten als Array zurück.

Returns:
Ein Integerarray bestehend aus den Matrikelnummern der in der Datenbasis enthaltenen Studenten.

getFirstname

public abstract java.lang.String getFirstname(int matrNr)
                                       throws ExamDataBaseException
Liefert den Vornamen des Studenten mit der Matrikelnummer matrNr zurück, falls ein solcher in der Datenbasis enthalten ist. Andernfalls wird eine ExamDataBaseException geworfen.

Returns:
der Vorname des in der Datenbasis enthaltenen Studenten mit der Matrikelnummer matrNr.
Throws:
ExamDataBaseException - falls kein Student mit Matrikelnummer matrNr in der Datenbasis vorkommt.

getSurname

public abstract java.lang.String getSurname(int matrNr)
                                     throws ExamDataBaseException
Liefert den Nachnamen des Studenten mit der Matrikelnummer matrNr zurück, falls ein solcher in der Datenbasis enthalten ist. Andernfalls wird eine ExamDataBaseException geworfen.

Returns:
der Nachname des in der Datenbasis enthaltenen Studenten mit der Matrikelnummer matrNr.
Throws:
ExamDataBaseException - falls kein Student mit Matrikelnummer matrNr in der Datenbasis vorkommt.

getPoints

public abstract int getPoints(int matrNr)
                       throws ExamDataBaseException
Liefert die Punkte des Studenten mit der Matrikelnummer matrNr zurück, falls ein solcher in der Datenbasis enthalten ist. Andernfalls wird eine ExamDataBaseException geworfen.

Returns:
die Punkte des in der Datenbasis enthaltenen Studenten mit der Matrikelnummer matrNr.
Throws:
ExamDataBaseException - falls kein Student mit Matrikelnummer matrNr in der Datenbasis vorkommt.

getBonusPoints

public abstract int getBonusPoints(int matrNr)
                            throws ExamDataBaseException
Liefert die Bonuspunkte des Studenten mit der Matrikelnummer matrNr zurück, falls ein solcher in der Datenbasis enthalten ist. Andernfalls wird eine ExamDataBaseException geworfen.

Returns:
die Bonuspunkte des in der Datenbasis enthaltenen Studenten mit der Matrikelnummer matrNr.
Throws:
ExamDataBaseException - falls kein Student mit Matrikelnummer matrNr in der Datenbasis vorkommt.

getBackedOut

public abstract boolean getBackedOut(int matrNr)
                              throws ExamDataBaseException
Ist ein Student mit der Matrikelnummer matrNr in der Datenbasis enthalten, wird genau dann true zurückgeliefert, wenn dieser Studenten von der Klausur zurückgetreten ist. Ist kein solcher Student in der Datenbasis zu finden, wird eine ExamDataBaseException geworfen.

Returns:
true gdw. der in der Datenbasis enthaltene Studenten mit der Matrikelnummer matrNr von der Klausur zurückgetreten ist.
Throws:
ExamDataBaseException - falls kein Student mit Matrikelnummer matrNr in der Datenbasis vorkommt.

getGrade

public abstract int getGrade(int matrNr)
                      throws ExamDataBaseException
Liefert die Note des Studenten mit der Matrikelnummer matrNr zurück, falls ein solcher in der Datenbasis enthalten ist. Andernfalls wird eine ExamDataBaseException geworfen.

Returns:
die Note des in der Datenbasis enthaltenen Studenten mit der Matrikelnummer matrNr.
Throws:
ExamDataBaseException - falls kein Student mit Matrikelnummer matrNr in der Datenbasis vorkommt.

consistent

public abstract boolean consistent()
Gibt genau dann true zurück, wenn für jeden in der Datenbasis befindlichen Studenten, der nicht von der Klausur zurückgetreten ist ein gültiger Punktestand größer 0 eingetragen wurde.

Returns:
true gdw. für jeden in der Datenbasis befindlichen Studenten, der nicht von der Klausur zurückgetreten ist ein gültiger Punktestand größer 0 eingetragen wurde.

getNumParticipants

public abstract int getNumParticipants()
Gibt die Anzahl der (nicht wieder abgemeldeten) Klausurteilnehmer zurück.

Returns:
die Anzahl der (nicht wieder abgemeldeten) Klausurteilnehmer.

getNumWithGrade

public abstract int getNumWithGrade(int grade)
                             throws ExamDataBaseException
Gibt die Anzahl der Klausurteilnehmer mit Note grade zurück, falls die Datenbasis konsistent ist (consistent()==true). Andernfalls wird eine ExamDataBaseException geworfen.

Returns:
die Anzahl der (nicht wieder abgemeldeten) Klausurteilnehmer mit Note grade.
Throws:
ExamDataBaseException - falls die Datenbasis inkonsistent ist (consistent()==false).

getAverage

public abstract int getAverage()
                        throws ExamDataBaseException
Gibt den Notendurchschnitt zurück, falls die Datenbasis konsistent ist (consistent()==true). Andernfalls wird eine ExamDataBaseException geworfen.

Returns:
der Notendurchschnitt.
Throws:
ExamDataBaseException - falls die Datenbasis inkonsistent ist (consistent()==false).

getPassedAverage

public abstract int getPassedAverage()
                              throws ExamDataBaseException
Gibt den Notendurchschnitt der bestandenen Klausuren zurück, falls die Datenbasis konsistent ist (consistent()==true). Andernfalls wird eine ExamDataBaseException geworfen.

Returns:
der Notendurchschnitt der bestandenen Klausuren.
Throws:
ExamDataBaseException - falls die Datenbasis inkonsistent ist (consistent()==false).