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

Классы.Заголовочные файлы - C++

Восстановить пароль Регистрация
 
VD17
 Аватар для VD17
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 17
16.03.2013, 22:14     Классы.Заголовочные файлы #1
Здравствуйте.Помогите найти ошибку.В программе.Вот код.
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
/* main.cpp */
#include <iostream>
#include <conio.h>
#include "Students.h"
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    // Создание объекта класса Student
    Students student;
    string name;
    string last_name;
    
    // Ввод имени с клавиатуры
    cout << "Name: ";
    getline(cin,name);
    // Ввод фамилии
    cout << "Last_name: ";
    getline(cin, last_name);
    // Сохранение имени и фамилии в объект класса Students
    student.set_name(name);
    student.set_last_name(last_name);
    // Оценки
    int score[5];
    // Сумма всех оценок
    int sum = 0;
    // Ввод промежуточных оценок
    for (int i = 0; i < 5; ++i) {
        cout << "Score " << i+1 << ": ";
        cin >> score[i];
        // суммирование
        sum += score[i];
    }
    // Сохраняем промежуточные оценки в объект класса Students
    student.set_scores(scores[]);
    // Считаем средний балл
    float average_ball = sum / 5.0;
    // Сохраняем средний балл в объекте класса Students
    syudent.set_average_ball(average_ball);
    // Выводим данные по студенту
    cout << " Average ball for " << student.get_name90 << " "
         << student.get_last_name() << " is "
         << student.get_average_ball() << endl;
         
             
    getch();
    return 0;
}
А это заголовочный файл.

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
/* students.h */
#include <string>
 
class Students  {
   public:
      void set_name(string student_name) // Установка имени студента
          {    name = student_name;   }
          string get_name() // Получение имени студента
          {   return name;   }
          void set_last_name(std::string student_last_name) // Установка фамилии студента
          {    last_name = student_last_name;   }
          string get_last_name() // Получение фамилии студента
          {   return last_name;  }
          void set_scores(int student_scores[])// Установка промежуточных оценок
          {
               for(int i = 0; i < 5; ++i)
               {   scores[i] = student_scores[i]; 
                 }
          }
          void set_average_ball(float ball) // Установка среднего балла
          {   average_ball = ball   }
          float get_average_ball() // Получение среднего бала
          {  return average_ball;  }
             private:
                      int scores[5]; // Промежуточные оценки
                     float average_ball;  // Средний балл
                     string name; // Имя
                     string last_name; // Фамилия 
};
Программа останавливается на #include "Students.h" и выводит в первой строке IOS C++ forbids declaration 'voidsets_scores' with no type. и еще много чего.Не смог понять в чем ошибка.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2013, 22:14     Классы.Заголовочные файлы
Посмотрите здесь:

Заголовочные файлы C++
g++ Заголовочные файлы C++
C++ Заголовочные файлы
классы и заголовочные файлы C++
Заголовочные файлы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
16.03.2013, 22:22     Классы.Заголовочные файлы #2
не экономне на строчках.
C++
1
2
3
4
void set_average_ball(float ball) // Установка среднего балла
{
    average_ball = ball; // тут у вас пропущена точка с запятой.
}
Перед каждой string в h файле нужно написать std::
Использование using namespace std; вредно.
У вас нет ни того, ни другого.


И лучше все ошибки сюда выкладывать. И с номерами строк, чтобы они соответствовали тому, что вы тут постите.
VD17
 Аватар для VD17
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 17
16.03.2013, 23:11  [ТС]     Классы.Заголовочные файлы #3
Так.вот:
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
/* students.h */
#include <string>
 
