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

НУжно Поправить класс студент - C++

Восстановить пароль Регистрация
 
LordpYtel
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 5
27.10.2013, 15:19     НУжно Поправить класс студент #1
Есть код программы но выбрасывает ошибки на всех компиляторах, скажите в чем проблема. заранее спасибо.
Задача:
Создать класс студент, имеющий имя (указатель на строку), курс и идентификационный номер. Определить конструкторы, деструктор и функцию печати. Создать public-производный класс – студент-дипломник, имеющий тему диплома. Определить конструкторы по умолчанию и с разным числом параметров, деструкторы, функцию печати. Определить функции переназначения названия диплома и идентификационного номера.
Код:
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
#include <iostream>
#include <cstring>
 
using namespace std;
 
class Student
{
public:
    // default constructor
    Student();
    // constructor with params
    Student(const char *name, int course, int ID);
    // destructor
    ~Student();
    // display info
    virtual void ShowInfo() const;
protected:
    char *m_name;    // name
    int m_course;    // course
    int m_ID;        // ID
};
 
// default constructor
Student::Student()
{
    // default values
    m_name = NULL;
    m_course = 0;
    m_ID = 0;
}
 
// constructor with parameters
Student::Student(const char *name, int course, int ID)
{
    // set name
    if(name != NULL)
    {
        // memory allocation
        try
        {
            m_name = new char[strlen(name) + 1];
        }
        catch(...)
        {
            // error
            exit(0);
        } // end of try-catch
 
        strcpy(m_name, name);
    } // end of if
 
    // set course and ID
    if(course >= 1 && course <= 6)
    {
        m_course = course;
    } // end of if
    m_ID = ID;
}
 
// destructor
Student::~Student()
{
    // free memory
    if(m_name != NULL)
    {
        delete [] m_name;
    } // end of if
}
 
// show info
void Student::ShowInfo() const
{
    if(m_name != NULL)
    {
        cout << "Name: " << m_name << "\t" << "Course: " << m_course << "\t" << "ID: " << m_ID << endl;
    } // end of if
    else
    {
        // no name, nothing to do
        cout << "Student has no name" << endl;
    } // end of else
}
 
class DipStudent : public Student
{
public:
    // default
    DipStudent();
    // with params
    DipStudent(const char *name, int course, int ID);
    // and one more
    DipStudent(const char *name, int course, int ID, const char *theme);
    // destructor
    ~DipStudent();
    // set diploma theme
    void SetTheme(const char *theme);
    // set ID
    void SetID(int ID);
    // display info
    virtual void ShowInfo() const;
private:
    char *m_theme;    // diploma theme
};
// default constructor
DipStudent::DipStudent()
{
    // default value
    m_theme = NULL;
}
// with params
DipStudent::DipStudent(const char *name, int course, int ID)  : Student(name, course, ID)
{
    // default value
    m_theme = NULL;
}
// one more...
DipStudent::DipStudent(const char *name, int course, int ID, const char *theme) : Student(name, course, ID)
{
    // set theme
    if(theme != NULL)
    {
        try
        {
            m_theme = new char[strlen(theme) + 1];
        }
        catch(...)
        {
            // error
            exit(0);
        } // end of try-catch
 
        strcpy(m_theme, theme);
    } // end of if
}
// destructor
DipStudent::~DipStudent()
{
    // free memory
    if(m_theme != NULL)
    {
        delete [] m_theme;
    } // end of if
}
// set theme
void DipStudent::SetTheme(const char *theme)
{
    // free memory, allocate new block and copy new theme
    if(theme != NULL)
    {
        if(m_theme != NULL)
        {
            delete [] m_theme;
        } // end of if
 
        try
        {
            m_theme = new char[strlen(theme) + 1];
        }
        catch(...)
        {
            // error
            exit(0);
        } // end of try-catch
 
        strcpy(m_theme, theme);
    } // end of if
}
// set ID
void DipStudent::SetID(int ID)
{
    m_ID = ID;
}
 
