2 / 2 / 1
Регистрация: 04.03.2014
Сообщений: 65
1

Ошибка в коде?

04.04.2014, 22:06. Показов 652. Ответов 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\testp roject\tst\testgrade.cpp(3): error C2628: недопустимый "GradeBook" с последующим "int" (возможно, отсутствует ";")
1>e:\in_game\my_models_projects\mvs_projects\testp roject\tst\testgrade.cpp(3): error C3874: возвращаемый тип "main" должен быть "int", а не "GradeBook"
1>e:\in_game\my_models_projects\mvs_projects\testp roject\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\testp roject\tst\gradebook.cpp(7): error C2533: GradeBook::{ctor}: конструкторы не разрешены для возвращаемого типа
1> Создание кода...
1>
1>СБОЙ построения.

Что тут не так, вроде все проверил, ошибок не нашел.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2014, 22:06
Ответы с готовыми решениями:

Ошибка в коде взаимодействия клиента и сервера на основе протокола TCP/IP (ошибка в коде)
Задание: Осуществить взаимодействие клиента и сервера на основе протокола TCP/IP. Реализовать...

Ошибка с графикой в приложении Windows form (ошибка не в коде!)
Всем доброго времени суток! Написал программу в windows form. Несколько раз скомпилировал и все...

Ошибка в коде CS0649. Не понятно почему выдает данную ошибку.Также ошибка в форме со словом ref
Код Класса using System; using System.Collections.Generic; using System.Linq; using...

Ошибки в коде Qt - ошибка: undefined reference to `qMain(int, char**)'; ошибка: error: ld returned 1 exit status
Здравствуйте, есть проект в нем 2 ошибки, не очень понимаю как их можно решить. Помогите, буду...

1
Модератор
Эксперт С++
12760 / 10222 / 6142
Регистрация: 18.12.2011
Сообщений: 27,370
04.04.2014, 22:16 2
А Вас не учили ставить ; в конце объявления класса?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.04.2014, 22:16
Помогаю со студенческими работами здесь

Ошибка в коде (Ошибка сегментирования (core dumped)
Добрый день. Подскажите пожалуйста, где ошибка в коде? char ch; string s; ...

Ошибка в коде и ошибка HTTP 400
Здарова всем, у меня тут проблема случилась, я только начинаю программировать. Выдает ошибку HTTP...

Ошибка в коде , ошибка 200
Всем привет, помогите пожалуйста, я новичек в Паскале, вот программа, суть её переводить любое...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru