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

Проблемы с классом GradeBook - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Метод простых итераций (для трехмерной матрицы) http://www.cyberforum.ru/cpp-beginners/thread363892.html
Привет всем. Помогите пожалуйста. Из корней системы уравнений выдает правильно только один,(( #include "stdafx.h" #include "iostream" #include "conio.h" using namespace std; int _tmain(int argc, _TCHAR* argv) {
C++ Лексический анализатор Написал программу, я надеюсь, лексического анализатора для конкретного куска программы. В программе я из текстового файла считывал текст кодируемой программы, потом с помощью функции fgetc() и условных операторов определял лексему, кодировал её целым числом и во второй текстовый файл записывал это число, пробелы и перенос строки учитывался. fgetc() возвращает int-значение символа, поэтому перед... http://www.cyberforum.ru/cpp-beginners/thread363888.html
Моя первая задача, ток с паскаля перешел, подкоректируйте плиз.. C++
#include <iostream> #include <stdlib.h> #include <locale.h> #include <Math.h> using namespace std; void main() { setlocale(LC_CTYPE,""); int k=1;int step=1; double e,sum,otv,x,a;
C++ Не работает прога. Помогите
#include <stdio.h> #include <conio.h> #include <math.h> #include <stdlib.h> float f1(float); float f2(float); float f3(float); float sub(float);
C++ решите задание http://www.cyberforum.ru/cpp-beginners/thread363855.html
do - while Организовать цикл, который принимает целые числа с клавиатуры и подсчитывает к-во неотрицательных чисел. Окончание цикла - ввод числа < -100.
C++ Заполнение массива случайными числами Доброго времени суток. Перейду сразу к сути: Надо построить массив из 5000 целых случайных чисел и отсортировать его сортировкой Шелла, я в С++ новичек, ещё толком в языке даже не разобрался, сортировку я нашел на форуме, а вот помогите с созданием такого массива, который будет заполнен случайными числами. И подскажите пожалуйста как вывести массив до и массив после на экран. подробнее

Показать сообщение отдельно
TBIKC
web dev
 Аватар для TBIKC
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
10.10.2011, 11:11     Проблемы с классом GradeBook
Помогите пожалуйста исправить ошибки
1> GradeBook.cpp
1>d:\projects\cpp\cpp\gradebook.h(8): error C2864: GradeBook::students: в пределах класса могут быть инициализированы только статические константные данные-члены целого типа
1>d:\projects\cpp\cpp\gradebook.h(22): error C2327: GradeBook::students: не является именем типа, статическим членом или перечислителем
1>d:\projects\cpp\cpp\gradebook.h(22): error C2065: students: необъявленный идентификатор
1>d:\projects\cpp\cpp\gradebook.cpp(10): error C2758: GradeBook::students: требуется инициализация в списке инициализации базовых классов и членов
1> d:\projects\cpp\cpp\gradebook.h(8): см. объявление "GradeBook::students"
1> CPP.cpp
1>d:\projects\cpp\cpp\gradebook.h(8): error C2864: GradeBook::students: в пределах класса могут быть инициализированы только статические константные данные-члены целого типа
1>d:\projects\cpp\cpp\gradebook.h(22): error C2327: GradeBook::students: не является именем типа, статическим членом или перечислителем
1>d:\projects\cpp\cpp\gradebook.h(22): error C2065: students: необъявленный идентификатор
1>d:\projects\cpp\cpp\cpp.cpp(11): error C2597: недопустимая ссылка на нестатический член "GradeBook::students"
1>d:\projects\cpp\cpp\cpp.cpp(11): error C2078: слишком много инициализаторов
1> Создание кода...
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========




Gradebook.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "locale.h"
#include <string>
using namespace std;
// Определение класса GradeBook
class GradeBook
{   
public:
        const 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; // Название курса для данного GradeBook
        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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include "stdafx.h"
#include <iostream>
#include <iomanip>
 
#include "GradeBook.h"
using namespace std;
 
// Вызываем конструктор
GradeBook::GradeBook(string name,const int gradesArray[])
{
    setCourseName(name);
    // Копировать оценки Из gradeArray в элемент данных grades
    for( int grade = 0; grade < students; grade++ )
        grades[grade] = gradesArray[grade];
 
}
 
void GradeBook::setCourseName(string name)
{
    if(name.length()<=25)
        courseName = name;
    else
    {
        courseName = name.substr(0,25);
        cout << "Название курса\"" << name << "\" не может содержать более 25 символов!\n" <<endl;
    }
}
 
string GradeBook::getCourseName()
{
    return courseName;
}
// Этот оператор вызывает getCourseName, чтобы получить название курса
void GradeBook::displayMessage()
{
    cout << "Добро пожаловать в GradeBook for , \n " << getCourseName() << "!" << endl;
}
void GradeBook::processGrades()
{
    // Вывести массив оценок
    outputGrades();
 
    cout << "Средняя оценка: "  << setprecision(2) << fixed << getAverage() << endl;
    cout << "Минимальная оценка: " << getMinimum() << endl;
    cout << "Максимальная оценка: " << getMaximum() << endl;
    // Диаграмма
    outputBarChart();
}
int GradeBook::getMinimum()
{
    int lowGrade = 100;
    for ( int grade = 0; grade < students; grade++ )
    {
        // Если текущая оценка меньше lowGrade, то присвоить её lowGrade
        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 << "Диаграмма оценок" << endl;
    // Хранят частоты для каждого из диапазонов по 10 оценкам
    const int frequencySize = 11;
    int frecuency[frequencySize] = {0};
    // Для каждой оценки увеличить соответствующую величину
    for ( int grade = 0; grade < frequencySize; grade++ )
        frecuency[grades[grade] / 10]++;
    // Для каждой частоты вывести столбец диаграммы
    for ( int count = 0; count < frequencySize; count++ )
    {
        // Вывести метки столбцов
        if(count == 0)
            cout << " 0-9: ";
        if(count == 100)
            cout << " 100: ";
        else 
            cout << count * 10 << "-" << (count *10) + 9 << " : ";
        // Напечатать столбец звёздочек
        for(int stars = 0; stars < frecuency[count]; stars++)
            cout << "*";
    }
}
void GradeBook::outputGrades()
{
    cout << "Оценки: \n\n" ;
    for ( int student = 0; student < students; student++ )
        cout << "Студенты " << setw(2) << student + 1 << " : " << setw(3) << grades[student] << endl;
}
Cpp.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include <iostream>
#include <iomanip>
 
#include "GradeBook.h"
using namespace std;
 
int main()
{   
    text();
    int gradesArray[ GradeBook::students ] = {87,68,94,100,83,78,85,91,76,87};
    GradeBook GB1("CS101 JUNIOR ",gradesArray);
    GB1.displayMessage();
    GB1.processGrades();
    system("PAUSE");
    return EXIT_SUCCESS;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru