fig3.15
GradeBook.h
#pragma once
#include<string>
class GradeBook
{
public:
explicit GradeBook(std::string);
void setCourseName(std::string);
std::string getCourseName() const;
void displayMessage() const;
private:
std::string courseName;
};
GradeBook.cpp
#include<iostream>
#include"GradeBook.h"
using namespace std;
GradeBook::GradeBook(string name)
{
setCourseName(name);
}
void GradeBook::setCourseName(string name)
{
if (name.size() <= 25)
courseName = name;
if (name.size() > 25)
{
courseName = name.substr(0, 25);
cerr << "Name \"" << name << "\"exceeds maximum length (25).\n"
<< "Limiting courseName to first 25 characters.\n" << endl;
}
}
string GradeBook::getCourseName() const
{
return courseName;
}
void GradeBook::displayMessage() const
{
cout << "Welcome to the grade book for\n" << getCourseName()
<< "!" << endl;
}
fig03_17.cpp
#include<iostream>
#include"GradeBook.h"
using namespace std;
int main()
{
GradeBook gradeBook1("CS101 Introduction to programming in c++");
GradeBook gradeBook2("CS102 C++ Data Structures");
cout << "gradeBook1's initial course name is: "
<< gradeBook1.getCourseName()
<< "\ngradeBook2's initial course name is: "
<< gradeBook2.getCourseName() << endl;
gradeBook1.setCourseName("CS101 C++ programming");
cout << "\ngradeBook1's course name is: "
<< gradeBook1.getCourseName()
<< "\ngradeBook2's course name is: "
<< gradeBook2.getCourseName() << endl;
system("pause");
return 0;
}