Erweiterung der Klasse GradeBook



  • Hallo, leider hänge ich an dieser Aufgabe und komme nicht voran.
    Ich verstehe nicht ganz, wie ich eine Klasse in der Main ausgeben kann, da ich die funktion display message ausgeben möchte , aber nicht weiß wie.

    ich danke schon mal im voraus für eure hilfe

    1a Erweiterung der Klasse GradeBook
    Erweitern Sie die Klasse GradeBook
     Fügen Sie ein zweites Datenelement vom Typ std::string hinzu, das den Namen des Dozenten enthält.
     Stellen Sie eine set-Elementfunktion zur Verfügung, mit der der Dozentenname geändert werden kann, sowie
    eine get-Elementfunktion, die den Dozentennamen zurückgibt.
     Ändern sie den Konstruktor, so dass er zwei Parameter hat - einen für die Bezeichnung der Vorlesung und einen
    für den Dozentennamen.
     Ändern Sie die Elementfunktion displayMessage, so dass sie erst den Text Notenliste fuer die
    Vorlesung , dann den Vorlesungsnamen, dann den Text Die Vorlesung wird gehalten von:
    und dann den Dozentennamen ausgibt.
    Benutzen Sie die erweiterte Klasse in einem Anwendungsprogramm, das die neuen Eigenschaften der Klasse demonstriert.
    1b Verbesserung der Klasse GradeBook
    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.

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

    // constructor initializes courseName with string supplied as argument
    GradeBook::GradeBook(string name )
    {
    setCourseName(name); // call set function to initialize courseName
    } // end GradeBook constructor

    // function to set the course name
    void GradeBook::setCourseName(string name)
    {
    courseName = name; // store the course name in the object
    } // end function setCourseName

    // function to get the course name
    string GradeBook::getCourseName()
    {
    return courseName; // return object's courseName
    } // end function getCourseName

    // display a welcome message to the GradeBook user
    void GradeBook::displayMessage()
    {
    // call getCourseName to get the courseName
    cout << "Welcome to the grade book for\n" << getCourseName()
    << "!" << endl;
    } // end function displayMessage

    CourseTeacher::CourseTeacher(string name)
    {
    setTeacherName(name); // call set function to initialize courseName
    } // end GradeBook constructor

    // function to set the course name
    void CourseTeacher::setTeacherName(string name)
    {
    teacherName = name; // store the course name in the object
    } // end function setCourseName

    // function to get the course name
    string CourseTeacher::getTeacherName()
    {
    return teacherName; // return object's courseName
    } // end function getCourseName #pragma once

    #include <string> // class GradeBook uses C++ standard string class
    using namespace std;

    // GradeBook class definition
    class GradeBook
    {
    public:
    GradeBook(string); // constructor that initializes courseName
    void setCourseName(string); // function that sets the course name
    string getCourseName(); // function that gets the course name
    void displayMessage(); // function that displays a welcome message
    private:
    string courseName; // course name for this GradeBook
    }; // end class GradeBook

    class CourseTeacher
    {
    public:
    CourseTeacher(string); // constructor that initializes courseName
    void setTeacherName(string); // function that sets the course name
    string getTeacherName(); // function that gets the course name
    private:
    string teacherName;
    }; // end class GradeBook

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

    // function main begins program execution
    int main()
    {
    // create two GradeBook objects
    GradeBook gradeBook1("CS101 Introduction to C++ Programming");
    GradeBook gradeBook2("CS102 Data Structures in C++");
    CourseTeacher courseTeacher1("\nName Teacher for this course is : Rogers");
    CourseTeacher courseTeacher2("\nName Teacher for this course is : Marie-Georges");

    // display initial value of courseName for each GradeBook
    cout << "gradeBook1 created for course: " << gradeBook1.getCourseName() << courseTeacher1.getTeacherName()
    	<< "\ngradeBook2 created for course: " << gradeBook2.getCourseName() << courseTeacher2.getTeacherName()
    	<< endl;
    

    } // end main



  • @isaanu92 sagte in Erweiterung der Klasse GradeBook:

    Ich verstehe nicht ganz, wie ich eine Klasse in der Main ausgeben kann, da ich die funktion display message ausgeben möchte , aber nicht weiß wie

    Häh!? Sofern der bisherige Code von dir ist: genau das machst du doch mit getCourseName auch schon...



  • @isaanu92 sagte in Erweiterung der Klasse GradeBook:
    gradeBook1.displayMessage();


Log in to reply