Direkt zum Hauptbereich

Linearen Notenschlüssel mit nodejs berechnen

Linearen Notenschlüssel berechnen / Method chaining in nodejs


Hintergrund/Motivation:
Ein kleines altes Nebenprojekt von mir war eine Schüler/Notenverwaltung Software in Java geschrieben. Das kleine Programm ist etwas in die Jahre gekommen und da wollte ich kleine teile von der Software nach nodejs portieren und es etwas auffrischen. Und zum start habe ich die Berechnung der Noten nach einem Linearen Notenschlüssel portiert. Also die dahinter liegende Klasse.

Kurze Beschreibung der Eigenschaften der Klasse:
Die Klasse soll die Berechnung anhand der Maximalen zu erreichenden Punkzahl und der erreichten Punkzahl des Schülers berechnen.
Es gibt folgende Attribute:
defaultPoints => fallback falls maxPoints nicht gesetzt wird
maxPoints => Maximal zu erreichende Punkte im Test/Arbeit
reachedPonts => Erreichte Punktzahl des Schülers

Darüber hinaus sollen die setter der Klasse via  Method chaining einfacher und kürzer aufrufbar sein, hierzu ein kleiner Pseudo code:
notenCalc->setMaxPoints(100)->setReachedPoints(50.25)->calcResult()

Dies soll den source code vereinfachen und überschaubarer machen. Da man sich ein paar Zeilen spart.
Um dies in javascript umzusetzen geben die setter das objekt selbst wieder zurück: "return this" Somit kann hinter dem Aufruf eines Setters ein weiterer Aufruf des Objektes erfolgen.

Hier noch die Formel um die Noten mit dem Linearen Notenschlüssel zu berechnen:

3 *  ((maxPoints - reachedPoints) / (maxPoints - (maxPoints/2.5) )) + 1;


Das fertige Resultat in nodejs der Klasse in nodejs kann man sich hier anschauen:
https://github.com/KaySchneider/simpleGradeCalc

Hier noch die Berechnung der Noten:
https://github.com/KaySchneider/simpleGradeCalc/blob/master/index.js

Viel Spass und besinnliche Feiertage :)


Kommentare

Beliebte Posts aus diesem Blog

Soziale Netze und die Sicherheit! Report Kwick!

Die Sozialen Netzwerke, neudeutsch: Social Networks, halten nicht allzu viel von Sicherheit. Vor allem müssten die Entwickler viel mehr für das Thema XSS Sensibilisiert werden. D enn Potentielle Angreifer finden jede Schwachstelle im System. Und wer lange genug sucht der wird imme r fündig. Es sollte den An greifern nur nicht allzu einfach gemacht werden. Kwick.de hatte bis zum 20.06.08 auch noch oder wieder ein Problem mit XSS. Betroffen waren so gut wie alle Suchformulare auf der Seite. Per zufall bin ich auf diesen Umstand aufmerksam geworden. Eines sei gesagt. Bei Kwick kann man sich nun getrost Anmelden denn die Sicherheitslücke wurde sofort behoben. Also eine sichere Sache. Andere Social Networks haben ähnliche XSS Probleme, eigentlich erschreckend viele. Die Namen möchte ich nicht nennen denn sonst rennen vielleicht ein Paar Dummys dahin und testen es gleich......... Nachdem ich dieses Problem dem Betreiber gemeldet hatte wurde es auch Postwendend behoben. Nur aus diesem Gru...

hackthissite.org Level 8 Basic Lösung

Hier ist ein eingabeformular in welches du deinen Namen schreiben sollst damit es eine Datei anlegen kann. Zum besseren Verständniss einfach mal testen, also "Mustermann" und auf submit klicken. Nun erscheint der Text: Your file has been saved. Please click here view the file. Hier ist die URL der Datei, welche angelegt wurde: http://www.hackthissite.org/missions/basic/8/tmp/mnxdljrz.shtml Genau, es ist eine shtml Datei also ein Server Side Include (SSI) damit kann man Befehle auf dem Server ausführen lassen und das ergebniss wird dann dem client übergeben! Hier musst du aber das Verzeichniss auslesen damit wir informationen über den Inhalt bekommen. Geb nun einfach mal folgendes in das Feld für den Namen ein: Richtig, ls bei unix/linux "list directory" zeigt den Inhalt eines Verzeichnisses an. Das neu hinzugefügte hier ist "ls ../" ../ heißt ein Verzeichniss nach oben. Also nicht in http://www.hackthissite.org/missions/basic/...