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

Класс Студент - C++

Восстановить пароль Регистрация
 
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
24.04.2013, 18:57     Класс Студент #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
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
#include <iostream>
#include <conio.h>
using namespace std;
 
//базовый класс "студент"
class CStudent
{ protected:
   char m_Fio[80];//ФИО
   int m_Year;//год поступления
   int m_Course;//курс
   int m_Number;//номер
   int m_Stipendia;//стипендия
   int m_Ocenki;//оценки
  public:
   CStudent();
   virtual ~ CStudent(){}
   virtual void Display();//вывод описания студента
  };
  
 CStudent::CStudent()
  { //ввод года поступления, ФИО, курс, номер группы, стипендия, оценки
   cout << "\nGod postuplenija:"; cin >> m_Year;
   cout << "\nFIO:"; cin.get();
          cin.getline(m_Fio,80);
   cout << "\nKurs:"; cin >> m_Course;
   cout << "\nNomer grupy:"; cin >> m_Number;
   cout << "\nStipendija:"; cin >> m_Stipendia;
   cout << "\nOcenki:"; cin >> m_Ocenki;
  }
  void CStudent:: Display()
    { cout << "\nStudent:"; 
      cout << "\nFIO:"<< m_Fio;
      cout << "\nGod postuplenija:" << m_Year;
      cout << "\nKurs:" << m_Course;
      cout << "\nNomer grupy:" << m_Number;
      cout << "\nStipendija:" << m_Stipendia;
      cout << "\nOcenki:" << m_Ocenki;
    }
    
  //производный класс "студент-общественник"  
  class CObshestvennik : public  CStudent
   { protected:
       char m_Work[80]; //выполняемая работа 
       int m_Procent; //процент надбавки к стипендии
     public:
       CObshestvennik();
       virtual ~ CObshestvennik(){}
       virtual void Display(); //вывод описания студента
    };
    
  CObshestvennik::CObshestvennik()
  { //Ввод выволняемой работы, процента надбавки к стипендии
   cout << "\nVjypolnjaemaja rabota*: "; cin>>m_Work;
   cout << "\nProcent k nadbawki k stependii: "; cin>>m_Procent;
   }     
 void CObshestvennik::Display()
  {cout << "\nStudent: ";
   cout << "\nVjypolnjaemaja rabota*: " << m_Work << " ";
   cout << "\nProcent k nadbawki k stependii: " << m_Procent << "\n";
  }
    
 // производный класс "студент-спортсмен" 
  class CSportsmen : public  CStudent
   { protected:
      char m_Sport[80]; //спорт
      int m_Procent; //процент надбавки к стипендии
     public:
       CSportsmen();
       virtual ~ CSportsmen(){}
       virtual void Display();//вывод описания студента
    };
    
  CSportsmen::CSportsmen():CStudent()
  { //ввод вида спорта
   cout << "\nVid sporta*: "; cin >>m_Sport;
   }     
 void CSportsmen::Display()
 { cout << "\nStudent:  ";
   cout << "Vid sporta: "<< m_Sport << " ";
   cout << "\nProcent k nadbawki k stependii: " << m_Procent << "\n";
  }  
 
int main()
{ int nMenu, flag = 1, kol;
  int i = 0; //индекс нового студента
  CStudent* p[100];
  cout <<"\nStudent: ";cin >> kol;
  while(i < kol && flag)
   { // вывод пунктов меню
     cout<<"\nNovjy student. Vvedite: " << endl; 
     cout<<"1-dlja obschestvenika, 2-dlja sportsmena, 3- vjyhod\n"; 
      cin >> nMenu;
     switch (nMenu)
      { case 1 : p[i++] = new CObshestvennik(); break;
        case 2 : p[i++] = new CSportsmen(); break;
        default : flag = 0; break;
      }  
    }
  // вывод описания студента
  for (int id = 0; id < kol; id++)
   { p[id]->Display();
     delete p[id];
    }
  getch();  
 }
