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
-
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?