Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 22.11.2008
Сообщений: 36
1

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

01.07.2009, 07:52. Просмотров 595. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.07.2009, 07:52
Ответы с готовыми решениями:

Почему это не работает?
Здравствуйте, почемуто программа работает не так как хотелось бы вроде всё просто, нужно чтобы то...

Почему это работает?
Доброго времени суток. Написал следующую штуку void foo(char r) { std::cout &lt;&lt; r &lt;&lt;...

почему это так работает
по заданию надо создать два одинаковых массива с случайными числами от 0 до 99 for (i = 0; i &lt;...

Подскажите, почему это работает!?)
Мне необходимо изменить все строчные буквы на заглавные, это все получается. Я ввожу символы(причем...

4
2341 / 497 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
01.07.2009, 09:29 2
извини, гадалки нет поблизости.
завтра, может, соберусь схожу - погадаю, что там у тебя не работает.
глядишь и отвечу...
0
587 / 354 / 15
Регистрация: 06.02.2009
Сообщений: 1,386
01.07.2009, 10:20 3
замени свою main() на эту
C++
1
2
3
4
5
int main()
{
// тут твой код
return 0;
}
0
Заблокирован
01.07.2009, 17:18 4
demanxxx , Не работает т.к. память не выделил
C++
1
2
3
4
5
6
7
8
9
10
struct Elem
{
        char* CtoG;
        char* NameG;
        char* OchG;
        char* FamG;
        Elem *next,*prev;
public:
 
};
Структура с полями указателями, ну и как же ты в указатель
C++
1
2
3
4
strcpy(temp->CtoG,S.Cto);
strcpy(temp->FamG,S.Fam);
strcpy(temp->NameG,S.Name);
strcpy(temp->OchG,S.Och);
строчески хочешь скопировать, а?Память вдели, например
temp->CtoG = new char[20]; и так для всех полей структуры Elem, а потом уж копируй и будет тебе счастье...
0
Evg
Эксперт CАвтор FAQ
21121 / 8137 / 628
Регистрация: 30.03.2009
Сообщений: 22,455
Записей в блоге: 30
01.07.2009, 17:22 5
> Помогите пожалуйста разобраться(создать студента и группу используя наследование)

Программа концептуально написана неправилаьно. Группа не может являться наследником студента, поскольку студентом не является, но студентов содержит. Т.е. группа должна содержать в виде поля маасив студентов (но не быть наследником)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.07.2009, 17:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

[c++] fgets не могу понять почему это не работает
Вообщем на диске C:\ лежит 3 файла 1 Файл test.txt 2 Файл 1.dll 3 Файл 2.dll в test.txt...

Почему функция не работает с чарами? Это из-за недостатка памяти?
#include&quot;stdafx.h&quot; #include&lt;stdio.h&gt; template&lt;class T&gt; T min(T a, T b, T c) { ...

Curiously Recurring Template Pattern; CRTP - почему это работает
Всем добрый вечер! Я задумался над тем почему и как работает CRTP в C++. #include...

Почему это работает с Access и не работает с mysql?
Вопрос, собственно, в названии темы. В случае, когда имеет место подключение к mysql получаю...


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

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

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