Пмогите пожалуйста в программе реализовать возможность записи объектов в файл и чтения объектов из файла. Осуществлять контроль состояния потоков. В случае возникновения ошибок потоков генерировать и обрабатывать исключительные ситуации.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
27.04.2013, 17:37  [ТС]     Класс Студент #2
помогите плиз
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
27.04.2013, 17:41     Класс Студент #3
shmat_ru, необходимо перегрузить операторы << и >>

Вот пример, как это делается:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// перегружаем оператор вывода, функция принимает в качестве параметров ссылку
// на std::ostream и константную ссылку на объект класса FinalExam
ostream & operator<< (ostream &out, const FinalExam &fe)
{
    out << fe.getMark() << " " << fe.getDay() << " " << fe.getMonth() << " "
        << fe.getYear() << endl;
    return out; // возвращаем сформированный поток
}
 
// перегружаем оператор ввода, функция принимает в качестве параметров ссылку
// на std::istream и ссылку на объект класса FinalExam
istream & operator>> (istream &ist, FinalExam &fe)
{
    int mark, day, year;
    string month;
    ist >> mark >> day >> month >> year;
    fe.setMark(mark);
    fe.setDay(day);
    fe.setMonth(month);
    fe.setYear(year);
    return ist; // возвращаем поток
}
Чуть хуже - сделать функцию дружественной к классу и даже не объявлять get-set методы. Хотя, по-хорошему, надо бы.
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
27.04.2013, 18:34  [ТС]     Класс Студент #4
MrGluck, Вот как у меня получается,но ошибок дофига

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
107
#include <iostream>
#include <conio.h>
using namespace std;
 
//ГЎГ*çîâûé ГЄГ«Г*Г±Г± "ñòóäåГ*ГІ"
class CStudent
{ friend std:ostream & operator<< (ostream &out, const CStudent&)
  string protected:
   char m_Fio[80];//ÔÈÎ
   int setYear;//ãîä ïîñòóïëåГ*ГЁГї
   int setCourse;//êóðñ
   int setNumber;//Г*îìåð
   int setStipendia;//Г±ГІГЁГЇГҐГ*äèÿ
   int setOcenki;//îöåГ*ГЄГЁ
   return int
  public:
   CStudent();
   virtual ~ CStudent(){}
   virtual void Display();//âûâîä îïèñГ*Г*ГЁГї ñòóäåГ*ГІГ*
  };
  
 std:ostream & operator<< (ostream &out, const CStudent&)
  { //ââîä ãîäГ* ïîñòóïëåГ*ГЁГї, ÔÈÎ, êóðñ, Г*îìåð ãðóïïû, Г±ГІГЁГЇГҐГ*äèÿ, îöåГ*ГЄГЁ
   return out << "\nGod postuplenija:"; cin >> m_Year;
              << "\nFIO:"; cin.get();
               cin.getline(m_Fio,80);
              << "\nKurs:"; cin >> m_Course;
              << "\nNomer grupy:"; cin >> m_Number;
              << "\nStipendija:"; cin >> m_Stipendia;
              << "\nOcenki:"; cin >> m_Ocenki;
  }
  std:ostream & operator<< (ostream &out, const CStudent&)
    {  return out  << "\nStudent:"; 
           << "\nFIO:"<< m_Fio;
           << "\nGod postuplenija:" << m_Year;
           << "\nKurs:" << m_Course;
           << "\nNomer grupy:" << m_Number;
           << "\nStipendija:" << m_Stipendia;
           << "\nOcenki:" << m_Ocenki;
    }
    
  //ïðîèçâîäГ*ûé ГЄГ«Г*Г±Г± "ñòóäåГ*ГІ-îáùåñòâåГ*Г*ГЁГЄ"  
  class CObshestvennik : public  CStudent
   { protected:
       char m_Work[80]; //âûïîëГ*ГїГҐГ¬Г*Гї Г°Г*áîòГ* 
       int m_Procent; //ïðîöåГ*ГІ Г*Г*äáГ*ГўГЄГЁ ГЄ Г±ГІГЁГЇГҐГ*äèè
     public:
       CObshestvennik();
       virtual ~ CObshestvennik(){}
       virtual void Display(); //âûâîä îïèñГ*Г*ГЁГї ñòóäåГ*ГІГ*
    };
    
  std:ostream & operator<< (ostream &out, const CStudent&)
  { //Ââîä âûâîëГ*ÿåìîé Г°Г*áîòû, ïðîöåГ*ГІГ* Г*Г*äáГ*ГўГЄГЁ ГЄ Г±ГІГЁГЇГҐГ*äèè
   out << "\nVjypolnjaemaja rabota*: "; cin>>m_Work;
   out << "\nProcent k nadbawki k stependii: "; cin>>m_Procent;
   }     
  std:ostream & operator<< (ostream &out, const CStudent&)
  {out<< "\nStudent: ";
   out << "\nVjypolnjaemaja rabota*: " << m_Work << " ";
   out << "\nProcent k nadbawki k stependii: " << m_Procent << "\n";
  }
    
 // ïðîèçâîäГ*ûé ГЄГ«Г*Г±Г± "ñòóäåГ*ГІ-ñïîðòñìåГ*" 
  class CSportsmen : public  CStudent
   { protected:
      char m_Sport[80]; //ñïîðò
      int m_Procent; //ïðîöåГ*ГІ Г*Г*äáГ*ГўГЄГЁ ГЄ Г±ГІГЁГЇГҐГ*äèè
     public:
       CSportsmen();
       virtual ~ CSportsmen(){}
       virtual void Display();//âûâîä îïèñГ*Г*ГЁГї ñòóäåГ*ГІГ*
    };
    
  CSportsmen::CSportsmen():CStudent()
  { //ââîä ГўГЁГ¤Г* ñïîðòГ*
   out << "\nVid sporta*: "; cin >>m_Sport;
   }     
 std:ostream & operator<< (ostream &out, const CStudent&)
 { out << "\nStudent:  ";
   out << "Vid sporta: "<< m_Sport << " ";
   out << "\nProcent k nadbawki k stependii: " << m_Procent << "\n";
  }  
 
