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

Стек для хранения данных - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти среднее значение значений ф-ции http://www.cyberforum.ru/cpp-beginners/thread699748.html
Помогите пожалуйста, нужно написать оператор, который бы вычислял среднее значение значений ф-ции y=cos5x при определенном Х , который вводится с клавиатуры. Вот код#include <iostream> #include <cmath> using namespace std; int main() { float sum = 0.0; float x; cout<<"Input value: "; cin>>x;
C++ Составить программу,которая из заданной строки символов выводить буквы по алфавиту составить программу,которая из заданной строки символов выводит буквы по алфавиту http://www.cyberforum.ru/cpp-beginners/thread699746.html
Извлечение компонент RGB из .bmp файла C++
Приветствую участников форума! Собственно проблема: интересует написание функции для извлечения значений RGB из .bmp файла в .txt,. Мучаю гугл не первый день и даже неделю, прочел множество статей прежде, чем обратиться сюда. Увы мои знания плюсов пока недалеки от нулевых и даже совсем чуть чуть продвинутые статьи мне помочь не могут.:wall:
Шаблон функции для удвоения максимального значения из трех аргументов C++
Написать программу, которая использует шаблон функции для удвоения максимального значения из трех аргументов. Проверьте программу, используя тройки целых чисел, чисел с плавающей точкой и символов.
C++ кодирования Хаффмана http://www.cyberforum.ru/cpp-beginners/thread699729.html
Почему после введения двух символов пропадает окно? #include<iostream.h> #include<string.h> #include<math.h> #include<stdlib.h> #include<conio.h> struct tree {
C++ Обработка значения, введенного с клавиатуры Доброго времени суток. Хочу Вас попросить) Измените этот код пж так,что бы он разсчитывал значение ф-ции начиная с того Х, который вводится с клавиатуры, а не все значения + возможность подсчитать среднее арифметическое тех значений, которые выводятся на экран при определенном значении х. #include <iostream> #include <cmath> using namespace std; int main() { float sum = 0.0; ... подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11821 / 6800 / 769
Регистрация: 27.09.2012
Сообщений: 16,876
Записей в блоге: 2
Завершенные тесты: 1
16.11.2012, 23:12     Стек для хранения данных
Цитата Сообщение от serj_xl Посмотреть сообщение
а не могли бы вы помочь сделать мне эту программу?
Отпарируете сами:
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 <locale>
#include <cstdlib>
using namespace std;
 
class Stack;
 
class Data{
private:
    friend Stack;
    Data *next;
    char *family;
    char *name;
    char *patronymic;
    int group;
    int ball;
public:
    void ShowData() const;
    Data(char*,char*,char*,int,int);
    Data();
    void SetData(char*,char*,char*,int,int);
    ~Data();
};
 
 
void Data::SetData(char *m_family,char *m_name,char *m_patronymic,int group,int ball){
    this->group=group;
    this->ball=ball;
    int len;
    char *p=m_family;
    delete [] this->family;
    delete [] this->name;
    delete [] this->patronymic;
    if(p){
        len=strlen(p);
        this->family=new char[len+1];
        int i=0;
        while(*p){*(this->family+i)=*p;++p;++i;}
        *(this->family+len)=0;
    }else{
        this->family=new char[7];
        strcpy(this->family,"Unknow");
    }
    p=m_name;
    if(p){
        len=strlen(p);
        this->name=new char[len+1];
        int i=0;
        while(*p){*(this->name+i)=*p;++p;++i;}
        *(this->name+len)=0;
    }else{
        this->name=new char[7];
        strcpy(this->name,"Unknow");
    }
    p=m_patronymic;
    if(p){
        len=strlen(p);
        this->patronymic=new char[len+1];
        int i=0;
        while(*p){*(this->patronymic+i)=*p;++p;++i;}
        *(this->patronymic+len)=0;
    }else{
        this->patronymic=new char[7];
        strcpy(this->patronymic,"Unknow");
    }
}
 
 
Data::Data(char *m_family,char *m_name,char *m_patronymic,int group,int ball){
    this->family=this->name=this->patronymic=NULL;
    this->SetData(m_family,m_name,m_patronymic,group,ball);
    this->next=NULL;
}
Data::Data(){
    this->family=this->name=this->patronymic=NULL;
    this->SetData(NULL,NULL,NULL,0,0);
    this->next=NULL;
}
Data::~Data(){
    delete [] this->name;
    delete [] this->patronymic;
    delete [] this->family;
}
 
void Data::ShowData() const{
    std::cout<<family<<" "<<name<<" "<<patronymic<<"\nGroup:\t"<<group<<"\nBall:\t"<<ball<<std::endl;
}
 
class Stack{
    Data *top;  
public:
    Stack();
    ~Stack();
    void push(Data*);
    Data const * const pop();
    bool deletetop();
    void clear();
};
 
Stack::Stack(){
    top=0;
}
void Stack::push(Data *data){
    if(!data) return;
    data->next=top;
    top=data;
}
Data const * const Stack::pop(){
    return top;
}
 
bool Stack::deletetop(){
    if(top){
        Data *p=top;
        top=top->next;
        delete p;
        return ((top)?true:false);
    }
    return false;
}
 
void Stack::clear(){
    Data *p;
    while(top){
        p=top;
        top=top->next;
        delete p;
    }
}
 
Stack::~Stack(){
    this->clear();
}
 
 
 
int main(){
    {
    Data *p;    
    const Data *cp;
    Stack stack;
    setlocale(LC_ALL,"Russian");
    int retval;
    do{
        cout<<"Ваши действия:\n\t1 - PUSH,\n\t2 - SHOW TOP\n\t3 - DELETE TOP\n\t4 - CLEARCTACK\n\tOTHER - EXIT\n\t->";
        cin>>retval;
        switch(retval){
        case 1:
            stack.push(new Data("MyFamily","MyName","MyPatronymic",4,5)); 
            break;
        case 2:
            if(cp=stack.pop())
                cp->ShowData();
            else
                cout<<"СТЭК ПУСТ\n";
            break;
        case 3:
            if(!stack.deletetop())
                cout<<"СТЭК ПУСТ\n";
            break;
        case 4:
            stack.clear();
            cout<<"СТЭК ОЧИЩЕН\n";
            break;
        default:
            retval=0;
        }           
    }while(retval);
    }
    system("pause");
}
 
Текущее время: 19:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru