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

Написал прогу по стеку, но при выводе содержимого - выводит только последний добавленный - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Расписать каждую строчку . http://www.cyberforum.ru/cpp-beginners/thread390348.html
Распишите каждую строчку.завтра защищать а я не понимаю чо это ) что делае и т.д 1) Использование компилятора c последующим подключением компановщика и созданием исполняемого файла a.exe ...
C++ поразрядные операции помогите пожалуйста решить следущую задачу: даны два int-числа: N1 = АBCD и N2 = EFGH, где AB…GH – 16-ричные цифры, ПОп – Поразрядная Операция Получить цифру X как результат выражения: X = A... http://www.cyberforum.ru/cpp-beginners/thread390345.html
C++ при нажатии на "=" вывести ответ..
Писала простенькую прогу калькулятор, тут ответ считывает при нажатии на enter. Преподаватель попросил, чтобы ответ выводился при нажатии на "=", но как?? int main() { int ch; do{ // основной...
Обмен данными между процессами с помощью файлов, которые отображаются в память C++
Классическая задача "читатели-писатели", обмен информацией должен проходить с помощью файлов, отображаемых в память. Задание уже готово, но имеет один неприятный баг - при дебагинге видно, что при...
C++ Найти максимальный элемент и его номер среди отрицательных элементов. http://www.cyberforum.ru/cpp-beginners/thread390333.html
собственно вот задание. я вот что-то не могу понять как его сделать, если возможно - расскажите, как найти или напишите.
C++ Упорядочить файл, содержащий записи из двух полей (числового и текстового), в порядке возрастания числа Здраствуйте, ребят подскажите, пожалуйста, как примерно написать такие программы, хотя бы идею подскажите, что использовать: 1)Напишите программу, которая бы упорядочивала файл, содержащий записи,... подробнее

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

Написал прогу по стеку, но при выводе содержимого - выводит только последний добавленный - C++

23.11.2011, 23:26. Просмотров 460. Ответов 8
Метки (Все метки)

Вот собственно сам код, подскажите если что не так. Заранее спасибо!

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
#include <iostream>
#include <stack>
using namespace std;
 
 
class Node 
{
public:
    int number;
    Node* last;
};
 
Node* ptrLast = NULL;
Node* top = NULL;
 
void push ()  //добавление в стек
{
            system("cls");
            int numb = -1;          
            cout<<"Введите Число: "; cin>>numb;
            Node* ptr = new Node;
            ptr->number = numb;         
            if (top == NULL)
            {
                ptr->last = NULL;
                top = ptr;
                ptrLast = ptr;
                system("cls");
            //  continue;
            }
            top = ptr;
            ptr->last = ptrLast;
            ptrLast = ptr;
            system("cls");
            //continue;
}
 
void pop () //удаление из стека
{
            system("cls");
            Node* ptrDelete = NULL;
            if (top == NULL)
            {
                cout<<"\t!!! СТЕК ПУСТ !!!\n\n";
                system("pause");
                system("cls");
                //continue;
            }   
            else
            {
            ptrDelete = top;
            if (ptrDelete->last == NULL)
            {
                top = NULL;
                delete ptrDelete;
                system("cls");
                //continue;
            }
            top = ptrDelete->last;
            ptrLast = top;
            delete ptrDelete;
            //continue;
            }
}
 
void versh () //просмотр вершины
{
            system("cls");
            if (top == NULL)
            {
                cout<<"\t!!! СТЕК ПУСТ !!!\n\n";
                system("pause");
                system("cls");
                //continue;
            }
            else
            {
            cout<<"Вершина Стека: ";
            cout<<top->number<<"\n\n";
            system("pause");
            system("cls");
            //continue;
            }
}
 
void soderzh () //содержимое стека
{
            system("CLS");
            Node* ptr = NULL;
            if (top == NULL)
            {
                cout<<"\t!!! СТЕК ПУСТ !!!\n\n";
                system("PAUSE");
                system("CLS");
                //continue;
            }
            cout<<"* * * * * СОДЕРЖИМОЕ СТЕКА * * * * *\n\n";
            ptr = top;
            while (1)
            {
                cout<<ptr->number<<endl;
                if (ptr->last == NULL)
                {
                    system("PAUSE");
                    system("CLS");
                    break;
                }
                else
                {
                ptr = ptr->last;
                break;
                }
            }
}
 
 
int main ()
{
    setlocale (0, "");
    int vyb;
    while (1)
    {
    cout<<"\n1. Добавить в Стек\n2. Вытолкнуть Из Стека\n3. Вершина Стека\n4. Содержимое Стека\n0. Выход\n\n"; cin>>vyb;
    cout<<"Ваш выбор: "<<vyb;
 
    switch (vyb)
    {
    case 0:
        {
        return 0;
        }break;
    case 1:
        {
            push ();
            soderzh ();
            system ("pause");
            system("cls");
        }break;
    case 2:
        {
            pop ();
            soderzh ();
            system ("pause");
            system("cls");
        }break;
    case 3:
        {
            versh ();
            system ("pause");
            system("cls");
        }break;
    case 4:
        {
 
            soderzh ();
            system ("pause");
            //system("cls");
        }break;
 
    }
    }
 
 
    system ("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.