×

ZULETZT ANGESEHEN

    Die Aufgabe der heutigen Stunde ist das Notenprogramm! Dazu schauen wir uns mal die Aufgabe genauer an und versuchen durch intelligentes Lösen ein vollfunktionsfähiges Programm zu erstellen. Die Aufgabenstellung lautet:

    Das Programm zur Eingabe der Noten soll für die Oberstufe erweitert werden. Der Anwender trägt die erreichte Punktzahl der Klausur ein und gibt die maximale Punktzahl ein. Als Ausgabe erhält er die Note in Punkten nach der folgenden prozentualen Verteilung, den prozentualen Wert, die Note in Worten und die Notendefinition

    Lösungsprozess der Aufgabe:

    Java
                
                    /**
                        *
                        * Das fertige Java Programm des Notenprogramms
                        *
                        * @version 1.0 vom 06.03.2024
                        * @MeinInfoKurs.github.io
                        */
                        public class Notenprogramm {
                          public static void main(String[] args) {
                            double EndProzent, Prozent, Punkte, MaxPunkte;
                            Punkte = InOut.readDouble("Wie viele Punkte konnten sie in der Klausur erzielen: ");
                            MaxPunkte = InOut.readDouble("Was war die maximal zu erreichende Punlteanzahl: ");
                            Prozent = Punkte / MaxPunkte;
                            EndProzent = Prozent * 100;
                            
                            if (Punkte > MaxPunkte) {
                              System.out.println("");
                              System.out.println("Ungültige Eingabe!");
                              System.out.println("Maximal Punktzahl darf nicht größer als die erreichte Punktzahl sein.");
                            } else {
                              System.out.println("");
                              if (EndProzent >= 95) {
                                System.out.println("Sie haben 15 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist sehr gut.");
                                System.out.println("Die Leistungen entsprechen den Anforderungen in besonderem Masse.");
                              } else if (EndProzent >= 90) {
                                System.out.println("Sie haben 14 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist sehr gut.");
                                System.out.println("Die Leistungen entsprechen den Anforderungen in besonderem Masse.");
                              } else if (EndProzent >= 85) {
                                System.out.println("Sie haben 13 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist sehr gut.");
                                System.out.println("Die Leistungen entsprechen den Anforderungen in besonderem Masse.");
                              } else if (EndProzent >= 80) {
                                System.out.println("Sie haben 12 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist gut.");
                                System.out.println("Die Leistungen entsprechen den Anforderungen voll.");
                              } else if (EndProzent >= 75) {
                                System.out.println("Sie haben 11 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist gut.");
                                System.out.println("Die Leistungen entsprechen den Anforderungen voll.");
                              } else if (EndProzent >= 70) {
                                System.out.println("Sie haben 10 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist gut.");
                                System.out.println("Die Leistungen entsprechen den Anforderungen voll.");
                              } else if (EndProzent >= 65) {
                                System.out.println("Sie haben 09 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist befriedigend.");
                                System.out.println("Die Leistungen entsprechen den Anforderungen im Allgemeinen.");
                              } else if (EndProzent >= 60) {
                                System.out.println("Sie haben 08 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist befriedigend.");
                                System.out.println("Die Leistungen entsprechen den Anforderungen im Allgemeinen.");
                              } else if (EndProzent >= 55) {
                                System.out.println("Sie haben 07 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist befriedigend.");
                                System.out.println("Die Leistungen entsprechen den Anforderungen im Allgemeinen.");
                              } else if (EndProzent >= 50) {
                                System.out.println("Sie haben 06 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist ausreichend.");
                                System.out.println("Die Leistungen weisen zwar Maengel auf, entsprechen aber im Ganzen noch den Anforderungen.");
                              } else if (EndProzent >= 45) {
                                System.out.println("Sie haben 05 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist ausreichend.");
                                System.out.println("Die Leistungen weisen zwar Maengel auf, entsprechen aber im Ganzen noch den Anforderungen.");
                              } else if (EndProzent >= 40) {
                                System.out.println("Sie haben 04 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist ausreichend.");
                                System.out.println("Die Leistungen weisen Maengel auf und entsprechen den Anforderungen nur noch mit Einschraenkungen.");
                              } else if (EndProzent >= 33) {
                                System.out.println("Sie haben 03 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist mangelhaft.");
                                System.out.println("Die Leistungen entsprechen den Anforderungen nicht, lassen jedoch erkennen, dass die notwendigen Grundkenntnisse vorhanden sind.");
                              } else if (EndProzent >= 27) {
                                System.out.println("Sie haben 02 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist mangelhaft.");
                                System.out.println("Die Leistungen entsprechen den Anforderungen nicht, lassen jedoch erkennen, dass die notwendigen Grundkenntnisse vorhanden sind.");
                              } else if (EndProzent >= 20) {
                                System.out.println("Sie haben 01 Punkt erreicht und " + EndProzent + "% erreicht. Ihre Note ist mangelhaft.");
                                System.out.println("Die Leistungen entsprechen den Anforderungen nicht, lassen jedoch erkennen, dass die notwendigen Grundkenntnisse vorhanden sind.");
                              } else {
                                System.out.println("Sie haben 00 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist ungenuegend.");
                                System.out.println("Leistungen entsprechen den Anforderungen nicht, Grundkenntnisse sind so lueckenhaft, die Maengel können nicht behoben werden.");
                              } 
                            } // end of if-else
                          } // end of main
                         
                        } // end of class Notenprogramm
                

    In der Aufgabenstellung wird gefordert, dass wir folgende Funktionen in unseren Code implementieren:

    1. Nutzereingabe der Maximalpunktzahl
    2. Nutzereingabe der eigenen (in der Klausur erreichten) Punktzahl

    3. Berechnung der Note

    4. Ausgabe des Notenwertes

    Nutzereingaben der Maximalpunktzahl und erreichten Punktzahl

    Um eine Nutzereingabe zu ermöglichen, müssen wir zuerst die Variable deklarieren, der wir einen Wert zuweisen wollen. Da wir in dieser Situation eine Zahl mit Nachkommastelle als Wert (Punkte & MaxPunkte) eingeben KÖNNEN, nutzen wir einen DOUBLE. Das heißt, wir fragen den Nutzer nach der Maximalpunktzahl und seiner erreichten Punktzahl. Diese Werte speichern wir jeweils als Variable ab und verwenden sie bei der Berechnung der Note wieder, dazu kommen wir aber gleich. Die Abfrage und das Speichern sieht dann so aus:


     
                    double  Punkte, MaxPunkte;
                    Punkte = InOut.readDouble("Wie viele Punkte konnten sie in der Klausur erzielen: ");
                    MaxPunkte = InOut.readDouble("Was war die maximal zu erreichende Punlteanzahl: ");
                

    Berechnung des Notenwertes

    Nun haben wir dank der Nutzereingabe alle Werte die wir zur Ausrechnung des Notenwertes benötigen! Doch bevor wir irgendeine Berechnung anstellen wollen wir überprüfen, ob alle Nutzereingaben korrekt sind. Dafür vergleichen wir die Maximalpunktzahl und die erreichte Punktzahl. Ist die Punktzahl höher als die Maximalpunktzahl, wird der Nutzer mit einem Fehler konfrontiert. Dieser Check ist nicht zwingend und kann auch weggelassen werden. Nun zur überprüfung. Wir rechnen die erreichte Punktzahl geteilt durch die MaxPunktzahl. Dieses Ergebnis multiplizieren es dann Mit 100. Dadurch erhalten wir eine gerade Zahl anstatt einer Komma Zahl. Das Ergebnis gleichen wir dann mit einer IF-ELSE Kette ab und anschließend wird das Ergebnis ausgegeben.


     
                    /* Beispielaufgabe, wo der Nutzer 78 Punkte von 100 erreicht hat */
                    Punkte = 73;
                    MaxPunkte = 80;
                    Prozent = Punkte / MaxPunkte;  /* 73 / 80 = 0.9125 */
                    EndProzent = Prozent * 100;  /* 0.9125 * 100 = 91.25 */
    
    
                    if (Punkte > MaxPunkte) { /* Der Check um zu überprüfen, ob die Punktzahl valide ist oder nicht (Beispiel: 91.25 < 100) */
                        System.out.println("");
                        System.out.println("Ungültige Eingabe!");
                        System.out.println("Maximal Punktzahl darf nicht größer als die erreichte Punktzahl sein.");
                      
                        } else {
                        System.out.println("");
                        if (EndProzent >= 95) { /* Der vergleich zwischen Endprozent und der benötigten Prozentzahl für die Notenfindung */
                          System.out.println("Sie haben 15 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist sehr gut.");
                          System.out.println("Die Leistungen entsprechen den Anforderungen in besonderem Masse.");
                        } else if (EndProzent >= 90) {  /* 91.25 > 90 && 91.25 < 95.  Das "&&" steht für "und" */
                          System.out.println("Sie haben 14 Punkte erreicht und " + EndProzent + "% erreicht. Ihre Note ist sehr gut."); /* Ausgabe */
                          System.out.println("Die Leistungen entsprechen den Anforderungen in besonderem Masse."); /* Ausgabe */
                        } else if (EndProzent >= 85) { 
                            ...  /* Weitere Notenüberprüfungen. In unserem Beispiel aber nicht Notwendig. */
                            }
                      } // end of if-else
                    } // end of main
                

    Vorherige Aufgabe

    Nächste Aufgabe