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

Класс STUDENT - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 51, средняя оценка - 4.67
IamSCORPION
SysOp
 Аватар для IamSCORPION
38 / 37 / 1
Регистрация: 13.04.2009
Сообщений: 275
17.04.2009, 12:39     Класс STUDENT #1
Создать класс STUDENT, имеющий имя, курс и идентификационный номер. Определить конструктор, деструктор и функцию печати. Создать производный класс public - STUDENT_1 , содержащий тему диплома. Определить конструкторы по умолчанию с разным числом параметров, деструктор, функцию печати. Определить названия диплома и идентификационного номера.

Добавлено через 1 минуту 18 секунд
Помогите ребята))) ПЛІЗ!!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deicider
 Аватар для Deicider
96 / 52 / 1
Регистрация: 18.03.2009
Сообщений: 273
17.04.2009, 13:39     Класс STUDENT #2
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
#include <string.h>
#include <stdio.h>
 
 
class Student
{
public:
  Student();
  ~Student();
 
  char name[20];
  short grade; // курс
  int ID;
 
  void Print();
};
 
Student::Student()
{
}
 
Student::~Student()
{
}
 
void Student::Print()
{
  printf("Name: %s\t grade: %d\t ID:%d\n", name, grade, ID);
}
 
 
class Student1 : public Student
{
public:
  Student();
  Student(char* name);
  Student(char* name, short grade);
  Student(char* name, short grade, int ID);
  Student(char* name, short grade, int ID, char* diplom);
 
  char diplom[30];
}
 
Student1::Student1()
{
}
 
Student1::~Student1()
{
}
 
Student1::Student1(char* name)
{
  strcpy(this->name, name);
}
 
Student1::Student1(char* name, short grade);
{
  strcpy(this->name, name);
  this->grade = grade;
}
 
Student1::Student1(char* name, short grade, int ID);
{
  strcpy(this->name, name);
  this->grade = grade;
  this->ID = ID;
}
 
Student1::Student1(char* name, short grade, int ID, char* diplom);
{
  strcpy(this->name, name);
  strcpy(this->diplom, diplom);
 
  this->grade = grade;
  this->ID = ID;
}
 
void Student1::Print()
{
  printf("Name: %s\t grade: %d\t ID:%d\t Diplom:%s\n", name, grade, ID, diplom);
}
darkAngel
Технофашист
206 / 187 / 3
Регистрация: 11.03.2009
Сообщений: 829
17.04.2009, 14:01     Класс STUDENT #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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <conio.h>
#include <iostream.h>
 
// Базовый класс student
class student
{
   private:
   char *name;          // Имя студента
   int kurs, id;        // Номер курса и иднетицикационный номер
 
   public:
   student()            // Конструктор по умолчанию (без параметров)
   {
      name = new char[7];        // Выделяем участок памяти под имя (7 символов типа char)
      strcpy(name, "Ivanov");    // Имя по умолчанию - Ivanov
      kurs = 1;
      id = 001;
   }
 
   student(char *nm, int kr, int ident)  // Конструктор с параметрами
   {
      name = new char[strlen(nm+1)];
      strcpy(name, nm);
      kurs = kr;
      id = ident;
   }
 
   ~student()                            // Деструктор
   {
      delete [] name;                    // Освобождаем память
   }
 
   void print()        // Метод печатает информацию на экране
   {
      cout << endl << "Name: " << name << endl;
      cout << "Kypc: " << kurs << endl;
      cout << "ID  : " << id << endl << "-------------" << endl;
   }
};
 
 
 
// Производный класс student_1
class student_1 : public student
{
   private:
   char* tema;             // Поле под название темы
 
   public:
   student_1() : student()     // Конструктор по умолчанию (также вызывается конструктор по умолчанию student() базового класса
   {
      tema = new char[22];     // Выделяем память под название темы
      strcpy(tema, "Class and polimorfizm");  // Название темы по умолчанию
   };
 
   // Конструктор с параметрами
   student_1(char* nm, int kr, int ident, char* tem) : student(nm, kr, ident)
   {
      tema = new char[strlen(tem+1)];
      strcpy(tema, tem);
   }
 
   ~student_1()             // Деструктор
   {
      delete [] tema;       // Освобождаем память
   }
 
   void print()           // Переопределяем метод вывода информации на экран
   {
      cout << endl << "TeMa: " << tema;
      student::print();   // Вызываем метод print() базового класса student
   }
 
};
// Реализация
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
int main(int argc, char* argv[])
{
   int kr, ident;
   string nm, tema;
 
   cout << "BBeguTe uM9 :";
   cin >> nm;
   cout << "BBeguTe HoMep Kypca :";
   cin >> kr;
   cout << "BBeguTe ID :";
   cin >> ident;
   cout << "BBeguTe TeMy gunJIoMa :";
   cin >> tema;
 
   student_1 a;             // Создаём объект класса student_1 по умолчанию
   student_1 b(nm.begin(), kr, ident, tema.begin());  // Создаём объект класса student_1 с параметрами
 
   a.print();
   b.print();               // Вызываем методы вывода на экран
 
 
        getch();
        return 0;
}
IamSCORPION
SysOp
 Аватар для IamSCORPION