// show info
void DipStudent::ShowInfo() const
{
    // same as in Student::ShowInfo()
    if((m_name != NULL) && (m_theme != NULL))
    {
        cout << "Name: " << m_name << "\t" << "Course: " << m_course << "\t" << "ID: " << m_ID << "\t" << "Diploma theme: " << m_theme << endl;
    } // end of if
    else
    {
        cout << "Student has no name or diploma theme" << endl;
    } // end of else
}
Добавлено через 7 минут
builder 6 выдает ошибку:
unresolved external`_main` referenced from C:\program files \borland\cbuilder6\lib\c0x32.obj
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GoldenChild
28 / 28 / 4
Регистрация: 12.06.2013
Сообщений: 65
27.10.2013, 15:24     НУжно Поправить класс студент #2
У вас только 1 файл в проекте? Ошибка по идее ругается на то, что у вас не обьявлена функция main(){}, которая должна быть в главном .cpp файле. Если так, то создайте index.cpp, обьявите в нем main(), и подключите файл с классом к нему.
LordpYtel
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 5
27.10.2013, 16:23  [ТС]     НУжно Поправить класс студент #3
Даже так не компилируется:
_________________________________________________
#include <iostream>
#include <cstring>

using namespace std;

int main()
{
class Student
{
public:
// default constructor
Student();
// constructor with params
Student(const char *name, int course, int ID);
// destructor
~Student();
// display info
virtual void ShowInfo() const;
protected:
char *m_name; // name
int m_course; // course
int m_ID; // ID
};

// default constructor
Student::Student()
{
// default values
m_name = NULL;
m_course = 0;
m_ID = 0;
}

// constructor with parameters
Student::Student(const char *name, int course, int ID)
{
// set name
if(name != NULL)
{
// memory allocation
try
{
m_name = new char[strlen(name) + 1];
}
catch(...)
{
// error
exit(0);
} // end of try-catch

strcpy(m_name, name);
} // end of if

// set course and ID
if(course >= 1 && course <= 6)
{
m_course = course;
} // end of if
m_ID = ID;
}

// destructor
Student::~Student()
{
// free memory
if(m_name != NULL)
{
delete [] m_name;
} // end of if
}

// show info
void Student::ShowInfo() const
{
if(m_name != NULL)
{
cout << "Name: " << m_name << "\t" << "Course: " << m_course << "\t" << "ID: " << m_ID << endl;
} // end of if
else
{
// no name, nothing to do
cout << "Student has no name" << endl;
} // end of else
}

class DipStudent : public Student
{
public:
// default
DipStudent();
// with params
DipStudent(const char *name, int course, int ID);
// and one more
DipStudent(const char *name, int course, int ID, const char *theme);
// destructor
~DipStudent();
// set diploma theme
void SetTheme(const char *theme);
// set ID
void SetID(int ID);
// display info
virtual void ShowInfo() const;
private:
char *m_theme; // diploma theme
};
// default constructor
DipStudent:ipStudent()
{
// default value
m_theme = NULL;
}
// with params
DipStudent:ipStudent(const char *name, int course, int ID) : Student(name, course, ID)
{
// default value
m_theme = NULL;
}
// one more...
DipStudent:ipStudent(const char *name, int course, int ID, const char *theme) : Student(name, course, ID)
{
// set theme
if(theme != NULL)
{
try
{
m_theme = new char[strlen(theme) + 1];
}
catch(...)
{
// error
exit(0);
} // end of try-catch

strcpy(m_theme, theme);
} // end of if
}
// destructor
DipStudent::~DipStudent()
{
// free memory
if(m_theme != NULL)
{
delete [] m_theme;
} // end of if
}
// set theme
void DipStudent::SetTheme(const char *theme)
{
// free memory, allocate new block and copy new theme
if(theme != NULL)
{
if(m_theme != NULL)
{
delete [] m_theme;
} // end of if

try
{
m_theme = new char[strlen(theme) + 1];
}
catch(...)
{
// error
exit(0);
} // end of try-catch

strcpy(m_theme, theme);
} // end of if
}
// set ID
void DipStudent::SetID(int ID)
{
m_ID = ID;
}

// show info
void DipStudent::ShowInfo() const
{
// same as in Student::ShowInfo()
if((m_name != NULL) && (m_theme != NULL))
{
cout << "Name: " << m_name << "\t" << "Course: " << m_course << "\t" << "ID: " << m_ID << "\t" << "Diploma theme: " << m_theme << endl;
} // end of if
else
{
cout << "Student has no name or diploma theme" << endl;
} // end of else
}
}
kventin_zhuk
БНТУ ФИТР
 Аватар для kventin_zhuk