int main()
{ int nMenu, flag = 1, kol;
  int i = 0; //ГЁГ*äåêñ Г*îâîãî ñòóäåГ*ГІГ*
  CStudent* p[100];
 out <<"\nStudent: ";cin >> kol;
  while(i < kol && flag)
   { // âûâîä ГЇГіГ*êòîâ ìåГ*Гѕ
     out<<"\nNovjy student. Vvedite: " << endl; 
     out<<"1-dlja obschestvenika, 2-dlja sportsmena, 3- vjyhod\n"; 
      cin >> nMenu;
     switch (nMenu)
      { case 1 : p[i++] = new CObshestvennik(); break;
        case 2 : p[i++] = new CSportsmen(); break;
        default : flag = 0; break;
      }  
    }
  // âûâîä îïèñГ*Г*ГЁГї ñòóäåГ*ГІГ*
  for (int id = 0; id < kol; id++)
   { p[id]->Display();
     delete p[id];
    }
  set:cin.getch();  
 }
 Комментарий модератора 
Используйте тэги подсветки кода для удобства восприятия ваших сообщений другими пользователями.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
27.04.2013, 19:20     Класс Студент #5
shmat_ru, мб все-таки потрудитесь оформить все нормально? Или вы думаете, что ваш код легко читается?
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
27.04.2013, 19:45  [ТС]     Класс Студент #6
MrGluck, Давай на ты я не старый.Я незнаю ,что тут больше надо делать,чтобы программа правельно заработала,если поможешь буду очень тебе благадарен.Я на MinGW Developer Studio кстати всё делаю
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
27.04.2013, 20:06     Класс Студент #7
shmat_ru, пока вы не заключите код в теги CPP [CPP ] [/CPP ], сделаете нормальную кодировку, расставите переносы, в ваш код смотреть страшно. Вы хотите, чтобы вам помогли - отнеситесь к людям с уважением, далеко не у многих есть желание проделывать дополнительные лишние усилия и всматриваться в сырой текст.

Добавлено через 1 минуту
shmat_ru, на этом форуме на ты лишь или с друзьями, или с кем нормально общаюсь, или имею общие интересы. Вы к ним не относитесь.
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
28.04.2013, 04:50  [ТС]     Класс Студент #8
MrGluck, Кодировкой не я,я так понимаю должен заниматся,а создатели сайта?А насчёт программы поможете?
cyberbrain1000
 Аватар для cyberbrain1000
