Форум программистов, компьютерный форум 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
11825 / 6804 / 769
Регистрация: 27.09.2012
Сообщений: 16,871
Записей в блоге: 2
Завершенные тесты: 1
16.11.2012, 21:01     Стек для хранения данных
Цитата Сообщение от serj_xl Посмотреть сообщение
не могу найти пример, с которого можно было бы что-то понять..( (
Думаете, что пример поможет? =)

main.cpp
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
#include <iostream>
#include "state.h"
using std::cout;
using std::cin;
using std::endl;
 
 
void Function1(int d){
cout<<"\tВызвана функция Function1 с параметром d = "<<d<<endl;
}
void Function2(int d){
cout<<"\tВызвана функция Function2 с параметром d = "<<d<<endl;
}
void Function3(int d){
cout<<"\tВызвана функция Function3 с параметром d = "<<d<<endl;
}
 
int main(){
StatesManager SM;
setlocale(LC_ALL,"Rus");
int q,nf;
void (*pF)(int);
do{
system("cls");
cout<<"Колличество состояний в стеке: "<<SM.GetCount()<<endl;
cout<<"Вызов текущей функции: "<<endl;
SM.ExecuteHead();
cout<<"Выберите действие (EXIT - 0; PUSH - 1; POP 2): ";
cin>>q;
cout<<endl;
 
if (q==1){
cout<<"Выберите функцию (1,2,3): ";
cin>>nf;
cout<<endl;
pF=0;
switch (nf){
case 1:
pF=Function1;
break;
case 2:
pF=Function2;
break;
default:
pF=Function3; break;
}
}
switch(q){
case 1:
SM.StatePush(pF);
break;
case 2:
SM.StatePop();
break;
default:
q=0; break;
}
}while(q);
 
return 0;
}
state.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef _STACK_H_
#define _STACK_H_
 
class StatesManager{
private:
typedef struct STATE{
void (*Func)(int);
STATE *pNext;
} STATE;
STATE * pStates;
int nCount;
public:
int GetCount();
StatesManager();
~StatesManager();
bool StatePush(void (*Func)(int));
bool StatePop();
void ExecuteHead();
}; 
#endif//_STACK_H_
state.cpp
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
#include "state.h"
 
StatesManager::StatesManager(){
this->nCount=0;
this->pStates=0;
}
 
StatesManager::~StatesManager(){
STATE *pS;
while(pStates){
pS=pStates;
pStates=pStates->pNext;
delete pS;
}
}
 
int StatesManager::GetCount(){return this->nCount;}
 
bool StatesManager::StatePush(void (*Function)(int)){
if (Function==0)
return false;
STATE *pNS=new STATE;
pNS->Func=Function;
pNS->pNext=this->pStates;
this->pStates=pNS;
this->nCount++;
return true;
}
bool StatesManager::StatePop(){
if (!pStates)
return false;
STATE *pTS;
pTS=this->pStates;
this->pStates=this->pStates->pNext;
delete pTS;
this->nCount--;
if (!pStates)
return false;
return true;
}
void StatesManager::ExecuteHead(){
if(pStates){
pStates->Func(this->nCount);
}
}
 
Текущее время: 14:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru