0 Daumen
497 Aufrufe

Aufgabe C++ programmiern:

Die Berechnung der Bachelornote

Alle Lehrveranstaltungen (LV) eines Studiums sind thematisch in Module eingeteilt und erhalten je nach Schwierigkeit und Umfang der Aufwendungen eine Gewichtung \( (\mathrm{LP}) \).

Eine Modulnote wird aus den einzelnen Noten der LV unter Beachtung der jeweiligen Gewichtung wie folgt berechnet: Alle Noten werden mit ihrer Gewichtung multipliziert. Aus den jeweiligen Produkten wird eine Summe gebildet, die dann durch die Summe aller Gewichtungen geteilt die Modulnote ergibt. Außerdem ist zu beachten, dass die Modulnote nach dem Komma nur 1 Stelle besitzt (es wird nicht gerundet).

Die Berechnung der Bachelornote (Gesamtnote für das Studium) erfolgt äquivalent und ergibt sich unter Beachtung der Gesamtgewichtung des Moduls aus den Modulnoten. Auch die Bachelornote besitzt nur 1 Kommastelle. Sie wird außerdem als Wortnote angegeben.

Ein Beispiel: Ein Studium besteht aus zwei Modulen. In Modul 1 sind 5 LV und in Modul 2 sind 2 LV enthalten. Es gibt folgende Noten und Gewichtungen:

Modul 1

Note2.72.33.72.03.7
Gewichtung55833

Modul 2

Note3.02.3
Gewichtung1030

Daraus ergibt sich folgende Berechnung:

Modul 1

Berechnung\( \frac{2.7 \cdot 5 + 2.3 \cdot 5 + 3.7 \cdot 8 + 2.0 \cdot 3 + 3.7 \cdot 3}{5 + 5 + 8 + 3 + 3} \)
Note2.9

Modul 2

Berechnung\( \frac{3.0 \cdot 10 + 2.3 \cdot 30}{10 + 30} \)
Note2.4

Bachelornote

Berechnung\( \frac{2.9 \cdot 24 + 2.4 \cdot 40}{24 + 40} \)
Note\( 2.5 \longrightarrow \) gut
Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Berechnung der Bachelornote in C++ programmieren

Um die Berechnung der Bachelornote entsprechend der Aufgabenstellung in C++ zu programmieren, benötigen wir einen Ansatz, um die Noten und Gewichtungen der Lehrveranstaltungen in Modulen zu verarbeiten, die Modulnoten zu berechnen und schließlich die Bachelornote unter Berücksichtigung der Modulgewichtungen zu ermitteln.

Zuerst definieren wir eine Struktur oder Klasse für ein Modul, die die notwendigen Informationen und Funktionen enthält. Für die Bachelornote berechnen wir den gewichteten Durchschnitt der Modulnoten und ordnen diesen einer Wortnote zu.

Hier ist ein mögliches Programm in C++ zur Lösung dieser Aufgabe:

cpp
#include <iostream>
#include <vector>
#include <string>
#include <iomanip> // Für std::fixed und std::setprecision

using namespace std;

// Definition der Modulklasse
class Modul {
public:
    vector<double> noten;
    vector<int> gewichtungen;

    // Funktion zur Berechnung der Modulnote
    double berechneModulnote() {
        double gewichteteSumme = 0;
        double gesamtgewichtung = 0;
        for (size_t i = 0; i < noten.size(); i++) {
            gewichteteSumme += noten[i] * gewichtungen[i];
            gesamtgewichtung += gewichtungen[i];
        }
        // Nicht gerundet, nur eine Stelle nach dem Komma angezeigt.
        return static_cast<int>((gewichteteSumme / gesamtgewichtung) * 10) / 10.0;
    }
};

// Funktion zur Zuordnung der Bachelornote zu einer Wortnote
string wortnote(double note) {
    if (note < 1.5) return "sehr gut";
    else if (note < 2.5) return "gut";
    else if (note < 3.5) return "befriedigend";
    else if (note < 4.0) return "ausreichend";
    else return "nicht ausreichend";
}

int main() {
    // Erstellen von Modulen und Eintragen der Daten
    Modul modul1, modul2;
    modul1.noten = {2.7, 2.3, 3.7, 2.0, 3.7};
    modul1.gewichtungen = {5, 5, 8, 3, 3};
    modul2.noten = {3.0, 2.3};
    modul2.gewichtungen = {10, 30};

    // Berechnung der Modulnoten
    double modul1Note = modul1.berechneModulnote();
    double modul2Note = modul2.berechneModulnote();

    // Berechnung der Bachelornote
    double gesamtgewichtung = 24 + 40; // Gesamtgewichtungen der Module, beispielhaft
    double bachelornote = (modul1Note * 24 + modul2Note * 40) / gesamtgewichtung;
    bachelornote = static_cast<int>(bachelornote * 10) / 10.0; // Eine Stelle nach dem Komma ohne Rundung

    cout << fixed << setprecision(1); // Anzeigen nur einer Stelle nach dem Komma
    cout << "Bachelornote: " << bachelornote << " -> " << wortnote(bachelornote) << endl;

    return 0;
}


Dieses Programm führt die folgenden Schritte durch:

1. Definiert eine Klasse Modul, die Noten und ihre Gewichtungen speichert.
2. Implementiert eine Methode innerhalb der Klasse, um die Modulnote zu berechnen.
3. Berechnet die Bachelornote als gewichteten Durchschnitt der Modulnoten.
4. Gibt die Bachelornote zusammen mit der entsprechenden Wortnote aus.
Avatar von 4,6 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community