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 displayMessageCourseTeacher::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 GradeBookclass 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();