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

Переделать структуру в класс - C++

Восстановить пароль Регистрация
 
Vova_Sim
2 / 2 / 0
Регистрация: 07.11.2012
Сообщений: 50
13.02.2014, 00:31     Переделать структуру в класс #1
Здравствуйте, помогите переделать структуру в класс..сам пробовал, бред получается
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
#include<iostream>
#include<conio.h>
using namespace std;
//Организация стека в виде однонаправленного списка
struct element{
public:
float x,y;//элементы стека
element *prev;//указатель на предшествующий элемент
 
};
//функции работы со стеком
element *pop(); //извлечение элемента их стека
void push(element* );//добавление элемента в стек
void del_stek(); //удаление стека
//сервисные функции
void put_sp(); //печать содержимого стека на экран
int put_el();//печать содерж. элемента стека на экран
element *vvod();//вводx,y
int insert(element, element*);//вставка элементаz2
//после элементаz1
int udal_el(element*);//удаление заданного элемента
element *Golova=0;//указатель на вершину стека
int main() {
    setlocale(LC_ALL,"rus");
cout<<"--Создаем  стек--"<<endl;
element *z;
//цикл заполнения стека
while((z=vvod())!=0)push(z);
if(!Golova){
cout<<"Список пуст. Пока!"<<endl;
getch(); return 0;
}
cout<<"---Содержимое стека---\n";
put_sp();
cout<<"----------------------\n";
cout <<"Вставка элемента a2 после a1"<<endl;
element *a1, *a2;
cout<<"Введитеa1:\n";
if ((a1=vvod())!=0){
cout<<"Введитеa2:\n";
if ((a2=vvod())!=0){
if(insert(*a1, a2)) cout<<"Ok\n";
else cout<<" Элемент а1 не найден";
}
cout<<"---Содержимое стека---\n";
put_sp();
cout<<"----------------------\n";
} else cout<<"Вставка отменена"<<endl;
cout<<"\n Удаление элемента. "<<endl;
cout<<"Введитеa1: ";
if ( (a1=vvod())!=0){
if( udal_el(a1)) cout<<"Ok\n"<<endl;
else cout<<"Элемент не найден\n"<<endl;
}
else cout<<"Удаление элемента отменено!"<<endl;
cout<<"---Содержимое стека---\n";
put_sp();
cout<<"----------------------\n";
getch();
cout <<"Вытолкнуть элементы из стека"<<endl;
z=Golova;
int k=0;
while(((z=pop())!=0)){
cout<<"  "<<++k<<": Вытолкнули из стека элемент: ";
cout<<"x = "<<z->x<<" y = "<<z->y<<endl;
cout<<"---Содержимое стека---\n";
put_sp();
cout<<"----------------------\n";
getch();
}
del_stek();//уничтожение стека
getch(); return 0;
}
element* pop () //извлечение элемента из стека
{
element  *p=Golova;//Golova  -  указатель  на  вершину стека
if(!p) { cout<<"Cтек пуст\n";return 0;}
Golova=p->prev;//указатель вершины стека
//устанавливаем на предшествующий
// элемент извлекаемого элемента
return p;//возвращаем извлеченный из стека элемент
}
void push(element *p) //добавление элемента в стек
{
if(!Golova){ //если список пуст
Golova=p; //указатель на вершину устанавливаем
//на новый элемент
p->prev=0; //указатель на предшествующий элемент
// нового элемента
//устанавливаем в0
return; //выход из функции
}
//если стек не пуст
p->prev=Golova;
//устанав.на тот, на который указывает вершина стека
Golova=p;//указ-ль  вершины  стека  устанав.на  новый Эл/ент
}
void del_stek() //удаление всех элементов из стека
{
element *p=Golova,*q;
while(p){
q=p->prev;
delete p;
p=q;
}
}
element *vvod()//вводx,y
{
element *a=new element;
cout<<"Для прекращения ввода введите0\n";
cout<<"x = ";cin>>a->x;
if (a->x==0){
delete a;
return 0;
}
cout<<"y = ";cin>>a->y;
return(a);
}
int put_el() //вывод текущего элемента на экран
{
element *p=Golova;
cout<<"x = "<<p->x;
cout<<"; y = "<<p->y<<endl;
return 0;
}
void put_sp()//печать стека на экран
{
element *p=Golova;
if(!p){cout<<"Стек пуст!\n"; return ;}
while(p){
cout<<"x = "<<p->x;
cout<<"; y = "<<p->y<<endl;
p=p->prev;
}
}
//----------------------------------//вставка элементаz2 после элементаz1
int insert(element z1, element* z2)
{
element *p=Golova,*q;
do {
if((p->x==z1.x)&&(p->y==z1.y)){
q=p->prev;
z2->prev=q;
p->prev=z2;
return 1;
}
p=p->prev;
} while(p);
return 0;
}
int udal_el(element* z)// удаление заданного элемента
{
element *p=Golova;// если это головной элемент
if((p->x==z->x)&&(p->y==z->y)){
Golova=p->prev;
delete p;
return 1;
}
element *q;
do{
q=p;
if((p->prev->x==z->x)&&(p->prev->y==z->y)){
p=p->prev;
q->prev=p->prev;
delete p;
return 1;
}
p=p->prev;
} while(p);
return 0;
}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SomeThingMore
 Аватар для SomeThingMore
0 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 10
13.02.2014, 20:11     Переделать структуру в класс #2
Спрошу у ПИ, мб он знает
Alexinder
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 23
14.02.2014, 12:29     Переделать структуру в класс #3
Цитата Сообщение от SomeThingMore Посмотреть сообщение
Спрошу у ПИ, мб он знает
ахахах)
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,056
14.02.2014, 12:39     Переделать структуру в класс #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Vova_Sim Посмотреть сообщение
Здравствуйте, помогите переделать структуру в класс..
Цитата Сообщение от Vova_Sim Посмотреть сообщение
C++
1
2
3
4
5
struct element{
public:
float x,y;//элементы стека
element *prev;//указатель на предшествующий элемент
};
C++
1
2
3
4
5
class element{
public:
float x,y;//элементы стека
element *prev;//указатель на предшествующий элемент
};
Yandex
Объявления
14.02.2014, 12:39     Переделать структуру в класс
Ответ Создать тему
Опции темы

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