Реализовать класс на С++

  • Автор темы Guest
  • Дата начала
G

Guest

#1
Нужна срочная помощь с реализацие класса. Сама задача такова:
Реализовать указанные классы с закрытыми полями, для каждого из которых кроме методов, указанных в задании, должны быть реализованы следующие методы:

Методы, которые возвращают значения полей

Метод инициализации

Ввод значения полей

Вывод на экран

Преобразование в строку

Там, где это необходимо, организовать проверку корректности данных. Продемонстрировать работу созданных классов на примерах.

Реализовать класс Money для работы с денежными суммами. Объекты класс определяются парой чисел (рубли, копейки). Реализовать методы сложения, вычитания, деления сумм, сравнение двух сумм, умножение и деление на число.

Я сама пыталась сделать но получилось не правильно(пример ниже).
Пожалуйста! Помогите исправить ошбибки. Очень срочно нужно!



Добавлено:
C++:
#include <iostream>
#include <math.h>
#include <string>
using namespace std;
class Money
{
public:
void initMoney()
{
rubli=0;
kopeiki=0;
}
void readMoney()
{
cout<<"Kopeiki";
cin>>kopeiki;
cout<<"rubli";
cin>>rubli;
cout<<"_Kopeiki";
cin>>money.kopeiki;
cout<<"_Rubli";
cin>>money.kopeiki;
}
string toString()
{
string s="";
string Digits="0123456789";
char d1, d2;
d1=rubli/10;
d2=rubli%10;
s=s+",";
d1=kopeiki/10;
d2=kopeiki%10;
s=s+Digits[d1];
s=s+Digits[d2];
return s;
}
void currentMoney()
{
if(rubli<10)cout<<"0";
cout<<rubli<<"р. ";
if(kopeiki<10)cout<<"0";
cout<<kopeiki<<"к."<<endl;
}
Money nextMoney()
{
Money m=*this;
m.kopeiki++;
if(m.kopeiki==100)
{
m.kopeiki=0;
m.rubli++;
}
return m;
}

int compareMoney(Money m)
{
int sign=0;
int sum1=rubli*100+kopeiki;
int sum2=m.rubli*100+m.kopeiki;
if(sum1<sum2)
sign=-1;
else
if(sum1>sum2)
sign=1;
return sign;
}
Money addMoney(Money m)
{
Money mSum;
int sum1=kopeiki+m.kopeiki;
mSum.kopeiki=sum1%100;
int sum2=rubli+m.rubli+sum1/100;
mSum.rubli=sum2;
return mSum;
}
int getk()
{
return kopeiki;
}
int getr()
{
return rubli;
}
private:
int rubli;
int kopeiki;
};
int main()
{
Money m1;
m1.readMoney();
m1.currentMoney();
cout<<m1.toString()<<endl;
Money m2=m1.nextMoney();
cout<<m2.toString()<<endl;
m2.readMoney();
cout<<m1.compareMoney(m2)<<endl;
cout<<m2.compareMoney(m1)<<endl;
return 0;
}
 

Вложения