Определить абстрактный класс Сurrency для работы с денежными суммами. Определить в нем методы перевода в рубли и вывода на экран. На его основе реализовать классы Dollar, Euro и Pound (фунт стерлингов) с возможностью пересчета в центы и пенсы соответственно и указанием текущего курса.. Создать класс Purse (кошелек), содержащий массив объектов этих классов в динамической памяти. Предусмотреть возможность случайного наполнения кошелька купюрами различного типа и подсчета общей суммы кошелька при изменении курса валют. В программе продемонстрировать функциональность разработанных классов
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
| #include <conio.h>
#include <tchar.h>
#include <iostream>
using namespace std;
class Currency
{
protected:
float rate;
float amount;
float amount_rub;
public:
virtual int fb( )=0;//нулевая виртуальная функция
void ConvertInRub()//метод перевода текущей валюты в рубли
{
amount_rub = amount*rate;//Сумма в рублях
}
void Out()//метод вывода на экран в текущей валюте и в рублях
{
cout<<"сумма = "<<amount<<endl;
}
void Input_amount()
{
cout<<"Введите сумму "<<endl;
cin>>amount;
}
float GetAmount()
{
return amount;
}
float GetAmountInRubles()
{
return amount_rub;
}
};
class Dollar: public Currency
{
float cent;
public:
Dollar(){rate = 30.59;}//в конструкторе инициализируем курс валюты класса-родителя согласно курсу доллара в рублях
void ConvertInCent()
{
cent = amount*100;
}
virtual int fb( ){return 0;}
};
class Euro: public Currency
{
float cent;
public:
Euro(){rate = 39.92;}//в конструкторе инициализируем курс валюты класса-родителя согласно курсу доллара в рублях
void ConvertInCent()
{
cent = amount*100;
}
virtual int fb( ){return 0;}
};
class Pound: public Currency
{
float pens;
public:
Pound(){rate = 46.42;}//в конструкторе инициализируем курс валюты класса-родителя согласно курсу доллара в рублях
void ConvertInPens()
{
pens = amount*100;
}
virtual int fb( ){return 0;}
};
class Purse
{
float TotalAmountInRubles;
float TotalAmount;
int n;//количество карманов в кошельке для каждой валюты
Dollar * dol;
Euro * euro;
Pound * pound;
public:
Purse(int _n)
{
n = _n;
dol = new Dollar[n];
euro = 0; pound = 0;
TotalAmountInRubles = 0;
TotalAmount = 0;
}//конструктор для массива долларов (1 параметр)
Purse(int _n, char c)
{
n = _n;
euro = new Euro[n];
dol = 0; pound = 0;
TotalAmountInRubles = 0;
TotalAmount = 0;
}//конструктор для массива евро (2 параметр)
Purse(int _n, char c, char d)
{
n = _n;
pound = new Pound[n];
dol = 0; euro = 0;
TotalAmountInRubles = 0;
TotalAmount = 0;
}//конструктор для массива фунтов стерлингов (3 параметра)
~Purse()
{
if (dol !=0) delete [] dol;
if (euro !=0) delete [] euro;
if (pound !=0) delete [] pound;
}
float GetTotalAmountInRubles()//метод подсчета итоговой суммы в рублях
{
for (int i = 0; i < n; i++)
{
if (dol != 0)
TotalAmountInRubles += dol[i].GetAmountInRubles();
if (euro != 0)
TotalAmountInRubles += euro[i].GetAmountInRubles();
if (pound != 0)
TotalAmountInRubles += pound[i].GetAmountInRubles();
}
return TotalAmountInRubles;
}
float GetTotalAmount()//метод подсчета итоговой суммы в текущей валюте
{
for (int i = 0; i < n; i++)
{
if (dol != 0)
TotalAmount += dol[i].GetAmount();
if (euro != 0)
TotalAmount += euro[i].GetAmount();
if (pound != 0)
TotalAmount += pound[i].GetAmount();
}
return TotalAmount;
}
void add()//метод ввода в кошелек для каждой из валют
{
cout<<"введите "<<n<<" кошелек"<<endl;
for (int i = 0; i < n; i++)
{
if (dol != 0)
{
dol[i].Input_amount();
dol[i].ConvertInRub();
dol[i].ConvertInCent();
}
if (euro != 0)
{
euro[i].Input_amount();
euro[i].ConvertInRub();
euro[i].ConvertInCent();
}
if (pound != 0)
{
pound[i].Input_amount();
pound[i].ConvertInRub();
pound[i].ConvertInPens();
}
}
}
void output()
{
cout<<"сумма = "<<GetTotalAmount()<<endl;
cout<<"в рублях = "<<GetTotalAmountInRubles()<<endl;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
setlocale( LC_ALL,"Russian" );
int n;
cout<<"Укажите количество кошелков для доллара "<<endl;
cin>>n;
Purse d(n);
d.add();
d.output();
cout<<"Укажите количество кошелков для евро "<<endl;
cin>>n;
Purse e(n,'s');
e.add();
e.output();
cout<<"Укажите количество кошелков для фунт "<<endl;
cin>>n;
Purse p(n,'s','s1');
p.add();
p.output();
cout<<"****************************************************"<<endl;
system("pause");
return 0;
} |
|
Мне нужно сделать чтобы из 3 массивов у меня был только 1 ,в который будут заноситься все значения
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
| void add()//метод ввода в кошелек для каждой из валют
{
cout<<"введите "<<n<<" кошелек"<<endl;
for (int i = 0; i < n; i++)
{
if (dol != 0)
{
dol[i].Input_amount();
dol[i].ConvertInRub();
dol[i].ConvertInCent();
}
if (euro != 0)
{
euro[i].Input_amount();
euro[i].ConvertInRub();
euro[i].ConvertInCent();
}
if (pound != 0)
{
pound[i].Input_amount();
pound[i].ConvertInRub();
pound[i].ConvertInPens();
}
}
} |
|