38 / 37 / 1
Регистрация: 13.04.2009
Сообщений: 275
17.04.2009, 14:23  [ТС]     Класс STUDENT #4
Супер))) Спасибо большое)))
ABTOP
 Аватар для ABTOP
36 / 36 / 2
Регистрация: 09.06.2008
Сообщений: 324
17.04.2009, 16:04     Класс STUDENT #5
Если тебе ещё надо то вот... когда то писал

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
#include <iostream.h>
#include <string.h>
#include <conio.h>
class progress;
 
class student
{
    friend ostream &operator<<(ostream &, const student&);
    friend istream &operator>>(istream &, student &);
private:
    friend class progress;
    student *next;
    char *name;
    float mark;
public:
    void Ras();
    void PrintStudent() {cout<<"Student "<<name<<" have mark "<<mark<<endl;}
    void ReadStudent()
    {
        cout<<"Enter name: ";
        cin>>name;
        cout<<"Enter mark: ";
        cin>>mark;
    }
    student();
};
 
student::student()
{
    int k=10;
    name=new char[k+1];
    strcpy(name,"With Out Name");
    mark=0;
}
 
void student::Ras()
{
    student *s;
    float fin=0;
    while(s)
    {
        fin+=mark;
        s=s->next;
    }
    cout<<fin<<endl;
}
 
class progress
{
    int count;
    char Facultet[20];
    student *first;
    student *head;
public:
    progress(char *FacultetName)        //ÏðèñâîåГ*ГЁ èìåГ*ГЁ Г”Г*êóëüòåòó
    {
        strcpy(Facultet, FacultetName);
        count=0;
        first=head=NULL;
    }
    void AddStudent();
    void PrintAll();
    ~progress();
};
progress::~progress()
{
    if (count)
    {
        student *s=first;
        while (s)
        {
            s=first->next;
            delete first;
            first=s;
        }
    }
}
 
void progress::AddStudent()
{
    if (!count) {
        first=new student;
        head=first;
        head->next=NULL;
        head->ReadStudent();
        count=1;
    } else {
        head->next=new student;
        head=head->next;
        head->ReadStudent();
        head->next=NULL;
        count++;
    }
}
 
void progress::PrintAll()
{
    student *s;
    s=first;
    while(s)
    {
        s->PrintStudent();
        s=s->next;
    }
}
 
istream &operator>>(istream&input, student &s)
{
    input>>s.name;
    return input;
}
 
ostream &operator<<(ostream &output, const student &s)
{
    output <<s.name << s.mark<< ' ' <<endl;
    return output;
}
 
void main()
{
    progress P("PS");
    student S;
    char s=0;
    while(s!=27)
    {
        P.AddStudent();
        s=getch();
    }
    P.PrintAll();
    S.Ras();
}
Добавлено через 42 секунды
Это не совсем то но может тебе что-то пригодиться от сюда
IamSCORPION
SysOp
 Аватар для IamSCORPION
38 / 37 / 1
Регистрация: 13.04.2009
Сообщений: 275
17.04.2009, 16:36  [ТС]     Класс STUDENT #6
Посмотрим... )))
Helen09
0 / 0 / 0
Регистрация: 16.11.2009
Сообщений: 7
19.04.2010, 18:43     Класс STUDENT #7
Подскажите, что означает эта строка: ( в программе-строка № 50 )
Код
student_1() : student()
Ответ типа:
Конструктор по умолчанию (также вызывается конструктор по умолчанию student() базового класса
не подходит, надо подробно
darkAngel
Технофашист
206 / 187 / 3
Регистрация: 11.03.2009
Сообщений: 829
20.04.2010, 15:33     Класс STUDENT #8
Надо бы побольше кода, а то видно что вырвано куском.
Если это стоит в объявлении конструктора, то тогда так: конструктор student_1 перед выполнением собственной инициализации, вызывает сперва базовый конструктор student для инициализации объекта этого базового класса, после чего инициализация ужее производного класса studetn_1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2010, 10:35     Класс STUDENT
Еще ссылки по теме:

C++ Создать класс STUDENT
C++ Создать класс Man (человек), с полями: имя, возраст, пол и вес. Создать производный класс Student ...
C++ Создать класс student, который использует файл student.txt

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

Или воспользуйтесь поиском по форуму:
Helen09
0 / 0 / 0
Регистрация: 16.11.2009
Сообщений: 7
29.05.2010, 10:35     Класс STUDENT #9
Подскажите, необходимо на основе программы (от darkAngel ) создать контейнер очередь (двусвязный список) для класса студент. Там должна быть выгрузка данных из файла и запись в файл, вставка информации в произвольную позицию, и получение указателя к произвольной позиции в списке.
Теоретически я понимаю как это должно выглядеть, а вот как на С++ записать не знаю. Подскажите хоть что-нибудь, пожалуйста.
Yandex
Объявления
29.05.2010, 10:35     Класс STUDENT
Ответ Создать тему
Опции темы

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