23 / 23 / 3
Регистрация: 15.04.2013
Сообщений: 62
28.04.2013, 11:49     Класс Студент #9
добавил ввод и вывод
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
#include <iostream>
#include <cstdlib>
#include <string>
#include <stdexcept>
#include <vector>
#include <fstream>
using namespace std;
 
//базовый класс "студент"
class CStudent
{
protected:
    char m_Fio[30];//ФИО
    int m_Year;//год поступления
    int m_Course;//курс
    int m_Number;//номер
    double m_Stipendia;//стипендия
    double m_Ocenki;//оценки
    std::ostream& CommonWriteTextStream(std::ofstream&, std::string const&, char) const; // Запись в текстовый поток полей CStudent
    template<typename T>
    void ShiftConsoleField(std::string const&, T& field); // Ввод поля с консоли с проверкой ошибок
    virtual std::ifstream& ReadExtendedFields(std::ifstream& ifst, CStudent* const){return ifst;};
public:
    virtual void WriteConsole()const; //вывод описания студента в консоль
    virtual void ReadConsole(); // Чтение студента с консоли
    virtual void WriteTextStream(std::string const&) const; // Вывод студента в файл
    std::ifstream& ReadTextStream(std::ifstream&, CStudent* const);// Ввод студента из файла
};
 
typedef std::vector<CStudent*> psvector;
 
void CStudent::ReadConsole()
{
   ShiftConsoleField("\nGod postuplenija:", m_Year);
   cout << "\nFIO:"; cin.get();
    cin.getline(m_Fio, sizeof(m_Fio));
   ShiftConsoleField("\nKurs:", m_Course);
   ShiftConsoleField("\nNomer grupy:", m_Number);
   ShiftConsoleField("\nStipendija:", m_Stipendia);
   ShiftConsoleField("\nOcenki:", m_Ocenki);
}
 
void CStudent:: WriteConsole()const
{
      cout << "\nStudent:";
      cout << "\nFIO:"<< m_Fio;
      cout << "\nGod postuplenija:" << m_Year;
      cout << "\nKurs:" << m_Course;
      cout << "\nNomer grupy:" << m_Number;
      cout << "\nStipendija:" << m_Stipendia;
      cout << "\nOcenki:" << m_Ocenki;
}
 
void CStudent::WriteTextStream(std::string const& textfilepath) const
{
    std::ofstream ofst;
    CommonWriteTextStream(ofst, textfilepath, 'c');
    ofst << "\n";
    ofst.clear();
    ofst.close();
}
 
std::ostream& CStudent::CommonWriteTextStream(std::ofstream& ofst, std::string const& textfilepath, char type = 'c') const
{
    ofst.open(textfilepath.c_str(), std::ios::app);
    if(!ofst.is_open())
        throw std::runtime_error("CommonWriteTextStream: unable to open output file\n");
    return ofst << type << '\n' << m_Fio<< '\n' << m_Year << '\n' << m_Course << '\n'
        << m_Number << '\n' << m_Stipendia << '\n' << m_Ocenki << '\n';
}
 
std::ifstream& CStudent::ReadTextStream(std::ifstream& ifst, CStudent* const pstudent)
{
    ifst.ignore(100, '\n');
    ifst.getline(pstudent->m_Fio, sizeof(pstudent->m_Fio));
    ifst >> pstudent->m_Year;
    ifst >> pstudent->m_Course;
    ifst >> pstudent->m_Number;
    ifst >> pstudent->m_Stipendia;
    ifst >> pstudent->m_Ocenki;
    ReadExtendedFields(ifst, pstudent);
    if(!ifst)
        throw std::runtime_error("CommonReadTextStream: error reading file\n");
    return ifst;
}
 
template<typename T>
void CStudent::ShiftConsoleField(std::string const& message, T& field)
{
    do
    {
        std::cout << message << '\n';
        std::cin.clear();
        std::cin.sync();
        std::cin >> field;
    }
    while(!std::cin);
}
 