214 / 154 / 15
Регистрация: 26.12.2012
Сообщений: 382
27.10.2013, 16:28     НУжно Поправить класс студент #4
LordpYtel,
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
//#include <iostream>
 //using namespace std;
#include <iostream>
#include <cstring>
 
using namespace std;
 
class Student
{
public:
    // default constructor
    Student();
    // constructor with params
    Student(const char *name, int course, int ID);
    // destructor
    ~Student();
    // display info
    virtual void ShowInfo() const;
protected:
    char *m_name;    // name
    int m_course;    // course
    int m_ID;        // ID
};
 
// default constructor
Student::Student()
{
    // default values
    m_name = NULL;
    m_course = 0;
    m_ID = 0;
}
 
// constructor with parameters
Student::Student(const char *name, int course, int ID)
{
    // set name
    if(name != NULL)
    {
        // memory allocation
        try
        {
            m_name = new char[strlen(name) + 1];
        }
        catch(...)
        {
            // error
            exit(0);
        } // end of try-catch
 
        strcpy(m_name, name);
    } // end of if
 
    // set course and ID
    if(course >= 1 && course <= 6)
    {
        m_course = course;
    } // end of if
    m_ID = ID;
}
 
// destructor
Student::~Student()
{
    // free memory
    if(m_name != NULL)
    {
        delete [] m_name;
    } // end of if
}
 
// show info
void Student::ShowInfo() const
{
    if(m_name != NULL)
    {
        cout << "Name: " << m_name << "\t" << "Course: " << m_course << "\t" << "ID: " << m_ID << endl;
    } // end of if
    else
    {
        // no name, nothing to do
        cout << "Student has no name" << endl;
    } // end of else
}
 
class DipStudent : public Student
{
public:
    // default
    DipStudent();
    // with params
    DipStudent(const char *name, int course, int ID);
    // and one more
    DipStudent(const char *name, int course, int ID, const char *theme);
    // destructor
    ~DipStudent();
    // set diploma theme
    void SetTheme(const char *theme);
    // set ID
    void SetID(int ID);
    // display info
    virtual void ShowInfo() const;
private:
    char *m_theme;    // diploma theme
};
// default constructor
DipStudent::DipStudent()
{
    // default value
    m_theme = NULL;
}
// with params
DipStudent::DipStudent(const char *name, int course, int ID)  : Student(name, course, ID)
{
    // default value
    m_theme = NULL;
}
// one more...
DipStudent::DipStudent(const char *name, int course, int ID, const char *theme) : Student(name, course, ID)
{
    // set theme
    if(theme != NULL)
    {
        try
        {
            m_theme = new char[strlen(theme) + 1];
        }
        catch(...)
        {
            // error
            exit(0);
        } // end of try-catch
 
        strcpy(m_theme, theme);
    } // end of if
}
// destructor
DipStudent::~DipStudent()
{
    // free memory
    if(m_theme != NULL)
    {
        delete [] m_theme;
    } // end of if
}
// set theme
void DipStudent::SetTheme(const char *theme)
{
    // free memory, allocate new block and copy new theme
    if(theme != NULL)
    {
        if(m_theme != NULL)
        {
            delete [] m_theme;
        } // end of if
 
        try
        {
            m_theme = new char[strlen(theme) + 1];
        }
        catch(...)
        {
            // error
            exit(0);
        } // end of try-catch
 
        strcpy(m_theme, theme);
    } // end of if
}
// set ID
void DipStudent::SetID(int ID)
{
    m_ID = ID;
}
 
// show info
void DipStudent::ShowInfo() const
{
    // same as in Student::ShowInfo()
    if((m_name != NULL) && (m_theme != NULL))
    {
        cout << "Name: " << m_name << "\t" << "Course: " << m_course << "\t" << "ID: " << m_ID << "\t" << "Diploma theme: " << m_theme << endl;
    } // end of if
    else
    {
        cout << "Student has no name or diploma theme" << endl;
    } // end of else
}
 
 int main()
 {
     // а здесь уже делаете все что вам нужно делаете все что хотите
    system("pause");
 }
LordpYtel
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 5
27.10.2013, 20:55  [ТС]     НУжно Поправить класс студент #5
Не работает, даже на Visual пишет ошибку:

Error 1 error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\users\pavlo\documents\visual studio 2012\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp 53 1 ConsoleApplication2
Yandex
Объявления
27.10.2013, 20:55     НУжно Поправить класс студент
Ответ Создать тему
Опции темы

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