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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Azaz888
2 / 2 / 1
Регистрация: 06.09.2015
Сообщений: 33
#1

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

05.06.2016, 12:50. Просмотров 160. Ответов 3
Метки нет (Все метки)

Привет, не могу никак операции никремента и декремента сделать, помогите разобраться тупому и переделать функции 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");
 
 }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2016, 12:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка операций никремента и декремента (C++):

Перегрузка декремента - C++
Само условие звучит так. Написать функцию декремента единственного параметра. Написать функцию возвращающую ссылку на элемент глобального...

Перегрузка оператора декремента - C++
Приветствую Вас форумчане:dance3: Столкнулся с такой проблемой при перегрузке операции декремента для своего класса, вот код: ...

Перегрузка оператора декремента - C++
Собственно, нужно написать программу для уменьшения значения переменной на 10, путем перегрузки оператора декремента(&quot;--&quot;). Не знаю даже...

Перегрузка оператора инкремента/декремента через friend - C++
Нужно реализовать перегрузку унарного оператора через friend. Что я пытаюсь сделать: friend void operator -- ();//prototype void...

Перегрузка операций - C++
Друзья, помогите с перегрузкой некоторых операций, пожалуйста) Задание: Есть угол на плоскости(поля угол и минуты). Перегрузить...

Перегрузка операций - C++
Здравствуйте, помогите реализовать программу: Класс - множество set. Дополнительно перегрузить следующие операции: + - добавить элемент в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5319 / 4639 / 1551
Регистрация: 14.04.2014
Сообщений: 18,452
05.06.2016, 14:51 #2
И что должно происходить-то? У тебя же не числа, а структуры.
0
Azaz888
2 / 2 / 1
Регистрация: 06.09.2015
Сообщений: 33
08.06.2016, 21:11  [ТС] #3
nmcf, ну прост написал summa, теперь ошибка "summa: необъявленный идентификатор", что делать дальше помогите пожалуйста
0
nmcf
5319 / 4639 / 1551
Регистрация: 14.04.2014
Сообщений: 18,452
08.06.2016, 21:35 #4
Так, что ли?
C++
1
2
3
4
5
Account& operator+=(const Account &A)
{
    summa += A.summa;
    return *this;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2016, 21:35
Привет! Вот еще темы с ответами:

Перегрузка операций - C++
Всем привет. Пытаюсь понять ооп. Задали такую лабу: 1. Определить класс согласно варианту задания (табл.1, столбец 2). 2. Определить...

Перегрузка операций - C++
C++ ругается когда я пытаюсь сделать след-ю перегрузку операций. У меня трехмерный массив matrix и в цикле мне нужно использовать не...

Перегрузка операций - C++
Разработайте программу на языке С++, используя пользовательский тип данных – классы и перегрузку операций. Создайте класс Fraction...

Перегрузка операций! - C++
Здравствуйте, у меня есть код (работы со строками) и нужно перегрузить операцию чтобы данный класс (текст). мог прибавлять к себе другой...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.06.2016, 21:35
Ответ Создать тему
Опции темы

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