//производный класс "студент-общественник"
class CObshestvennik : public  CStudent
{
     protected:
       char m_Work[40]; //выполняемая работа
       double m_Procent; //процент надбавки к стипендии
       virtual std::ifstream& ReadExtendedFields(std::ifstream&, CStudent* const);
     public:
        virtual void ReadConsole();
        virtual void WriteConsole() const; //вывод описания студента
        virtual void WriteTextStream(std::string const&) const; // Вывод студента в файл
};
 
void CObshestvennik::ReadConsole()
{
    CStudent::ReadConsole();
    cout << "\nVjypolnjaemaja rabota*: ";
    std::cin.clear();
    std::cin.sync();
    std::cin.getline(m_Work, sizeof(m_Work));
    ShiftConsoleField("\nProcent k nadbawki k stependii: ", m_Procent);
}
 
void CObshestvennik::WriteConsole() const
{
    CStudent::WriteConsole();
    cout << "\nVjypolnjaemaja rabota*: " << m_Work << " ";
    cout << "\nProcent k nadbawki k stependii: " << m_Procent << "\n";
}
 
void CObshestvennik::WriteTextStream(std::string const& textfilepath) const
{
    std::ofstream ofst;
    CommonWriteTextStream(ofst, textfilepath, 'o');
    ofst << m_Work << '\n' << m_Procent << "\n\n";
    ofst.clear();
    ofst.close();
}
 
std::ifstream& CObshestvennik::ReadExtendedFields(std::ifstream& ifst, CStudent* const pstudent)
{
    CObshestvennik* const postudent = dynamic_cast<CObshestvennik*>(pstudent);
    if(postudent)
    {
        ifst.ignore(100, '\n');
        ifst.getline(postudent->m_Work, sizeof(postudent->m_Work));
        ifst >> postudent->m_Procent;
    }
    else
        throw std::runtime_error("CObshestvennik::ReadExtendedFields: !postudent");
    return ifst;
}
 
 // производный класс "студент-спортсмен"
class CSportsmen : public  CStudent
{
    protected:
      char m_Sport[40]; //спорт
      double m_Procent; //процент надбавки к стипендии
      virtual std::ifstream& ReadExtendedFields(std::ifstream&, CStudent* const);
     public:
        virtual void ReadConsole();
        virtual void WriteConsole()const;//вывод описания студента
        virtual void WriteTextStream(std::string const&) const; // Вывод студента в файл
};
 
void CSportsmen::ReadConsole()
{
    CStudent::ReadConsole();
    cout << "\nVid sporta*: ";
    std::cin.clear();
    std::cin.sync();
    std::cin.getline(m_Sport, sizeof(m_Sport));
    ShiftConsoleField("\nProcent k nadbawki k stependii: ", m_Procent);
}
 
void CSportsmen::WriteConsole()const
{
    CStudent::WriteConsole();
    cout << "\nVid sporta: "<< m_Sport << " ";
    cout << "\nProcent k nadbawki k stependii: " << m_Procent << "\n";
}
 
void CSportsmen::WriteTextStream(std::string const& textfilepath) const
{
    std::ofstream ofst;
    CommonWriteTextStream(ofst, textfilepath, 's');
    ofst << m_Sport << '\n' << m_Procent << "\n\n";
    ofst.clear();
    ofst.close();
}
 
std::ifstream& CSportsmen::ReadExtendedFields(std::ifstream& ifst, CStudent* const pstudent)
{
    CSportsmen* const psportstudent = dynamic_cast<CSportsmen*>(pstudent);
    if(psportstudent)
    {
        ifst.ignore(100, '\n');
        ifst.getline(psportstudent->m_Sport, sizeof(psportstudent->m_Sport));
        ifst >> psportstudent->m_Procent;
    }
    else
        throw std::runtime_error("CSportsmen::ReadExtendedFields: !psportstudent");
    return ifst;
}
 
