Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 2
Регистрация: 14.12.2014
Сообщений: 35
1

Определить абстрактный класс для работы с денежными суммами

15.02.2017, 10:33. Показов 3857. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Определить абстрактный класс С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();
            }
            
        }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2017, 10:33
Ответы с готовыми решениями:

Определить абстрактный класс для работы с денежными суммами
Ребят, тут такое дело, завис над задачей: Определить абстрактный класс Сurrency для работы с...

Создать класс Money для работы с денежными суммами
Помогите решить:-[ Создать класс Money для работы с денежными суммами. Число должно быть...

Создать класс Money для работы с денежными суммами
Номиналы российских рублей могут принимать значения 1, 2, 5, 10, 50, 100, 500, 1000, 5000. Копейки...

Создать класс Money для работы с денежными суммами
Проблемы с задачей, а точнее, её полное не понимание. Надеюсь на вашу помощь.

0
15.02.2017, 10:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2017, 10:33
Помогаю со студенческими работами здесь

создать класс Money для работы с денежными суммами
1. Определение класса. Оценивается полнота и корректность определения класса (объявление его полей...

Реализовать класс Money для работы с денежными суммами; перегрузить операторы согласно условию
Вот условие задачи:Номиналы российских рублей могут принимать значения 1, 2, 5, 10, 50, 100, 500,...

Создание класса для работы с денежными суммами
Создать класс Money для работы с денежными суммами. Сумма должна быть представлена массивом, каждый...

Создать структуру Money для работы с денежными суммами
Люди, помогите, пожалуйста! Есть задача: Создать структуру Money для работы с денежными суммами....


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru