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

C++ Списки и наследование.Зарание спасибо! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ STL vector,list http://www.cyberforum.ru/cpp-beginners/thread42362.html
У меня 2 вопроса: 1) можете рассказать,как подробно работает reverse_iterator?Создал вектор,хочу его распечатать в обратном порядке следования индексов,а он мне вообще то ошибку выдает,что я вышел за пределы массива,то печатает не в обратном порядке. В литературе как работает подробно reverse_iterator не нашел,везде просто написано,что такой итератор. Смотрел "STL для программистов на C++...
C++ Ключевые слова Написать программу, которая при вводе с клавиатуры буквы выводит ключевое слово языка Си, начинающееся с данной буквы. Например, при введении буквы "b" печатает "break". Результаты поместить на экран и в файл. Просто не знаю как сделать... http://www.cyberforum.ru/cpp-beginners/thread42327.html
C++ Слова в обратном порядке (!не палиндром!)
Задача состоит в следующем: определить символьный массив и ввести его с клавиатуры, затем подсчитать колличество символов 'e' (с этим проблем нет, но из программы уже не выкину) и выести слова в предложении в обратном порядке, типа мама мыла раму - раму мыла мама. Моя программа: #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> void main() {clrscr (); char str;...
Двумерный массив C++
Создать двухмерный массив целых чисел. Испольуя массив указателей. записать в него адресса положительных елементов двухмерного масива. Пожалуста я на экзамене!!
C++ Как возвращать массив структур? http://www.cyberforum.ru/cpp-beginners/thread42183.html
Понимаю тема уже поднималась, но я всёравно не могу понять... Нужно возвратить массив из структур. Знаю что нужно делать через указатели... вот код: struct trgstr { char name; int x;
C++ Нужно вставить в прогу правильную формулу(С++) Привет всем)) Помогите пожалуйста вставить в прогу правильную формулу. Вот сама задача: Должны быть реализованные подпрограммы рисования дуги круга заданной: координатами центра, координатами стартовой точки и величиной угла вот сам код проги: #include <graphics.h> #include <stdio.h> #include <math.h> #include <conio.h> подробнее

Показать сообщение отдельно
demanxxx
0 / 0 / 0
Регистрация: 22.11.2008
Сообщений: 36
29.06.2009, 21:54     C++ Списки и наследование.Зарание спасибо!
Привет всем!
Используя наследование нужно создать класс студент,класс асперант и класс группа.
Группу реализовать с помощю списка.
Студента с асперантом я сделал,а добавлять новых студентов и асперантов в группу(список) не получается.
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
#include<iostream>
#include<string.h>
using namespace std;
class Student
{
    char Cto[20];
    char Fam[20];
    char Name[15];
    char Och[15];
public:
    Student();
    ~Student();
    Student(char*,char*,char*,char*);
    void Print();
};
class Aspirant:public Student
{
    char CtoA[20];
    char FamA[20];
    char NameA[15];
    char OchA[15];
public:
    Aspirant();
    Aspirant(char*,char*,char*,char*);
    ~Aspirant();
};
 
struct Elem
{
    char* CtoG;
    char* NameG;
    char* OchG;
    char* FamG;
    Elem *next,*prev;
public:
 
};
class Gruppa:public Student//,public Aspirant
{
    Elem *Head,*Tail;
    int n;
public:
    Gruppa();
    Gruppa(const Gruppa&);
    ~Gruppa();
    void AddTail(char*,char*,char*,char*);
    void PrintG();
    void DelAll();
    void Del(int);
};
Student::Student()
{
    char Cto[20]={0};
    char Fam[20]={0};
    char Name[15]={0};
    char Och[15]={0};
}
Student::~Student()
{
}
Aspirant::Aspirant()
{
    Student::Student();
}
Aspirant::~Aspirant()
{
}
Student::Student(char*C,char*F,char*N,char*O)
{
    strcpy(Cto,C);
    strcpy(Fam,F);
    strcpy(Name,N);
    strcpy(Och,O);
}
Aspirant::Aspirant(char*C,char*F,char*N,char*O):Student(C,F,N,O)
{
}
void Student::Print()
{
    cout<<Cto<<" "<<Fam<<" "<<Name<<" "<<Och<<endl;
}
Gruppa::Gruppa()
{
   Head = Tail = NULL;
   n = 0;
}
Gruppa::~Gruppa()
{
   DelAll();
}
 
void Gruppa::DelAll()
{
   while(n!= 0)
      Del(1);
}
 
 
void Gruppa::Del(int pos)
{
   if(pos < 1 || pos >n)
   {
      cout << "Incorrect position !!!\n";
      return;
   }
   int i = 1;
 
   Elem * Del = Head;
 
   while(i < pos)
   {
      Del = Del->next;
      i++;
   }
   Elem * PrevDel = Del->prev;
   Elem * AfterDel = Del->next;
   if(PrevDel != 0 && n != 1)
      PrevDel->next = AfterDel;
    if(AfterDel != 0 && n != 1)
      AfterDel->prev = PrevDel;
   if(pos == 1)
       Head = AfterDel;
   if(pos == n)
       Tail = PrevDel;
   delete Del;
 
  n--;
}
 
void Student::Input(char*C,char*F,char*N,char*O)
{
    strcpy(Cto,C);
    strcpy(Fam,F);
    strcpy(Name,N);
    strcpy(Och,O);
}
void Aspirant::Input(char*C,char*F,char*N,char*O)
{
    strcpy(CtoA,C);
    strcpy(FamA,F);
    strcpy(NameA,N);
    strcpy(OchA,O);
}
/*void Student::Print()
{
cout<<Fam<<" "<<Name<<" "<<Och<<endl;
}
void Aspirant::Print()
{
cout<<FamA<<" "<<NameA<<" "<<OchA<<endl;
}*/
void Gruppa::AddTail(char*C,char*F,char*N,char*O)
{
    Elem * temp = new Elem;
    strcpy(temp->CtoG,C);
    strcpy(temp->FamG,F);
    strcpy(temp->NameG,N);
    strcpy(temp->OchG,O);
    temp->prev = Tail;
    if(Tail != 0)
        Tail->next = temp;
    if(n == 0)
        Head = Tail = temp;
    else
        Tail = temp;            
 
    n++;
 
}
void Gruppa::PrintG()
{
 
    Elem * temp = Head;
 
    while(temp->next != 0)
    {
        /*if(S==temp->CtoG)*/
            cout << temp->CtoG<< " "<<temp->FamG<<" "<<temp->NameG<<" "<<temp->OchG;
        temp = temp->next;
    }
cout << temp->CtoG<< " "<<temp->FamG<<" "<<temp->NameG<<" "<<temp->OchG;
}
void main()
{
    Student S1,S3;
    Aspirant S2;
    S1.Input("Stud","Karamishev","Dmitriy","Vitalevich");
    S3.Input("Stud","Rudakov","Aleksandr","Vladimerovich");
    S2.Input("Asp","Balbeskin","Balbes","Balbesovich");
    /*S1.Print();    
    const int n=3;
    Student *m[n];
    m[0]=new Student(S1);
    m[1]=new Aspirant(S2);
    m[2]=new Student(S3);
    for (int i=0;i<n;i++)m[i]->Print();    */
    Gruppa A;
    A.AddTail("Stud","Karamishev","Dmitriy","Vitalevich");
    //A.AddTail("Stud","Rudakov","Aleksandr","Vladimerovich");
    //A.AddTail("Asp","Balbeskin","Balbes","Balbesovich");
    A.PrintG();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru