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

C++ Почему это не работает? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Замещение слова в текста http://www.cyberforum.ru/cpp-beginners/thread42605.html
написала такую программу, нужно заменить в тексте одно слово или символ другим, eсть replacestring function котрою я вызываю дважды. В первый раз всё проходит нормально а второй replacestring(text,...
C++ зажатие кнопки Здраствуйте товарищи. как реализовать: пока на клавиатуре нажата кнопка на экране единичка кнопку отпустили на экране нолик. ключевые слова: пока нажата кнопка, остальное пример. какой оператор... http://www.cyberforum.ru/cpp-beginners/thread42601.html
битовые операции C++
надо написать ф-цию, которая в данном числе(в двоичной с.с.) на заданном номере ставила 1, вместо 0
Не понимаю логики освобождения памяти C++
Не могу понять каким образом освобождается память если ее ячейки всеравно заполнены, и более того в дальнейшем не используются.. char* a=new char; //выделяет на 02EF2DD0 char* b=new char; ...
C++ Площадь наибольшего из прямоугольников матрицы http://www.cyberforum.ru/cpp-beginners/thread42564.html
Дана целочисленная матрица A;i=1,n;j=1,m. Прямоугольником в этой матрице будем называть множество всех элементов A, для которых выполнено 1<=p<=i<=q<=n, 1<=r<=j<=s<=m, где p,q,r,s - натуральные...
C++ пжл решити пример про массив.или памагите помогите пожалуйста решить задачу про массив. одномерно массиве, состоящем из n целочисленных элементов, вычислить:1)минимальный по модулю элемент массива 2)сумму модулей элементов массива,... подробнее

Показать сообщение отдельно
demanxxx
0 / 0 / 0
Регистрация: 22.11.2008
Сообщений: 36

C++ Почему это не работает? - C++

01.07.2009, 07:52. Просмотров 519. Ответов 4
Метки (Все метки)

Помогите пожалуйста разобраться(создать студента и группу используя наследование)
Код:
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
#include<iostream>
#include<string.h>
using namespace std;
 
class Student//:public Gruppa
{
public:
    char Cto[20];
    char Fam[20];
    char Name[15];
    char Och[15];
public:
    Student();
    ~Student();
    Student(char*,char*,char*,char*);
    //void Print();
};
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(Student&);
    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()
{
}
Student::Student(char*C,char*F,char*N,char*O)
{
    strcpy(Cto,C);
    strcpy(Fam,F);
    strcpy(Name,N);
    strcpy(Och,O);
}
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 Gruppa::AddTail(Student&S/*char*C,char*F,char*N,char*O*/)
{
    Elem * temp=new Elem;
    strcpy(temp->CtoG,S.Cto);
    strcpy(temp->FamG,S.Fam);
    strcpy(temp->NameG,S.Name);
    strcpy(temp->OchG,S.Och);
    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;
    }
}
void main()
{
    Gruppa A;
    Student S1("Student","Karamishev","Dmitriy","Vitalevich");
    A.AddTail(S1);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru