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

Создание корзины интернет магазина с использованием стека - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Учет пациентов в поликлинике с++ http://www.cyberforum.ru/cpp-beginners/thread825814.html
Создать программу для учета больных в ПОЛИКЛИНИКЕ. необходимо хранить: Сущность 1. Пациент: id ФИО Возраст Пол Участок Сущность 2. Участок:
C++ Построение графика как сделать,чтобы строился график по данным находящимся в R и C функция C=f(R) http://www.cyberforum.ru/cpp-beginners/thread825812.html
Ошибка при удалении динамически выделенной памяти C++
Добрый день, хочу удалить выделенный массив, но выдает ошибку. Вот собственно код создаваемой функции. using namespace std; void FillStruct(VideoShop *a, int n) { char *buff = new char ; int...
организация разветвленной иерархии классов C++
Цель: организовать разветвленную иерархию классов с применением абстрактных классов. Нужна помощь в разъяснении самого задания Добавлено через 40 минут Задание: создать иерархию классов:...
C++ В каждом байте перенести все единичные биты в середину http://www.cyberforum.ru/cpp-beginners/thread825780.html
Помогите написать программу(С++)В каждом байте перенести все единичные биты в середину.
C++ Задача. Распределить заказы между предприятиями так, чтобы надежность собираемых из них устройств была наибольшей Радиотехническое устройство состоит из m блоков. Надежность устройства (время наработки на отказ) определяется наименее надежным блоком. Блоки можно заказать на любом из n предприятий. При этом... подробнее

Показать сообщение отдельно
Croessmah
Эксперт CЭксперт С++
13226 / 7498 / 845
Регистрация: 27.09.2012
Сообщений: 18,416
Записей в блоге: 3
Завершенные тесты: 1
03.04.2013, 13:24
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
#include <iostream> 
#include <string>
 
template<typename T>
class Stack{
private:
    template<typename Ty>
    struct Stack_Node{
        Ty data;
        Stack_Node * next;
        Stack_Node(const Ty & _data,const Stack_Node * _next):data((Ty)_data),next((Stack_Node*)_next){}
    };
    Stack_Node<T> * topnode;
    size_t count;
public:
    Stack();
    Stack(Stack&);
    ~Stack();
    T & top() const;
    void pop();
    void push(const T & _val);
    bool empty() const;
    bool nonempty() const;
    size_t size() const;
};
 
 
template<typename T>
Stack<T>::Stack():topnode(nullptr),count(0){
}
 
template<typename T>
Stack<T>::Stack(Stack & cpy):topnode(nullptr),count(cpy.count){
    Stack_Node<T> * tempcpy=cpy.topnode;
    Stack_Node<T> * temp=nullptr;
    if(!count){
        return;
    }
    temp=topnode=new Stack_Node<T>(cpy.top(),nullptr);
    tempcpy=tempcpy->next;
    while(tempcpy){
        temp->next=new Stack_Node<T>(tempcpy->data,nullptr);
        temp=temp->next;
        tempcpy=tempcpy->next;
    }
}
 
template<typename T>
Stack<T>::~Stack(){
    Stack_Node<T> * temp=topnode;
    while(topnode){
        topnode=topnode->next;
        delete temp;
        temp=topnode;
    }
}
 
template<typename T>
bool Stack<T>::empty()const{
    return !count;
}
 
template<typename T>
bool Stack<T>::nonempty()const{
    return (bool)count;
}
 
template<typename T>
void Stack<T>::push(const T & _val){
    topnode=new Stack_Node<T>(_val,topnode);
    ++count;
}
template<typename T>
void Stack<T>::pop(){
    if (!topnode){
        // STACK пуст
        return;
    }
    Stack_Node<T> * temp=topnode;
    topnode=topnode->next;
    delete temp;
    --count;
}
template<typename T>
T & Stack<T>::top()const{
    return topnode->data;
}
 
template<typename T>
size_t Stack<T>::size()const{
    return count;
}
 
 
struct DATA{
    std::string str;
    size_t price;
};
 
 
int InputInteger(const char * str, int min, int max){
    int x;
    std::cout<<str;
    bool ErrorFlag;
    do{
        std::cin.clear();
        std::cin.ignore(std::cin.rdbuf()->in_avail());
        std::cin>>x;
        ErrorFlag=!std::cin.good() || x< min|| x>max;
        if(ErrorFlag){
            std::cout<<"Error. "<<str;
        }
    }while(ErrorFlag);
    std::cin.ignore(std::cin.rdbuf()->in_avail());
    return x;
}
 
void AddProduct(Stack<DATA> & st){
    DATA temp;
    std::cout<<"Add product:\nName ->";
    std::getline(std::cin,temp.str);
    temp.price=InputInteger("Price [0...1000000] ->",0,1000000);
    st.push(temp);
}
 
int main(){
    Stack<DATA> st;
    AddProduct(st);
    AddProduct(st);
    AddProduct(st);
}

Не по теме:

Цитата Сообщение от igorko2-rpz-10 Посмотреть сообщение
я сделал стек где значння берутся из цикла,
Угу.
Стек в С++

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