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

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

Восстановить пароль Регистрация
 
igorko2-rpz-10
 Аватар для igorko2-rpz-10
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 27
02.04.2013, 14:43     Создание корзины интернет магазина с использованием стека #1
помогите пожалуйста написать такую ​​программу, я в отчаянии
Если не напишу то завалю курсач, а как это написать понятия не имею
чрезвычайно сильно прошу помочь с этим!!
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
salam
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
02.04.2013, 18:12     Создание корзины интернет магазина с использованием стека #2
какая-то наркоманская корзина... функционал вроде "добавить товар в корзину" и "удалить последний выбранный товар"?)
igorko2-rpz-10
 Аватар для igorko2-rpz-10
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 27
02.04.2013, 19:39  [ТС]     Создание корзины интернет магазина с использованием стека #3
не обязательно, можно просто чтоб добавлять товары в корзину
хотя если можно было бы удалять их то вообще было бы прекрасно
salam
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
02.04.2013, 19:47     Создание корзины интернет магазина с использованием стека #4
метод push_back() - положить объект в конец, pop_back() - удалить из конца. используйте.
igorko2-rpz-10
 Аватар для igorko2-rpz-10
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 27
03.04.2013, 11:22  [ТС]     Создание корзины интернет магазина с использованием стека #5
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
#include <cstdio>
typedef int T;
class stack{
protected:
    struct element{
        T data;
        struct element* next;
    }*begin;
    void free_stack(struct element* arg){
        if (arg){
            free_stack(arg->next);
            delete arg;
        }
    }
stack(const stack& copy){};
stack& operator=(stack& value){return *this;};
public:
    stack():begin(NULL){};
    void push(T x){
        struct element* newEl=new struct element;
        newEl->data=x;
        newEl->next=begin;
        begin=newEl;
    }
    T pop(){
        if (!begin) return -1;
        T value=begin->data;
        struct element* newEl=begin->next;
        delete begin;
        begin=begin->next;
        return value;   
    }
    void clear(){
        free_stack(begin);
        begin=NULL;
    }
    void output(){
        struct element* cur=begin;
        while(cur){
            printf("%d, ", cur->data);
            cur=cur->next;
        }
        putchar('\n');
    }
    ~stack(){
        free_stack(begin);
    }
};
int main(){
    stack st0;
    for (int i=1; i<256; i*=2)
        st0.push(i);
    st0.output();
    getchar();
    return 0;
}
помогите пожалуйста написать такую ​​программу, я в отчаянии
Если не напишу то завалю курсач, а как это написать понятия не имею
чрезвычайно сильно прошу помочь с этим!!
я вот реализовал сам стек, но как расписать это по условию задачи не представляю,
пожалуйста помогите дописать это по условию

Добавлено через 1 минуту
я сделал стек где значння берутся из цикла,
но как сделать так чтоб их вводить и они бы передавались в стек и сортировались
а затем по необходимости и удалялись я не знаю
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,866
Записей в блоге: 2
Завершенные тесты: 1
03.04.2013, 13:24     Создание корзины интернет магазина с использованием стека #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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 Посмотреть сообщение
я сделал стек где значння берутся из цикла,
Угу.
Стек в С++

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2013, 13:32     Создание корзины интернет магазина с использованием стека
Еще ссылки по теме:

C++ Вычислить значение выражения в обратной польской записи с использованием стека
Создание стека структур C++
C++ Создание стека - код не компилируется

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
igorko2-rpz-10
 Аватар для igorko2-rpz-10
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 27
03.04.2013, 13:32  [ТС]     Создание корзины интернет магазина с использованием стека #7
хорошо, МНЕ СДЕЛАЛИ СТЕК где значения берутся из цикла
Yandex
Объявления
03.04.2013, 13:32     Создание корзины интернет магазина с использованием стека
Ответ Создать тему
Опции темы

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