Warning: include_once(/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php): failed to open stream: No such file or directory in /var/www/html/fields/dbp09/local/config.php on line 4

Warning: include_once(): Failed opening '/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php' for inclusion (include_path='.:/opt/php/lib/php') in /var/www/html/fields/dbp09/local/config.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/fields/dbp09/local/config.php:4) in /var/www/html/pmwiki-2.2.86/pmwiki.php on line 1250
Datenbankpraktikum SS 2009 - Gruppe 3 - Notenschluessel


Notenschlüssel

von Dominik Abraham und Katharina Röhr

Das Model zum Notenschlüssel kann aus einer Prüfung einen Standardnotenschlüssel berechnen. Die zugehörige Prüfung wird dem Konstruktor übergeben.

// Array mit Standardprozentzahlen
// da php keine floats als Arrayindices erlaubt,
// werden die Noten * 10 als Key genommen 
 
private $std_steps = array(10 => 100,
                           13 => 91,
                           17 => 84,
                           20 => 80,
                           23 => 76,
                           27 => 72,
                           30 => 68,
                           33 => 64, 
                           37 => 60,
                           40 => 56,
                           50 => 49);
protected $steps = array();
 
function __construct(Pruefung $pruefung, $env) {
  parent::__construct($env);
 
  $Punktzahl = $pruefung->Punkte;
  foreach($this->std_steps as $note => $punkte){
    $this->steps[$note] = round(($punkte * $Punktzahl) / 100);
  }
  sortieren_nach_Schlüssel($this->steps);
}

Daneben stellt das Model noch andere Methoden zur Verfügung, u.a.:

  • function exists($VerID, $Nr, $env): Prüft, ob es zu dem angebenen Primärschlüssel einen Notenschlüssel in der Datenbank gibt.
  • function insert(): Schreibt den Notenschlüssel in die Datenbank
  • function update(): Aktualisiert den Notenschlüssel in der Datenbank
  • function check(): Prüft den Notenschlüssel auf Konsistenz und gibt einen entsprechenden Wahrheitswert zurück. Es wird geprüft, ob alle Punktzahlen zwischen 0 und der maximalen Punktzahl der Prüfung sind, und ob wirklich die Punktzahlen für bessere Noten monton ansteigen.

top


Notenschlüsselcontroller

Ein paar Methoden zur Übersicht

  • Die function __construct($env) ist der Konstruktor der Klasse Notenschluessel_Controller
  • Die function req($attr, $default = false) gibt eine Variable aus dem Request-Array zurück, sonst ein Defaultwert
  • Die function getNotenschluessel() gibt aus dem Schlüssel, der per $_REQUEST übergeben wurde, den passenden Notenschlüssel zurück
  • Die function action_speichern() legt eine neue Prüfung an und schreibt sie in die Datenbank
  • Die function action_zuruecksetzen() ersetzt den Notenschlüssel der Klausur durch einen automatisch erzeugten Standard-Notenschlüssel. Dies ist mit einem Funktionsaufruf der Prüfungsklasse getan.
$pr->stdNotenschluessel(true); // der übergebene Wert 'wahr' bedeutet, alte Notenschlüssel werden überschrieben
  • Die function action_anhang($ergebnisse) generiert einen Anhang, um unter einer Prüfung den Notenschlüssel samt Ergebnissen anzuzeigen. Die Ergebnisse werden aufsummiert und als Gesamtpunktzahl und Endnote dargestellt.
if ($ergebnisse) {
     $punkte = array_sum($ergebnisse);		
     $this->env->templateEngine()->assign('allePunkte', $punkte);
     $this->env->templateEngine()->assign('endnote', $Notenschluessel->getNote($punkte));
   }
   return $this->env->templateEngine()->fetch('notenschluessel_anzeigen.tpl');
  • Die function canedit gibt an, ob der Benutzer berechtigt ist, Notenschlüssel anzulegen oder zu ändern
function canedit(){
     return anzahl_elemente(
       schnittmenge(
       $this->meine_rollen(), 
       	$this->editors)
	) != 0;
	           }

top



Page last modified on August 17, 2009, at 12:25 PM