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

Тема в разделе "C/C++/C#", создана пользователем -, 29 дек 2010.

  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;
    }
     

    Вложения:

Загрузка...

Поделиться этой страницей