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

Не меняется значение переменной - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Повторение всей программы заного через да\нет http://www.cyberforum.ru/cpp-beginners/thread1197254.html
Хочу сделать повтор программы через да\нет. Но в итоге выдает бесконечный вопрос об повторе. немного сократил сам код (убрал пару других подпрограмм). #include "stdafx.h" #include "stdio.h" #include "math.h" #include "locale.h" #include "iostream"
C++ Сформировать текст из строки с разделителями и отсортировать его по количеству символов меж разделителями Ввести массив символов разделителей с заданным количеством символов и массив строк текста, содержащий неизвестное заранее количество строк. Признаком конца ввода текста является ввод строки, содержащей любое слово из заранее введенных строк. Из строк введенного текста сформировать другой текст, в котором будут располагаться в порядке уменьшения количества символов разделителей с одновременным... http://www.cyberforum.ru/cpp-beginners/thread1197251.html
C++ Массив объектов с конструкторами
Здравствуйте! Такая вот задачка:имеется класс.Как сделать так,чтобы я смог создавать массив объектов этого класса С КОНСТРУКТОРАМИ(желательно с разными,но пойдёт и одинаковыми) . Гуглил,но примеров не нашёл.Если не сложно,приведите ,пожалуйста. Примечание:под словом разные имел в виду одинаковое число и тип параметров,лишь значения другие.
C++ На базе класса Queue реализовать простую базу данных
На базе класса Queue (очередь на основе связанного списка) необходимо реализовать простую базу данных.
C++ Упорядочить по возрастанию отдельно элементы, стоящие на чётных местах, и элементы, стоящие на нечётных местах http://www.cyberforum.ru/cpp-beginners/thread1197208.html
Помогите, пожалуйста! Вот задание: В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. произведение положительных элементов массива; 2. сумму элементов массива, расположенных до минимального элемента. Упорядочить по возрастанию отдельно элементы, стоящие на чётных местах, и элементы, стоящие на нечётных местах. Сортировка работает не совсем правильно Код:#include...
C++ Graphics.h как рисуется квадрат? Готовые фигуры такие как прямоугольник, окружность, прямые в библиотеке graphics.h в С++ есть.. А есть ли готовая фигура квадрата?? Или как ее тогда правильно задать?? подробнее

Показать сообщение отдельно
Владислаучык
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 291
03.06.2014, 01:20     Не меняется значение переменной
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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
class A
{
private:
    int price;
    string name;
    static int all_money;
public:
    A(int price=0, string name="");
    void initA(int price, string name="");
    void showA();
    static int key_sort;
    bool operator<( const A &ob2);
    ////////////////////////////////////////////
    int get_price() {return price;}
    string get_name() {return name;}
    void dev_all_money(int n) { A::all_money += n;}
};
int A::all_money = 0;
class client
{
private:
    string surname;
    int money;
public:
    client(){}
    client( string surname, int money);
    void init_c(string surname,int money);
    void view_c();
    static int key_sort;
    bool operator<( const client &ob2);
    /////////////////////////////////////////
    int get_money() {return money;}
    string get_surname() {return surname;}
    void set_money(int m) { money = m; }
};
 
class Mylistcl : public list<client>
{
    Mylistcl::iterator it;
public:
    void init();
    void show();
    void sort_surname();
    void sort_money();
};
 
 
client::client( string surname,int money)
{
    this->surname=surname;
    this->money=money;
}
 
void client::init_c(string surname,int money)
{
    this->surname=surname;
    this->money=money;
}
 
void client::view_c()
{
    cout<<"Вывод: ";
    cout<<"Фамилия: ";
    cout<<surname<<endl;
    cout<<"Деньги: ";
    cout<<money<<endl;
}
 
bool client::operator<( const client &ob2)
{
    if( key_sort == 0 )
        return (this->surname < ob2.surname);
    else
        return (this->money < ob2.money);
}
 
void Mylistcl::init()
{
    int n,money;
    string name, surname;
    cout<<"Количество клиентов: ";
    cin>>n;
    for(int i=0; i<n; i++)
    {
        cout<<"Введите фамилию: ";
        cin>>surname;cout<<endl;
        cout<<"Введите деньги: ";
        cin>>money;cout<<endl;
        this->push_back(client(surname, money));
    }
}
 
