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

Перегрузка операций никремента и декремента - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Class http://www.cyberforum.ru/cpp-beginners/thread1755023.html
Создать класс vector3D, задаваемый тройкой координат. Обязательно должны бытьреализованы: сложение и вычитание векторов, скалярное произведение векторов,умножение на скаляр, вычисление длины вектора, сравнение длины векторов.Продемонстрировать работу членов-функций в основной функции программы может у кого-то есть шаблон чтобы я мог оттолкнуться от чего-то
C++ Оформление строки в консоли Windows через ESCAPE-последовательности Собственно, хочу по ходу строки менять стиль/цвет и т.п. Конечно есть варианты: - установить параметры консоли - вывести кусок строки - гоуту бегин но дело в том, что сама строка формируется у меня в результате рекурсивой конкатенации и выводится целиком. Остается вариант вклинить в нее в определенные места управляющие символы (если это возможно). Но навскидку вариант "\x1bне изменяет... http://www.cyberforum.ru/cpp-beginners/thread1754904.html
Потоки C++
Я создаю поток так: CreateThread(NULL, 0, MyThread, (LPVOID)&param, 0, NULL); Но мне нужно обработать 100 раз функцию MyThread. 100 потоков создавать нельзя, ка быть? Как дожидаться завершения одних потоков, чтобы потом на его место поставить новый?
C++ C++ Как скомпилировать программу в CodeBlock?
Новичок, установила Code Blocks 10.05. Создала консольное приложение. Написала первую программу "Hello World",а как скомпилировать не знаю.Нажимаю Build,в окне сообщений пишется вот что: Compiling: main.cpp Linking console executable: bin\Debug\программа_1.exe Output size is 913.10 KB Process terminated with status 0 (0 minutes, 4 seconds) 0 errors, 0 warnings При нажатии на пуск (зеленый...
C++ Написать программу для вычисления выражения http://www.cyberforum.ru/cpp-beginners/thread1754885.html
Написать программу и вычислить в С++ DI=R^3-\sqrt{\frac{c}{3q}}; R\begin{cases} \text{ q\sqrt{1+x} } \\ \text{ c+\frac{inq}{x} } \end{cases} Если 0,5< x < 1,2 Если х=1,2 с=1,2; q=7.05. Значение х задать с клавиатуры.
C++ Составить программу для вычисления выражения Составить программу и вычислить. С++ Z1=\frac{a1}{6}+k*e^2x; x=\sum_{j=1}^{3}\frac{bj}{c}+\sum_{j=1}^{3}\sqrt{B3} a0=12;Ax=24;h=4;k=25*10^-3;bj=0.65;9.2;12.82;c=3.6 Для организации цикла при вычислении Z,использовать оператор цикла while.do подробнее

Показать сообщение отдельно
Azaz888
1 / 1 / 0
Регистрация: 06.09.2015
Сообщений: 31
05.06.2016, 12:50     Перегрузка операций никремента и декремента
Привет, не могу никак операции никремента и декремента сделать, помогите разобраться тупому и переделать функции void snyat(), void put();перегруженный ввод и вывод сделал, а как эти сделать?

Вот мои наработки:

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
#include <iostream>
using namespace std;
#include <Windows.h>
#include <string>
#include <sstream>
 
 
class Account 
{ 
 
    string name; 
    int number; 
    int summa; 
    int percent;  
 
public:
    bool Init(string name, int number, int summa, int percent) 
    {
        if((summa<64)||(summa<73)||(number<=0)||(1>percent&&percent<100)||(1<percent&&percent>100)||(summa<=0)||(percent<=0))
            return false;
        else
        {
            return true;
        }
    }
    string operator!()//преобразование в строку
    {
        ostringstream os;
        os << name << "<-Фамилия "
            << number << "<-Номер счета "
            << summa << "<-Сумма "
            << percent << "<-Процент ";
        return os.str();
    }
    
    Account(string name="0", int number=0, int summa=0, int percent=0)  
    { 
        if(!Init(name,number,summa,percent))
        {
            cout<<"Данные не введены!Введите данные->"<<endl;;
        }
    };  
    Account(const Account&A)
    {
        *this=A;
    }
    void Read();//ввод с клавы
    void display();//вывод
    void smena();//смена владельца 
    void snyat();//снять сумму 
    void put();//положить 
    void per(); //начислить процент
    void perevod(); //перевод денег
    
     
    Account& operator+=(const Account &A);//Описать понятно как, а как сделать чтоб заработало(
 
    Account& operator-=(const Account &A);
 
    friend istream& operator>>(istream &t,Account &r);
    friend ostream& operator<<(ostream &t,const Account &r);
  
}; 
 
 
ostream& operator<<(ostream&t,const Account &r)
{
    t<<r.name<<" <- Фамилия \n"<<r.number<<" <- Номер счета \n"<<r.summa<<" <- Сумма \n"<<r.percent<<" <- Процент \n"<<endl;
    return t;
}
istream& operator>>(istream&t,Account &r)
{
    cout<<"Введите фамилию,номер счета,сумму(в руб.), проценты ->"<<endl;
    t>>r.name>>r.number>>r.summa>>r.percent;
    return t;
}
void Account:: smena() 
{ 
    cout << "Смена владельца счёта " << endl;
    cout << "Введите фамилию нового владельца " <<endl; 
    cin >> name; 
} 
 
 
 
void Account ::snyat() 
{   
    int s;
    cout << "Введите сумму, которую нужно снять ->"; 
    cin >> s; 
 
    if( s > summa) 
        cout << "Ошибка. На счету не такой суммы " <<endl; 
    else 
    { 
        summa -= s; 
        cout << "Остаток по счету -> " << summa << endl; 
    } 
} 
 
void Account::put() 
{   
    int s;
    cout << "Введите сумму, которую нужно внести ->"; 
    cin >> s; 
 
    summa += s; 
    cout << "Сумма на счету ->" << summa <<endl;
} 
 
void Account::per() 
{ 
    cout << "Процент по вкладу равен ->" << percent << endl;  
    summa = summa + ((summa*percent) / 100); 
    cout << "Сумма после начисления процента ->"<< summa << endl;
} 
 
void Account::perevod() 
{   
    int number;
    cout << "В какую валюту хотите перевести " << endl; 
    cout << "1- доллар " << endl;
    cout << "2- евро " << endl;   
    cout << "Введите цифру -> "; 
    cin >> number;  
    if(number == 1)
        cout << "Cумма на счете в долларах ->" << summa / 64 <<endl;  
    else if(number == 2) 
        cout << "Сумма на счете в евро -> " << summa / 73 << endl; 
    else 
        cout << "Ошибка. Такого варианта нет. "<< endl;
 
} 
 
int main() 
{   
   SetConsoleCP(1251);
   SetConsoleOutputCP(1251); 
string name2;
    Account A;  
    int number; 
    for( ; ;)
    {
        cout <<"Меню:" <<endl;
        cout << "1- Ввод данных" << endl;
        cout << "2- Вывод данных " << endl;
        cout << "3- Смена владельца счёта " << endl;
        cout << "4- Снять сумму" << endl;
        cout << "5- Положить сумму " << endl;
        cout << "6- Перевод суммы в другую валюту" << endl;
        cout << "7- Начислить проценты " << endl; 
        cout << "8- Выйти" << endl << endl;
        cout << "Введите цифру -> ";
        cin >> number;
 
        switch(number)
        {
        case 1:
            
            cin>>A;
 
            break;
        case 2:
            cout<<A;
            
            
            break;
        case 3: 
            
            A.smena();
            
            break;
        case 4: 
            A.snyat();
            
            break;
        case 5: A.put(); break;
        case 7: A.per(); break;
        case 6: A.perevod(); break;
        case 8: exit(1); break;
        default: cout << "Ошибка.Нет такой цифры" <<endl; break;
        }  
    system("pause");
    system("cls");
 
 }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru