C++ Programm !!! Komme nicht weiter!! hilfe!!!!



  • Das fertige Programm soll wie folgt funktionieren
    (Eingaben des Benutzers sind fett gedruckt: 1 2 3 ...):

    Noten im Format ganze,zehntel eingeben (Ende mit Strg-D):
    2,7 2.1 2-3 2.0 2,5 2.3
    Unzulaessige Note 2.1 wird ignoriert!
    Unzulaessige Note 2-3 wird ignoriert!
    Unzulaessige Note 2,5 wird ignoriert!
    Strg-D
    Anzahl beruecksichtigter Noten: 3
    Beste Note: 2.0
    Schlechteste Note: 2.7
    Durchschnitt: 2.3

    Sie sollen also zählen, wieviele zulässige Noten der Benutzer eingegeben hat, und zum Schluss die beste und schlechteste Note sowie den Durchschnitt ausgeben. Bei Noten, die in der Prüfungsordnung nicht vorgesehen sind, sollen Sie eine Fehlermeldung ausgeben und die Note ignorieren. Ganze Note und Zehntelnote darf der Benutzer mit Komma oder Punkt trennen. 😕 😕
    ich hoffe ihr könnt mir helfen!!

    // Aufgabe3.cpp
    //
    // Programmiertechnik Übungsaufgabe 3: Klausurnoten
    //
    // Liest Klausurnoten im Format ganze,zehntel oder ganze.zehntel ein und
    // bestimmt die beste und die schlechteste Note sowie den Durchschnitt.
    // Das Programm beruecksichtigt dabei nur die nach Pruefungsordnung
    // zulaessigen Noten (1,0 1,3 1,7 2,0 2,3 2,7 3,0 3,3 3,7 4,0 5,0),
    // andere Noten werden unter Ausgabe einer Warnung ignoriert.
    //
    // Das Programm gibt als Klausurergebnis folgende Werte aus:
    // - die Anzahl der beruecksichtigten Noten
    // - die beste Note
    // - die schlechteste Note
    // - den Durchschnitt
    //
    // Autor(en): ...
    // Erstellt am: ...
    //

    #include <iostream>
    #include <iomanip>

    #ifdef NO_FIXED
    // Falls fixed in der Standardbibliothek fehlt
    // (ist z.B. beim gcc 2.95.2 der Fall), muss es selbst definiert werden.
    namespace std
    {
    inline ostream& fixed (ostream& s)
    {
    return s << resetiosflags(ios::scientific) << setiosflags(ios::fixed);
    }
    }
    #endif

    struct KlausurNote
    {
    int ganze; // [1..5]
    int zehntel; // [0, 3, 7] fuer Noten 1 bis 3, nur 0 fuer Noten 4 und 5
    };

    int main ()
    {
    //--------------------------------------------------------- Noten einlesen
    std::cout << "Noten im Format ganze,zehntel eingeben (Ende mit Strg-D):\n";

    KlausurNote note;
    char komma;

    /* 1: Direkt nach diesem Kommentar
    weitere Variablen definieren */

    while (std::cin >> note.ganze >> komma >> note.zehntel)
    {
    //------------------------------------------------------ Eingabe pruefen
    /* 2: Direkt nach diesem Kommentar
    Anweisungen fuer das Pruefen der eingegebenen Note schreiben */

    //--------------------------------------------------- Noten aufsummieren
    /* 3: Direkt nach diesem Kommentar
    Anweisungen fuer das Aktualisieren von
    Notensumme, Anzahl Noten, beste und schlechteste Note schreiben */

    }

    if (! std::cin.eof())
    {
    std::cout << "Ende wegen falscher Eingabe!\n";
    }

    //------------------------------------------------------ Ergebnis ausgeben
    /* 4: Direkt nach diesem Kommentar
    Anweisungen zum Ausgeben des Klausurergebnisses schreiben */

    }



  • ich hoffe ihr könnt mir helfen!!

    Klar, wenn Du uns sagst wo Du die Probleme hast, gerne 🤡



  • ich steh heute total auf dem schlauch,
    hab einfach kein Plan wie ich das Programm fertig zum Laufen bringe!!

    2.Anweisungen fuer das Pruefen der eingegebenen Note schreiben */
    3. Direkt nach diesem Kommentar
    Anweisungen fuer das Aktualisieren von
    Notensumme, Anzahl Noten, beste und schlechteste Note schreiben */
    4: Direkt nach diesem Kommentar
    Anweisungen zum Ausgeben des Klausurergebnisses schreiben */



  • als Tip: einfacher wird's, wenn du den Eingabwert mal 10 nimmst. Dann kannst die zulässigen Werte (natürlich auch mal 10) einfach in einem int-Array speichern und überprüfen, ob der Eingabewert im Array vorhanden ist.



  • Hi,

    /me wuerde die eingegebenen Zahlen als kompletten String einlesen und parsen.

    Die einzelnen Zahlen erhaelt man, indem man das Leerzeichen als Trennzeichen
    nutzt (hier sei auf strtok verwiesen). Hat man die einzelnen Zahlen getrennt,
    schaust du nach, ob eines der Zeichen enthalten ist, welche ungueltig sind
    (strstr hilft da, denke ich) und zu letzt kann man dann die Zahlen mittels
    'atof' in ein double konvertieren.

    Beste, schlechteste und Durchschnittsnote, sollten kein Problem darstellen.

    mfg
    v R



  • ja ich hocke jetzt schon stunden dran und kriegs nicht hin!!
    Wäre cool,wenn ihr mir den programmcode mal schreibt dass ich das einfach besser verstehen kann ;o/
    liebe grüße


Log in to reply