void Mylistcl :: show()
{
    for(it=this->begin(); it!=this->end(); ++it)
    {
        it->view_c();
    }
}
 
void Mylistcl :: sort_surname()
{
    client::key_sort=0;
    this->sort();
}
 
void Mylistcl :: sort_money()
{
    client::key_sort=1;
    this->sort();
}
 
int A::key_sort=0;
 
int client::key_sort=0;
 
A::A(int price, string name)
{
    this->price = price;
    this->name = name;
    all_money += price;//////////////
}
void A::initA(int price, string name)
{
    this->price = price;
    this->name = name;
    all_money += price;/////////////////
}
bool A::operator<( const A &ob2)
{
    if( key_sort == 0 )
        return (this->price < ob2.price);
    else
        return (this->name < ob2.name);
}
void A::showA()
{
    cout<<"Вывод: " << endl;
    cout<<"Цена: " <<price <<" Имя: " <<name << endl;
}
 
class MyList : public list<A>
{
    MyList::iterator it;
public:
    void init();
    void show();
    void sort_price();
    void sort_money();
    //////////////////////////////////
    void fff(Mylistcl list_cl)
    {
        cout << "Input name client: ";
        string ncl;
        cin>>ncl;
        Mylistcl::iterator itc;
        for( itc = list_cl.begin(); itc!= list_cl.end(); ++itc)
            if( itc->get_surname() == ncl )
                break;
        if( itc == list_cl.end() )
        {
            cout << "not client" << endl;
            return;
        }
        cout << "Input nameA: ";
        string nA;
        cin >> nA; ////////////////
        MyList::iterator ita;
        for( ita = this->begin(); ita!= this->end(); ++ita)
            if( ita->get_name() == nA )
                break;
        if( ita == this->end() )
        {
            cout << "not nameA" << endl;
            return;
        }
        
        itc->set_money( itc->get_money() -  ita->get_price() );
        ita->dev_all_money( ita->get_price() );
        this->erase(ita);
    }
};
void MyList :: init()
{
    int n;
    int price;
    string name;
    cout<<"Введите сколько хотите ввести ";
    cin>>n;
    for(int i=0; i<n; i++)
    {
        cout<<"Введите цену: ";
        cin>>price;
        cout<<"Введите имя: ";
        cin>>name;
        this->push_back( A(price, name ) );
    }
}
void MyList :: show()
{ 
    for( it=this->begin(); it!=this->end(); ++it)
    {
        it->showA();
    }
}
void MyList :: sort_price()
{
    A::key_sort = 0;
    this->sort();
}
void MyList ::sort_money()
{
    A::key_sort = 1;
    this->sort();
}
 
int main()
{
    setlocale(LC_ALL,"Russian"); 
    MyList lst;
    Mylistcl lstcl;
    lstcl.init();
    lst.init();
    lst.init();
    lst.fff( lstcl );
    lst.init();
    lst.show();
    lstcl.show();
 
    system("pause");
}
Вообщем есть класс товара и класс клиента, после того как клиент совершает покупку, у него деньги должны отниматся, но не отнимаются, вот этот метод itc->set_money( itc->get_money() - ita->get_price() );, подскажите плз в чём проблема, и ещё надо как-то вывести общие деньги фиры, которые под статик, у меня постоянно пишет типа нет доступа

Добавлено через 9 минут
на счёт вывода общих денег попробовал вот так сделать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class A
{
private:
    int price;
    string name;
    static int all_money;
public:
    A(int price=0, string name="");
    void initA(int price, string name="");
    void showA();
    void show_money_A(); /// добавил этот класс
    static int key_sort;
    bool operator<( const A &ob2);
    ////////////////////////////////////////////
    int get_price() {return price;}
    string get_name() {return name;}
    void dev_all_money(int n) { A::all_money += n;}
};
и потом
C++
1
2
3
4
void MyList :: show_money()
{
    it->show_money_A();
}
- через метод класса наследника итератором, выдаёт ошибку в конце работы программы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru