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

Money - C++

Восстановить пароль Регистрация
 
LexaB
0 / 0 / 0
Регистрация: 31.10.2011
Сообщений: 31
29.11.2012, 14:17     Money #1
Создайте класс Money, в котором перегрузите арифметические
операции для работы с денежным форматом. Перегрузите два оператора
следующим образом:
double * Money //умножить число на деньги
double / Money //делить число на деньги
Эти операции требуют наличия дружественных функций, так как справа от оператора находится объект, а слева – обычно число. Убедитесь, что main()
позволяет пользователю ввести две денежные строки и число с плавающей
запятой, а затем корректно выполнить все семь арифметических действий с
соответствующими парами значений.

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
#include <stdio>
#include <conio>
#include <iostream>
#include <math>
using namespace std;
typedef unsigned int unit;
class TMoney
{ long double Summa; 
// вспомогательные приватные функции 
string toString() ;
long double round(const long double &r) 
{ long double t = fabs(r);
t = (t-floor(t)<0.5)?floor(t):ceil(t); 
return (r<0)?-t:t; 
} 
public: 
void Init(const long double &t); 
TMoney AddMoney(const TMoney &a); 
TMoney AddMoney(const long double &r);
TMoney SubtractMoney(const TMoney &b);
int CompareMoney(const TMoney &a); 
TMoney MultByNumber(const double &b); 
TMoney DevideByNum(const double &b); 
double DevideMoney(const TMoney &b); 
bool isNegative()
{ return (Summa<0); }
void ReadMoney() ;
void DisplayMoney(); } ;
// метод сравнения
 int TMoney::CompareMoney(const TMoney &a)
{ int sign = 0; 
if(Summa < a.Summa) sign = -1; 
else if (Summa > a.Summa) sign = 1;
return sign; }
// метод вычитания денежных сумм 
TMoney TMoney::SubtractMoney(const TMoney &b)
{ TMoney t=*this;
t.Summa -=b.Summa;
return t;
} 
// метод деления денежных сумм
double TMoney::DevideMoney(const TMoney &b)
{ return fabs(Summa)/fabs(b.Summa);
}
// метод деления на число 
 TMoney TMoney::DevideByNum(const double &b) 
{ TMoney t = *this;
if (b>0) t.Summa = round(Summa/b); 
return t; }
 
void TMoney::Init(const long double &t=0.0) 
{Summa = round(t*100);
}
// метод ввода денежных сумм
void TMoney::ReadMoney()
{
int k;
cout << "Rubli>"; cin >> Summa;
bool negative = (Summa<0);
Summa = floor(fabs(Summa)*100);
cout << "Kop>"; cin >> k;
if (k < 100) Summa+=k;
Summa = negative?-Summa: +Summa;
}
 
void main(){
 
TMoney metod;  metod.Init();
 
metod.ReadMoney();
 
metod.ReadMoney();
 
metod.Init();
 
 
 
getch();
 
 
}
Запускаются только 2 метода, ввод и инициализация, подскажите как запустить остальные.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2012, 14:17     Money
Посмотрите здесь:

C++ Создать класс Money для работы с денежными суммами
C++ Создать структуру Money для работы с денежными суммами
C++ Реализовать класс money
Класс Money C++
Разработайте класс MONEY C++
C++ Создать класс Money, содержащий следующие элементы
Создать класс Money C++
C++ Создать класс Money

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 19:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru