eis-website/js/notenrechner.js

75 lines
1.9 KiB
JavaScript

// ====================== AUFGABE 1: NOTENRECHNER ======================
/**
* Berechnet die Note basierend auf der Punktzahl
* @param {number} punkte - Die erreichte Punktzahl
* @returns {string} Die entsprechende Note als Text
*/
function berechneNote(punkte) {
if (punkte >= 90) {
return "sehr gut";
} else if (punkte >= 75) {
return "gut";
} else if (punkte >= 60) {
return "befriedigend";
} else if (punkte >= 50) {
return "ausreichend";
} else {
return "nicht bestanden";
}
}
/**
* Startet den interaktiven Notenrechner
* Fragt nach Punktzahl und maximaler Punktzahl
*/
function startNotenrechner() {
// Punkte abfragen
const punkteInput = prompt("Geben Sie Ihre Punktzahl ein:");
// Prüfung auf Abbruch oder leere Eingabe
if (punkteInput === null || punkteInput.trim() === "") {
alert("Abgebrochen.");
return;
}
const punkte = parseFloat(punkteInput);
// Validierung: Zahl
if (isNaN(punkte)) {
alert("Fehler: Bitte geben Sie eine gültige Zahl ein!");
return;
}
// Maximale Punktzahl abfragen
const maxPunkteInput = prompt("Geben Sie die maximale Punktzahl ein:");
// Prüfung auf Abbruch oder leere Eingabe
if (maxPunkteInput === null || maxPunkteInput.trim() === "") {
alert("Abgebrochen.");
return;
}
const maxPunkte = parseFloat(maxPunkteInput);
// Validierung: Zahl
if (isNaN(maxPunkte) || maxPunkte <= 0) {
alert("Fehler: Bitte geben Sie eine gültige Zahl ein!");
return;
}
// Prozentsatz berechnen
const prozentsatz = (punkte / maxPunkte) * 100;
// Note berechnen (basierend auf Prozentsatz)
const note = berechneNote(prozentsatz);
// Ergebnis formatieren
const ergebnis = `${punkte} von ${maxPunkte} Punkten (${prozentsatz.toFixed(2)}%) = ${note}`;
// Ausgabe auf Konsole
console.log(ergebnis);
// Ausgabe als Alert
alert(ergebnis);
}