// Вводит вектор студентов из файла
psvector& FillVectorFromTextStream(std::string const& inputtextfilepath, psvector& vecp)
{
    std::ifstream ifst(inputtextfilepath);
    if(!ifst.is_open())
        throw std::runtime_error("ReadTextStream: Unable to open input file\n");
    char type;
    while(ifst >> type)
    {
        switch(type)
        {
            case 'o':
                vecp.push_back(new CObshestvennik);
                vecp.back()->ReadTextStream(ifst, vecp.back());
                break;
            case 's':
                vecp.push_back(new CSportsmen);
                vecp.back()->ReadTextStream(ifst, vecp.back());
                break;
            default:
                std::string s("ReadTextStream: unknown student type: ");
                throw std::runtime_error(s + type + '\n');
        }
    }
    ifst.close();
    return vecp;
}
 
int main()
{
    try
    {
        int nMenu = 0, count = 0, i = 0;
        psvector vecp;
        cout <<"\nCount: ";
        cin >> count;
        for(i = 0; i < count; ++i)
        {
            cout<<"\nVvedite tip studenta: " << endl;
            cout<<"1-dlja obschestvenika, 2-dlja sportsmena, 3- vjyhod\n";
            cin >> nMenu;
             switch (nMenu)
             {
                case 1 :
                    vecp.push_back(new CObshestvennik());
                    vecp.back()->ReadConsole();
                    break;
                case 2 :
                    vecp.push_back(new CSportsmen());
                    vecp.back()->ReadConsole();
                    break;
                case 3:
                    exit(0);
                    break;
                default:
                    std::cout << "Incorrect choice\n";
                    --i;
             }
        }
        std::string const textfilepath("students.txt");
        // вывод описания студента в файл
        for (i = 0; i < vecp.size(); i++)
        {
            vecp[i]->WriteTextStream(textfilepath);
        }
        for(i = 0; i < vecp.size(); ++i)
        {
            delete vecp[i];
            vecp[i] = 0;
        }
        vecp.resize(0);
        FillVectorFromTextStream(textfilepath, vecp);
        for(i = 0; i < vecp.size(); ++i)
        {
            vecp[i]->WriteConsole();
        }
    }
    catch(std::exception const& exc)
    {
        std::cerr << "main: exception: " << exc.what() << "\n\n";
    }
    system("pause");
    return 0;
 }
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
28.04.2013, 14:53  [ТС]     Класс Студент #10
cyberbrain1000, Cпосибо конечно за помощь,но всёравно у меня 4 ошибки выдаёт сейчас покажу какие,у меня если что MinGW Developer Studio 2.05 установлен.Я его отсюда скачивал http://soft.sibnet.ru/soft/10761-min...r-studio-2-05/
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
28.04.2013, 14:55  [ТС]     Класс Студент #11
Вот
Миниатюры
Класс Студент  
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
28.04.2013, 16:12  [ТС]     Класс Студент #12
cyberbrain1000, Можете пожалуйста исправить ошибки
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
28.04.2013, 17:34     Класс Студент #13
shmat_ru, добавить пустые конструкторы по-умолчанию, навроде:
C++
1
CSportsmen() {}
И сделать инициализацию в списке инициализации.
shmat_ru
1 / 1 / 0
Регистрация: 23.12.2012
Сообщений: 161
28.04.2013, 17:59  [ТС]     Класс Студент #14
MrGluck, Это CSportsmen() {} поставить в самом началеили или где про спортсмена речь идет?
cyberbrain1000
 Аватар для cyberbrain1000
23 / 23 / 3
Регистрация: 15.04.2013
Сообщений: 62
28.04.2013, 18:30     Класс Студент #15
наверно не может построить поток на основе строки и требует указатель на char. Строку 209 замени на это
std::ifstream ifst(inputtextfilepath.c_str());
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2013, 21:34     Класс Студент
Еще ссылки по теме:

C++ Описать класс студент
Создать расширенный класс СТУДЕНТ C++
Класс Студент (исправить ошибки) C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
28.04.2013, 21:34     Класс Студент #16
shmat_ru, надо в каждом классе в объявлении задать пустые конструкторы.

Например
C++
1
2
3
4
5
6
class A
{
    ...
    public:
    A() {}
};
Yandex
Объявления
28.04.2013, 21:34     Класс Студент
Ответ Создать тему
Опции темы

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