class Students  {
   public:
          // Установка имени студента
          void set_name(std::string student_name) 
          {    
               name = student_name;   
          }
          // Получение имени студента
          std::string get_name() 
          {  
                       return name;  
          }
          // Установка фамилии студента
          void set_last_name(std::string student_last_name)
          {    
               last_name = student_last_name;   
          }
          // Получение фамилии студента
          std::string get_last_name() 
          {   
              return last_name;  
          }
          // Установка промежуточных оценок
          void set_scores(int student_scores[])
          {
               for(int i = 0; i < 5; ++i)
               {   
                   scores[i] = student_scores[i]; 
               }
          }
          // Установка среднего балла
          void set_average_ball(float ball) 
          {   
              average_ball = ball;   
          }
          // Получение среднего бала
          float get_average_ball() 
          {  
                return average_ball;  
          }
             private:
                     // Промежуточные оценки
                     int scores[5]; 
                     // Средний балл
                     float average_ball;
                     // Имя  
                     std::string name;
                     // Фамилия  
                     std::string last_name; 
};
4 C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\main.cpp In file included from C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\main.cpp
15 C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\Students.h ISO C++ forbids declaration of `voidset_scores' with no type
C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\Students.h In member function `void Students::set_name(std::string)':
7 C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\Students.h expected `;' before '}' token
C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\Students.h In member function `void Students::set_last_name(std::string)':
11 C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\Students.h return-statement with a value, in function returning 'void'
C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\Students.h In member function `std::string Students::get_last_name()':
13 C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\Students.h `last_name' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\Students.h In member function `int Students::voidset_scores(int*)':
17 C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\Students.h `student_score' undeclared (first use this function)
C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\Students.h In member function `void Students::set_average_ball(float)':
20 C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\Students.h expected `;' before '}' token
C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\main.cpp In function `int main()':
36 C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\main.cpp 'class Students' has no member named 'set_scores'
36 C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\main.cpp `scores' undeclared (first use this function)
36 C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\main.cpp expected primary-expression before ']' token
40 C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\main.cpp `syudent' undeclared (first use this function)
42 C:\Users\*****\Documents\DEV C++\ДЛЯ ЧАЙНИКОВ\main.cpp 'class Students' has no member named 'get_name90'
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.03.2013, 00:09     Классы.Заголовочные файлы #4
В main(): 36)
C++
1
 student.set_scores(score);
40)
C++
1
student.set_average_ball(average_ball);
42)
C++
1
cout << " Average ball for " << student.get_name() << " "
VD17
 Аватар для VD17
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 17
17.03.2013, 09:29  [ТС]     Классы.Заголовочные файлы #5
Большое спасибо все заработало.

Добавлено через 9 часов 7 минут
Объясните пожалуйсто вот это:
C++
1
2
3
4
5
for (int i = 0; i < 5; ++i) {
        cout << "Score " << i+1 << ": ";
        cin >> score[i];
        // суммирование
        sum += score[i];
Как cout выводит 1 без использования "1 " или '\1'.И вообще не понятен этот цикл.Объясните пожалуйсто для чайников.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.03.2013, 12:36     Классы.Заголовочные файлы #6
Цитата Сообщение от VD17 Посмотреть сообщение
Как cout выводит 1 без использования "1 "
Вывод через cout << это форматируемый вывод, т.е. объект cout смотрит, какой тип данных находится справа от <<. Если int, то выводится целое число со знаком, если char, то выводится символ, если char*, то выводится строка в стиле С (должна заканчиваться '\0') и т.д.
Цитата Сообщение от VD17 Посмотреть сообщение
И вообще не понятен этот цикл.
Делается ввод оценок в массив: сначала выводтся номер оценки (индекс элемента массива, где будет находиться оценка, увеличенный на 1). Потом, по этому индексу, помещается введённая оценка. Введённая оценка добавляется в сумму оценок.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2013, 12:47     Классы.Заголовочные файлы
Еще ссылки по теме:

Заголовочные файлы (.h) C++
VS2012 классы, заголовочные файлы, ООП C++
C++ Заголовочные файлы .h, файлы исходного когда c/c++ и установление связи между ними

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

Или воспользуйтесь поиском по форуму:
VD17
 Аватар для VD17
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 17
17.03.2013, 12:47  [ТС]     Классы.Заголовочные файлы #7
Спасибо alsav22
Yandex
Объявления
17.03.2013, 12:47     Классы.Заголовочные файлы
Ответ Создать тему
Опции темы

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