Задача программы запрашивать и выводить фамилию преподавателя и название курса. Название курса определено заранее.
| Код | // task_3.11 // Демонстрация класса GradeBook после отделения // его интерфейса от реализации. #include <iostream> #include <string> using std::cout; using std::cin; using std::getline; using std::endl; using std::string;
#include "GradeBook.h" // включить определение класса GradeBook
// функция main начинает исполнение программы int main() { string nameOfTeacher; // строка для хранения фамилии преподавателя // создать объект GradeBook GradeBook myGradeBook( "CS101 Introduction to C++ Programming", "" ); // запросить фамилию преподавателя cout << "Please enter teacher name." << endl; getline( cin, nameOfTeacher ); // прочитать фамилию с пробелами myGradeBook.setTeacherName( nameOfTeacher ); // установить фамилию преподавателя cout << endl; // вывести значение courseName и teacherName myGradeBook.displayMessage(); return 0; // показывает успешное завершение } // конец функции main
|
| Код | // GradeBook.h // Определение класса GradeBook. Файл представляет собой открытый // интерфейс GradeBook, не раскрывая реализации элемент-функций // класса, которые определяются в GradeBook.cpp #include <string> // класс GradeBook использует стандартные строки using std::string;
// определение класса GradeBook class GradeBook { public: GradeBook( string, string ); // конструктор, инициализирующий courseName void setCourseName( string ); // установить courseName void setTeacherName( string ); // установить teacherName string getCourseName(); // получает название курса string getTeacherName(); // получает фамилию преподавателя void displayMessage(); // выводит сообщение приветствие private: string courseName; //название курса для данного GradeBook string teacherName; // фамилия преподавателя для данного GradeBook }; // конец класса GradeBook
|
| Код | // GradeBook.cpp // Определение элемент-функций GradeBook. Файл содержит // реализацию функций, прототипы которых объявлены в GradeBook2new.h #include <iostream> using std::cout; using std::endl;
#include "GradeBook.h" // включить определение класса GradeBook
// конструктор инициализирует courseName заданной строкой GradeBook::GradeBook( string name, string teacher ) { setCourseName( name ); // инициализировать вызовом set-функции setTeacherName( teacher ); // инициализировать вызовом set-функции } // конец конструктора GradeBook
// функция для установки названия курса void GradeBook::setCourseName( string name ) { courseName = name; // сохранить название курса в объекте } // конец функции setCourseName
// функция для установки фамилии преподавателя void GradeBook::setTeacherName( string teacher ) { teacherName = teacher; // сохранить название курса в объекте } // конец функции setTeacherName
// функция для получения названия курса string GradeBook::getCourseName() { return courseName; // возвратить courseName объекта } // конец функции getCourseName
// функция для получения фамилии преподавателя string GradeBook::getTeacherName() { return teacherName; // возвратить teacherName объекта } // конец функции getTeacherName
// вывести сообщение-приветствие пользователю GradeBook void GradeBook::displayMessage() { // вызвать getCourseName для получения courseName cout << "Welcome to the grade book for: " << getCourseName() << "\nThis course is presented by: " << getTeacherName() << "!" << endl; } // конец функции displayMessage
|
У меня при исполнении программы процесс намертво встает на этапе ввода фамилии преподавателя. При этом NetBeans IDE 8.0.2 не реагирует на нажатие Enter. Ошибка в коде или косяк IDE?
|