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

Создать класс Money - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Заданное множество точек на плоскости. Найти выпуклую оболочку этого множества http://www.cyberforum.ru/cpp-beginners/thread1125054.html
Заданное множество точек на плоскости. Найти выпуклую оболочку этого множества, то есть выпуклый многоугольник с вершинами в некоторых точках этого множества, охватывающий все точки. Если честно даже не представляю как ее делать, помогите пожалуйста.
C++ Нужно считать данные из файла и заменить определенный текст на заданный Есть файл с таким содержимым: (в нем записаны вещ. числа) Пример: 1.000 1.111 2.222 3.333 4.444 5.555 6.555 4.333 3.333 4.444 6.666 7.777 Нужно заметить, что 1.000 1.111 - это в рамках моей программы ОДНО число (и также это один столбец, а вовсе не два!). Часть 1.000 я записываю в экземпляр структуры One (см.ниже), часть 1.111 в Two. (!) Кроме того, таких чисел может быть уйма, однако... http://www.cyberforum.ru/cpp-beginners/thread1125052.html
С чего начинать изучение C++. Книги C++
Прошу совета опытных людей. С чего начать учить С++ ? С какой книги будет легче стартануть ?
Длинная арифметика C++
Вот изучаю с++ попробывал написать длинную арифметику, но не сложение не деление которое мне необходимо не работает помогите найти ошибку в моем коде пожалуйста ;D зарание спасибо #include <iostream> using namespace std; void StrToMasiv(string S, int T) { int i, n; n=S.size();
C++ Поправить код непростой программы http://www.cyberforum.ru/cpp-beginners/thread1125047.html
Здравствуйте. Написал код для вычисления интеграла методом средних прямоугольников, а он не работает. Очень прошу помочь #include "stdafx.h" #include <iostream> #include <iomanip> #include <math.h> #include <conio.h> using namespace std; double fun(double); //прототип функции, которая передаёт имя функции в качестве параметра double f1(double x)
C++ Программа с виртуальной функцией Сгенерируйте абстрактный класс типа фигура, создайте производные от него классы типа треугольник, шестиугольник. В классах должны быть реализованы следующие методы: Конструкторы Деструкторы Метод отображения (выводит координаты на экран) - виртуальная функция. Помогите написать вот такую программу. Добавлено через 21 час 27 минут Есть какие нибудь идеи? подробнее

Показать сообщение отдельно
Slight
0 / 0 / 0
Регистрация: 27.12.2013
Сообщений: 36

Создать класс Money - C++

21.03.2014, 07:35. Просмотров 2216. Ответов 17
Метки (Все метки)

Задача:
Создать класс Money для работы с денежными суммами.Число должно быть представлено двумя полями: типом long для рублей и типом unsigned char - для копеек. дробная часть(копейки) при выводе на экран должна быть отделена от целой части запятойю реализовать сложение,вычитание, деление сумм, деление суммы на дробное число, умножение на дробное число и операцию сравнения.

В чем требуется помощь:
1.Написать функцию, которая бы после выполнения операции корректно перевела копейки в рубли(если будет большая сумма копеек, выходящая за рамки копеек) и прибавила их к рублям
2.Помочь с операциями деление сумм, деление суммы на дробное число, умножение на дробное число и операцию сравнения.
3. Помочь разобраться с методом toString

Мой вариант
Програмка в вот такой форме

main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "money.h"
#include<iostream>
#include<string>
#include<sstream>
 
using namespace std;
 
int main()
{
    money A, B;
 
        std::cout << "\nEnter first summ in format 'roubles'.'copecks':\t";
        std::cin >> A;
        std::cout << "Enter second summ in format 'roubles'.'copecks'':\t";
        std::cin >> B;
        std::cout << "Sum:\t\t" << (A+B) << std::endl;
        std::cout << "Raznost:\t\t" << ( A - B ) << std::endl;
        std::cout << "Delenien:\t\t" << ( A / B ) << std::endl;
 
cout << " to str: " << A.toString() << endl;
 
       return 0;
}
money.h

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
#ifndef MONEY
#define MONEY
#include <iostream>
 
using namespace std;
class money
{
  long roubles;
  unsigned int copecks;
 
 
public:
 std::string toString() const;
    friend istream &operator >>(istream &in,money &A); //Ввод
    friend ostream &operator <<(ostream &out,money A);  //Вывода
    friend money operator+(money A,money B);   //Сложение
    friend money operator-(money A,money B);   //Вычитание
    friend money operator/(money A,money B);
    string operator!();  //в строку
 
    //money add(money& other);
 
};
#endif
money.cpp
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
#include "money.h"
#include<iostream>
#include<string>
#include<sstream>
#include<cmath>
#include <iostream>
#include <iomanip>
#include <limits>
using namespace std;
 
   //Вводим данные
istream &operator>>(istream &in,money &A) {
    in >> A.roubles >> A.copecks;
    return in;
}
//Выводим
ostream &operator<<(ostream &out, money A) {
    out<<"Roubles: "<< A.roubles <<"; Copecks: "<<A.copecks<<endl;
    return out;
 
}
    //Складываем
        money operator+(money B, money A)
        { money temp;
            temp.copecks=A.copecks+B.copecks;
            temp.roubles=(A.roubles+B.roubles);
            return temp;
                }
 
             //Вычитаем
              money operator-(money A, money B)
            { money temp;
                temp.copecks=B.copecks-A.copecks;
                temp.roubles=(B.roubles-A.roubles);
                return temp; }
 
 
            std::string money::toString() const {
    std::ostringstream oss;
    oss<<"Roubles: "<<roubles<<"; Copecks: "<<copecks<<endl;
    return oss.str();
}
 
 
 
            //Делим
                money operator/(money A, money B)
                {     money temp;
                    if(A.roubles!=0 && A.copecks!=0)
                    {
                        temp.copecks=B.copecks/A.copecks;
                        temp.roubles=B.roubles/A.roubles;
                    }
                return temp;}
Добавлено через 3 часа 12 минут
Поможете?

Добавлено через 10 часов 23 минуты
Up =))))
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru