Verbesserung der Klasse in GradeBook



  • Hallo , könnte mir jemand helfen wie ich das mit dem string lösen kann?

    Die Elementfunktion displayMessage der Klasse GradeBook schreibt mit Hilfe von cout direkt in das Konsolenfenster.
    Um flexibler einsetzbar zu sein, sollte eine Klasse grundsätzlich keine direkten Ausgaben verursachen, sondern
    dies sollte immer nur im Anwendungsprogramm (main) geschehen.
     Ersetzen Sie die Elementfunktion displayMessage durch eine Elementfunktion message, die keine Konsolenausgabe
    (cout) verwendet, sondern den gewünschten Text als string zurückgibt und so zusammen
    mit dem ebenfalls geänderten main die gleiche Ausgabe wie unter dem letzten Punkt von Aufgabe 1a beschrieben
    erzeugt.
     Hinweis: Ein String-Literal wie "Notenliste fuer die Vorlesung" und der von getCourseName
    zurückgegebene string können mit einem Additionsoperator + zu einem neuen string zusammengefügt
    werden.

    #include<iostream>

    #include "GradeBook.h"

    using namespace std;

    //constructor with parameters for CourseName and InstructorName

    GradeBook::GradeBook(string cName, string instruName)

    {

    setCourseName(cName);
    
    setInstructorName(instruName);
    

    }

    //set function for CourseName

    void GradeBook::setCourseName(string cName)

    {

    courseName = cName;
    

    }

    //get function for CourseName

    string GradeBook::getCourseName()

    {

    return courseName;
    

    }

    //set function for InstructorName

    void GradeBook::setInstructorName(string instruName)

    {

    insName = instruName;
    

    }

    //get function for InstructorName

    string GradeBook::getInstructorName()

    {

    return insName;
    

    }

    //Modify function for displayMessage

    void GradeBook::displayMessage()

    {

    cout << "Notenliste fuer die Vorlesung " << getCourseName() << "."
    
    	<< " " << "\nDer Kurs wird gehalten von: " << getInstructorName() << endl;
    

    }

    und einmal die main#include <iostream>
    #include "GradeBook.h" // include definition of class GradeBook
    using namespace std;

    // function main begins program execution

    int main()
    {
    /* create the object for GradeBook with Course name and Instructor name*/

    GradeBook gradeBook1 { "CS101 Introduction to C++ Programming"};
    GradeBook gradeBook2 { "CS102 Data Structures in C++" };
    
    // display initial value of courseName for each GradeBook
    cout << "gradeBook1 created for course: " << gradeBook1.getCourseName()
    	<< "\ngradeBook2 created for course: " << gradeBook2.getCourseName()
    	<< endl;
    
    
    GradeBook gB("Programmieren", "Prof Herr Weber");
    
    gB.displayMessage();
    
    return 0;
    

    } // end main



  • @isaanu92

    Hallo , könnte mir jemand helfen wie ich das mit dem string lösen kann?

    Nein. Du hast nichts selber versucht.



  • Du hast doch schon Methoden, die zB Kursname oder Instruktorname zurückgeben ... wo ist jetzt das Problem, das mit der Message analog zu machen?


Anmelden zum Antworten