Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
engine76
2 / 2 / 0
Регистрация: 04.03.2014
Сообщений: 65
#1

Ошибка в коде? - C++

04.04.2014, 22:06. Просмотров 242. Ответов 1
Метки нет (Все метки)

Доброго времени суток. Учусь по книге Дейтелов "Как программировать на С++"...Перепечатал оттуда пример в компилятор, но он не компилируется. Код:

Заголовок GradeBook.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <string>
using std::string;
 
class GradeBook {
public:
    const static int students = 10;
    GradeBook(string, const int[]);
    void setCourseName(string);
    string getCourseName();
    void displayMessage();
    void processGrades();
    int getMinimum();
    int getMaximum();
    double getAverage();
    void outputBarChart();
    void outputGrades();
private:
    string courseName;
    int grades[students];
}
Определения функций GradeBook.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream>
#include <iomanip>
using namespace std;
 
#include "GradeBook.h"
 
GradeBook::GradeBook(string name, const int gradesArray[]) {
    setCourseName(name);
    for(int grade = 0; grade < students; grade++)
        grades[grade] = gradesArray[grade];
}
void GradeBook::setCourseName(string name) {
    courseName = name;
}
string GradeBook::getCourseName() {
    return courseName;
}
void GradeBook::displayMessage() {
    cout << "Welcome to the grade book for\n" << getCourseName() << "!" << endl;
}
void GradeBook::processGrades() {
    outputGrades();
    cout << "\nClass average is " << setprecision(2) << fixed << getAverage() << endl;
    cout << "Lowest grade is " << getMinimum()
        << "\nHighest grade is " << getMaximum() << endl;
    outputBarChart();
}
int GradeBook::getMinimum() {
    int lowGrade = 100;
    for(int grade = 0; grade < students; grade++) {
        if(grades[grade] < lowGrade)
            lowGrade = grades[grade];
    }
    return lowGrade;
}
int GradeBook::getMaximum() {
    int highGrade = 0;
    for(int grade = 0; grade < students; grade++) {
        if(grades[grade] > highGrade)
            highGrade = grades[grade];
    }
    return highGrade;
}
double GradeBook::getAverage() {
    int total = 0;
    for(int grade = 0; grade < students; grade++)
        total += grades[grade];
    return static_cast<double>(total) / students;
}
void GradeBook::outputBarChart() {
    cout << "\nGrade distributoin: " << endl;
    const int frequencySize = 11;
    int frequency[frequencySize] = {0};
    for(int grade = 0; grade < students; grade++)
        frequency[grades[grade] / 10]++;
    for(int count = 0; count < frequencySize; count++) {
        if(count == 0)
            cout << " 0-9: ";
        else if(count == 10)
            cout << " 100: ";
        else
            cout << count * 10 << "-" << (count * 10) + 9 << ": ";
        for(int stars = 0; stars < frequency[count]; stars++) 
            cout << "*";
        cout << endl;
    }
}
void GradeBook::outputGrades() {
    cout << "\nThe grades are:\n\n";
    for(int student = 0; student < students; student++)
        cout << "Student " << setw(2) << student + 1 << ": "
        << setw(3) << grades[student] << endl;
}
Сама программа testGrade.cpp
C++
1
2
3
4
5
6
7
8
9
#include "GradeBook.h"
 
int main() {
    int gradesArray[GradeBook::students] = {87, 68, 94, 100, 83, 78, 85, 91, 76, 87};
    GradeBook myGradeBook("CS101 Introduction to C++ Programming", gradesArray);
    myGradeBook.displayMessage();
    myGradeBook.processGrades();
    return 0;
}

Компилятор пишет это:

1>e:\in_game\my_models_projects\mvs_projects\testproject\tst\testgrade.cpp(3): error C2628: недопустимый "GradeBook" с последующим "int" (возможно, отсутствует ";")
1>e:\in_game\my_models_projects\mvs_projects\testproject\tst\testgrade.cpp(3): error C3874: возвращаемый тип "main" должен быть "int", а не "GradeBook"
1>e:\in_game\my_models_projects\mvs_projects\testproject\tst\testgrade.cpp(8): error C2664: GradeBook::GradeBook(const GradeBook &): невозможно преобразовать параметр 1 из "int" в "const GradeBook &"
1> Причина: невозможно преобразовать "int" в "const GradeBook"
1> Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно
1> GradeBook.cpp
1>e:\in_game\my_models_projects\mvs_projects\testproject\tst\gradebook.cpp(7): error C2533: GradeBook::{ctor}: конструкторы не разрешены для возвращаемого типа
1> Создание кода...
1>
1>СБОЙ построения.

Что тут не так, вроде все проверил, ошибок не нашел.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2014, 22:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в коде? (C++):

Ошибка в коде (Ошибка сегментирования (core dumped) - C++
Добрый день. Подскажите пожалуйста, где ошибка в коде? char ch; string s; while ((ch = cin.get()) != '0' ) ...

В чём ошибка.В коде там где коментарий там ошибка поучается. - C++
#include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; class CMyString{ char *pStr; public: ...

Ошибка в коде - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &quot;math.h&quot; #ifdef _DEBUG #define new DEBUG_NEW #endif CWinApp theApp; ...

ОШибка в коде. - C++
#include &lt;iostream&gt; using namespace std; int main() { double sum=1.0; double term=0; double eps; int power=1; ...

Ошибка в коде - C++
Всем привет. Ниже дана программа для определения счастливого билета. Помогите понять,почему программа работает не правильно. #include...

ошибка в коде - C++
Я только начал изучать с++ , и вот уже проблемы, помогите разобраться в чём тут ошибка пожалуйста. ...

1
zss
Модератор
Эксперт С++
6629 / 6191 / 2048
Регистрация: 18.12.2011
Сообщений: 16,146
Завершенные тесты: 1
04.04.2014, 22:16 #2
А Вас не учили ставить ; в конце объявления класса?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2014, 22:16
Привет! Вот еще темы с ответами:

Ошибка в коде - C++
Помогите пожалуйста найти ошибку в коде!:help: ввести 10 целых чисел, вывести минимальную по абсолютной величине разницу между соседними...

Ошибка в коде - C++
template&lt;class T&gt; stack&lt;T&gt;::stack(int s) { v=p=new T; } почему нельзя выделять так память? ошибка.

Ошибка в коде - C++
Написал код для программы которая должна была определять количество подряд идущих единиц и выводить их индексы. Но код работает с ошибкой и...

Ошибка в коде - C++
Форумчане, подскажите где ошибка: #include&lt;conio.h&gt; #include&lt;iostream&gt; #include&lt;cmath&gt; #include&lt;cctype&gt; #include&lt;cstring&gt; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.