0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 19
1

Класс для работы с объектом "рациональная дробь"

16.12.2014, 18:15. Показов 5291. Ответов 2
Метки нет (Все метки)

Надо ввести класс для работы с объектом "рац.дробь" и реализовать 1)умножение(деление) двух дробей 2)сравнение двух дробей.Сравнение двух дробей есть,как сделать первый пункт?
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
#include <iostream>
#include <conio.h>
using namespace std;
 
class CDrob
{
private:
    int n;
    int m;
public:
    CDrob(): n(1),m(1) // Конструктор без параметров
    { }
 
    CDrob(int n1,int m1): n(n1) // Конструктор с параметрами
    {
        if(m1 == 0) // Если делитель равен нулю - ошибка
        { cout << "Error" << endl; }
        else
        { m = m1; }
    }
 
    CDrob operator * (CDrob temp) // Перегрузка операции *
    {
        CDrob buffer;
        buffer.m = m * temp.m;
        buffer.n = n * temp.n;
        return buffer;
    }
 
    CDrob operator / (CDrob temp) // Перегрузка операции /
    {
        CDrob buffer;
        buffer.m = m * temp.n;
        buffer.n = n * temp.m;
        return buffer;
    }
 
    CDrob operator = (CDrob& temp) // Перегрузка операции присваивания
    {
        n = temp.n;
        m = temp.m;
        return CDrob(n,m);
    }
     
     bool operator==(const CDrob &right) // Перегрузка операции проверки на равенство
    {
         return n*right.m == m*right.n;
    }
 
friend ostream& operator << (ostream& s,CDrob& temp); // Вывод самой дроби
};
 
ostream& operator << (ostream& s,CDrob& temp)
{
    s << temp.n << "/" << temp.m;
    return s;
}
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    CDrob drob1(2,3);
    CDrob drob2(2,4);
 
    if (drob1 == drob2)
        cout << "Дроби равны" << endl;
    else
        cout << "Дроби не равны" << endl;
    
 
    system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2014, 18:15
Ответы с готовыми решениями:

Ввести класс для работы с объектом "рациональная дробь"
Ввести класс для работы с объектом &quot;рациональная дробь&quot;.Реализовать: а)сложение(вычитание) двух...

Создать класс "Рациональная дробь"
Данные класса: числитель и знаменатель дроби. Функции класса: сложение, вычитание, умножение,...

Создать класс "Рациональная дробь"
Реализуйте класс Дробь. Необходимо хранить числитель и знаменатель в качестве переменных-членов....

Класс "Рациональная дробь"
Здраствуйте, вот мой код. #include &lt;iostream&gt; using namespace std; class TCost {...

2
244 / 164 / 133
Регистрация: 30.09.2012
Сообщений: 690
16.12.2014, 18:28 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
  CDrob &operator *= (CDrob temp) // Перегрузка операции *=
    {
        this->m *= temp.m;
        this->n *= temp.n;
        return *this;
    }
 
    CDrob &operator /= (CDrob temp) // Перегрузка операции /=
    {
        this->m /= temp.n;
        this->n /= temp.m;
        return *this;
    }
Например, так

Добавлено через 2 минуты
В операции присваивания желательно добавить проверку на самоприсваивание.

C++
1
2
3
4
5
6
7
8
9
   CDrob &operator = (CDrob& temp) // Перегрузка операции присваивания
    {
        if(this != &temp)
{
        n = temp.n;
        m = temp.m;
}
        return *this;
    }
0
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 19
16.12.2014, 22:39  [ТС] 3
Gr1f0nn, спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2014, 22:39
Помогаю со студенческими работами здесь

Класс "Рациональная дробь"
Реализовать класс Rational, используя два массива из 100 элементов типа unsigned char для...

Для класса "Рациональная дробь" перегрузить операторы сложения, вычитания, умножения и деления
Добрый вечер уважаемые участники форума. Прошу вас пожалуйста помочь с моим заданием....

Ввести класс для работы с объектом "многочлен"
Здравствуйте. Помогите пожалуйста с кодом программы: Ввести класс для работы с объектом...

Ввести класс для работы с объектом "множество целых чисел"
6)Ввести класс для работы с объектом &quot;множество целых чисел&quot;.Реализовать: 1)пересечение двух...

Перегрузка операций в классе "рациональная дробь"
Есть класс &quot;рациональная дробь&quot; с двумя закрытыми полями - числитель и знаменатель. Нужно...

Создание меню в консоли для работы с классом "Дробь"
очень нужна помощь,как надо описать сложение вычитание умножение и деление дробей в меню ,хотя бы...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru