Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверьте код. 
V
    Опции темы
AliasVeter
Дата 10.5.2015, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 15.11.2012

Репутация: нет
Всего: нет



Задача программы запрашивать и выводить фамилию преподавателя и название курса. Название курса определено заранее.

Код

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


Это сообщение отредактировал(а) AliasVeter - 16.5.2015, 02:34
PM MAIL   Вверх
AliasVeter
Дата 15.5.2015, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 15.11.2012

Репутация: нет
Всего: нет



Смотрю никто не торопится проверять...
PM MAIL   Вверх
rudolfninja
Дата 15.5.2015, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

Репутация: 3
Всего: 6



Цитата(AliasVeter @  10.5.2015,  17:44 Найти цитируемый пост)
при компиляции процесс намертво встает на этапе ввода фамилии

А как вы при компиляции вводите фамилию?
Если ошибка при вводе фамилии, то надо искать в функции main. Судя по коду, у вас там все правильно. Попробуйте в другой IDE.
PM MAIL Skype   Вверх
AliasVeter
Дата 15.5.2015, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 15.11.2012

Репутация: нет
Всего: нет



Ввожу английской раскладкой. Спасибо за ответ.
PM MAIL   Вверх
rudolfninja
Дата 16.5.2015, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

Репутация: 3
Всего: 6



Цитата(AliasVeter @  15.5.2015,  21:16 Найти цитируемый пост)
Ввожу английской раскладкой

Тут более интересен процесс, как вы при компиляции программы можете вводить туда данные...не всем дано.
Попробуйте сменить IDE. 
PM MAIL Skype   Вверх
AliasVeter
Дата 16.5.2015, 02:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 15.11.2012

Репутация: нет
Всего: нет



А как туда можно вводить данные? getline считывает строку и присваивает ее значение строчной переменной. 
Я допустил неточность. Не при компиляции, а при исполнении программы. 

Это сообщение отредактировал(а) AliasVeter - 16.5.2015, 02:39
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.