Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
LordpYtel
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 5
#1

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

27.10.2013, 15:19. Просмотров 507. Ответов 4
Метки нет (Все метки)

Есть код программы но выбрасывает ошибки на всех компиляторах, скажите в чем проблема. заранее спасибо.
Задача:
Создать класс студент, имеющий имя (указатель на строку), курс и идентификационный номер. Определить конструкторы, деструктор и функцию печати. Создать 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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2013, 15:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос НУжно Поправить класс студент (C++):

Создать класс "Студент" и классы "Бюджетный студент" и "Коммерческий студент" - C++
Доброго времени суток. Помогите с задачкой. Наследование. Создать класс студент и классы бюджетный студент и коммерческий студент.

Разработать класс Man (человек) и производный класс Student (студент). Описать атрибуты. - C++
Разработать класс Man (человек) и производный класс Student (студент). Описать атрибуты.

Класс Студент - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; //базовый класс &quot;студент&quot; class CStudent { protected: char...

Класс Студент - C++
Вообщем задания таково: &quot;Класс &quot;Студент&quot;. Действия над объектами класса: начисление стипендии, получение информации об успеваемости,...

Разработать класс «Студент» - C++
Добрый вечер)если не сложно , помогите реализовать одну из программ)а то на завтра нужно чтобы было всё готово, а дела не позволили...

Объявить класс студент. C++ - C++
Объявить класс студент с функцией считающий средний балл его оценок. С полями данных имя студента и фамилия.

4
GoldenChild
28 / 28 / 4
Регистрация: 12.06.2013
Сообщений: 65
27.10.2013, 15:24 #2
У вас только 1 файл в проекте? Ошибка по идее ругается на то, что у вас не обьявлена функция main(){}, которая должна быть в главном .cpp файле. Если так, то создайте index.cpp, обьявите в нем main(), и подключите файл с классом к нему.
0
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
}
}
0
kventin_zhuk
БНТУ ФИТР
215 / 155 / 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");
 }
0
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
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2013, 20:55
Привет! Вот еще темы с ответами:

Описать класс студент - C++
Доброго времени суток, помогите описать класс 1. Определить класс с именем STUDENT, содержащий следующие поля: - фамилия и...

Определите класс «Студент» - C++
Помогите пожалуйста с задачей Определите класс «Студент».Методы – перевод на следующий курс, выпуск, отчисление. Разработать...

Создать расширенный класс СТУДЕНТ - C++
Здраствуйте, есть довольно не малое задание, код которого почти полностью представлен ниже: Задание: 1. Создать класс СТУДЕНТ,...

Класс Студент (исправить ошибки) - C++
Ребята, помогите пожалуйста исправить) #include &lt;iostream&gt; using namespace std; class Student { char * NAME; int...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru