0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 17
1

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

16.03.2013, 22:14. Показов 2231. Ответов 6
Метки нет (Все метки)

Здравствуйте.Помогите найти ошибку.В программе.Вот код.
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. и еще много чего.Не смог понять в чем ошибка.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2013, 22:14
Ответы с готовыми решениями:

Классы и заголовочные файлы
Было у меня два класса и всё в одном cpp-файле реализовано. Потом я решил что неплохо было их в...

VS2012 классы, заголовочные файлы, ООП
Написал хорошую программу, но всё в одном файле main.cpp. У меня есть около 12 классов, много...

Заголовочные файлы .h, файлы исходного когда c/c++ и установление связи между ними
Всем добрый вечер!) Относительно недавно стал изучать c/c++, хочу полюбопытствовать ,так как...

Работа в Visual Studio 2015 - как добавить файлы исходного кода и заголовочные файлы?
Приветствую всех! Столкнулся с тем, что решая задачи по книге Лафоре про графику, не смог добавить...

6
DU
1497 / 1143 / 165
Регистрация: 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; вредно.
У вас нет ни того, ни другого.


И лучше все ошибки сюда выкладывать. И с номерами строк, чтобы они соответствовали тому, что вы тут постите.
1
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'
0
5488 / 4883 / 831
Регистрация: 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() << " "
1
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'.И вообще не понятен этот цикл.Объясните пожалуйсто для чайников.
0
5488 / 4883 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
17.03.2013, 12:36 6
Цитата Сообщение от VD17 Посмотреть сообщение
Как cout выводит 1 без использования "1 "
Вывод через cout << это форматируемый вывод, т.е. объект cout смотрит, какой тип данных находится справа от <<. Если int, то выводится целое число со знаком, если char, то выводится символ, если char*, то выводится строка в стиле С (должна заканчиваться '\0') и т.д.
Цитата Сообщение от VD17 Посмотреть сообщение
И вообще не понятен этот цикл.
Делается ввод оценок в массив: сначала выводтся номер оценки (индекс элемента массива, где будет находиться оценка, увеличенный на 1). Потом, по этому индексу, помещается введённая оценка. Введённая оценка добавляется в сумму оценок.
1
0 / 0 / 0
Регистрация: 06.02.2013
Сообщений: 17
17.03.2013, 12:47  [ТС] 7
Спасибо alsav22
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.03.2013, 12:47
Помогаю со студенческими работами здесь

заголовочные файлы
За мое небольшое время знакомство с программированием в с++ накопилось немного вопросов с работой...

заголовочные файлы
Здравствуйте, хотел поупражняться с заголовочными файлами, но столкнулся с ... код целиком...

Заголовочные файлы
Добрый день. Вот такой вопрос. Пишу на Борланде. Не пойму как писать, если классы помещать в...

Заголовочные файлы
Всем добрый день! Пытался найти информацию по созданию заголовочных файлов, да не нашел. У меня...


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

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

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