Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Задание массивов, вывод их на печать и вычисление вспомогательных выражений http://www.cyberforum.ru/cpp-beginners/thread1139213.html
Здравствуйте помогите пожалуйста написать программу. Заданы 3 массива случайных вещественных чисел, определённой размерности A, B, C Необходимо вычислить значение М при помощи вычисления вспомогательных функций. Задание массивов, вывод их на печать и вычисление вспомогательных выражений оформить в виде отдельных функций. Выводить на экран промежуточные значения. (идёт перебор элементов матриц...
C++ Работа с многострочным текстом(введенным из консоли) Имеется условие: С клавиатуры вводится многострочный текст. Оставить в тексте только первые вхождения каждой буквы, остальные – удалить. Вывести слова полученного текста, которые начинаются и заканчиваются одной и той же буквой. И работоспособный код: #include <stdio.h> #include <cstring> #define MAX 100 http://www.cyberforum.ru/cpp-beginners/thread1139192.html
С++ для совсем чайников C++
1. Лодка перемещается сначала по течению реки, а затем против течения. Вычислить путь пройденной лодкой, если её скорость в стоячей воде v км/ ч скорость течения vr км/ч, время движения по течению t1 ч, а против течения t2 ч. 2. Дано натуральное четырехзначное число. Определить, сколько раз в нем встречается максимальная цифра. 3. Найти максимальное из натуральных чисел, не превышающих 5000,...
Строку в вектор C++
vector<string> result; vector<string>::iterator it; string str; cin>>str; result.push_back(str); for (it = result.begin(); it!=result.end(); ++it) { cout<<*it<<endl;
C++ Составить программу-генератор простых чисел, в основу положить формулу 2*(x)^2 + 29 при 0 ≥ х ≥ 28 http://www.cyberforum.ru/cpp-beginners/thread1139170.html
Составить программу-генератор простых чисел, в основу положить формулу 2*(x)^2 + 29 при 0 ≥ х ≥ 28. Нужно ввести число до которого сгенерирует все простые числа положив в основу данную формулу. Я новичек поэтому написал какую то чепуху как сказал препод :( Много видел задач таких же в интернете, но везде что то не то. Буду очень благодарен :)
C++ Вычисление значений (С++) Помогите с вычислениями значений. Перепишите задание внутри сообщения подробнее

Показать сообщение отдельно
engine76
2 / 2 / 0
Регистрация: 04.03.2014
Сообщений: 65
04.04.2014, 22:06     Ошибка в коде?
Доброго времени суток. Учусь по книге Дейтелов "Как программировать на С++"...Перепечатал оттуда пример в компилятор, но он не компилируется. Код:

Заголовок 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>СБОЙ построения.

Что тут не так, вроде все проверил, ошибок не нашел.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru