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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
YaDenis03
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 139
#1

Разработайте класс FRACTION - C++

10.01.2013, 01:54. Просмотров 772. Ответов 10
Метки нет (Все метки)

[18]

Задание 1: Разработка класса.
Разработайте класс FRACTION.
Элемент класса:
- числитель;
- знаменатель.

Методы:
- конструктор без параметров (по умолчанию);
- конструктор с параметрами;
- конструктор копирования;
- деструктор;
- метод, осуществляющий ввод значений полей класса с клавиатуры;
- метод, осуществляющий вывод значений полей класса на экран в виде: 5 6/7.

Задание 2: Перегрузка операций.
Добавьте в разработанный класс FRACTION перегрузку следующих операций:
- сложение (+);
- вычитание (-);
- сравнение;
- сокращение дроби.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2013, 01:54     Разработайте класс FRACTION
Посмотрите здесь:

Класс Fraction... - C++
Привет! Парни, помогите разобраться... я еще не очень в этом разбираюсь... компилятор выдает ошибки: 1. warning C4183: Fraсtion:...

Создать класс fraction - C++
Создайте класс fraction. Данные класса должны быть представлены двумя полями:числителем и знаменателем. Методы класса должны получать от...

Реализовать класс Fraction - C++
Реализовать класс Fraction из задание 1, используя для представления целой части класс LongLong из задания 2, а для представления дробной...

Модифицируйте класс fraction - C++
Модифицируйте класс fraction в четыре функциональном дробном калькуляторе, чтобы он использовал перегруженные операции сложения, вычитания,...

Описать класс Fraction - C++
здравствуйте нужна ваша помощь задание Создайте класс Fraction. Данные класса должны быть представлены двумя полями: числителем и...

Класс fraction, перегрузка операции деления - C++
подскажите как сделать перегрузку оператора деления : целая часть представлена в виде - long; дробная( после запятой) usigned short;...

Создать класс Fraction для работы с дробными десятичными числами - C++
Создать класс Fraction для работы с дробными десятичными числами. Число должно быть представлено двумя массивами типа unsigned char: целая...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
10.01.2013, 13:24     Разработайте класс FRACTION #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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <iostream>
 
class Fraction
{
public:
    Fraction();
    Fraction(int, int);
    Fraction(const Fraction&);
 
    ~Fraction() {}
 
    void SetFraction();
    void GetFraction() { std::cout << num << '/' << denom << std::endl; }
 
    Fraction operator+(const Fraction&);
    Fraction operator-(const Fraction&);
    bool operator==(const Fraction&);
 
private:
    int num;
    int denom;
};
 
// --- 
 
Fraction::Fraction():
    num(0), denom(0)
{}
 
Fraction::Fraction(int _num, int _denom):
    num(_num), denom(_denom)
{}
 
Fraction::Fraction(const Fraction& rhs)
{
    this->num = rhs.num;
    this->denom = rhs.denom;
}
 
void Fraction::SetFraction()
{
    std::cout << "Enter numerator: ";
    std::cin >> num;
 
    std::cout << "Enter denominator: ";
    std::cin >> denom;
}
 
// ---
 
Fraction Fraction::operator+(const Fraction& rhs)
{
    Fraction temp;
 
    temp.num = this->num + rhs.num;
    temp.denom = this->denom + rhs.denom;
 
    return temp;
}
 
Fraction Fraction::operator-(const Fraction& rhs)
{
    Fraction temp;
 
    temp.num = this->num - rhs.num;
    temp.denom = this->denom - rhs.denom;
 
    return temp;
}
 
bool Fraction::operator==(const Fraction& rhs)
{
    return ((this->num + this->denom) > (rhs.num + rhs.denom)) ? true : false; 
}
 
// ---
int main()
{
    Fraction f1;
 
    std::cout << "F1 \n";
    f1.SetFraction();
 
    Fraction f2;
 
    std::cout << "F2 \n";
    f2.SetFraction();
 
    Fraction f3 = f1 + f2;
 
    std::cout << "\nF3 = ";
    f3.GetFraction();
 
    system("PAUSE");
    return 0;
}
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
10.01.2013, 13:35     Разработайте класс FRACTION #3
27 стр.
Цитата Сообщение от SeregaC++ Посмотреть сообщение
denom(0)
Наверно все таки не стоит в знаменатель записывать ноль. 0 / 0 = ∞
YaDenis03
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 139
10.01.2013, 15:12  [ТС]     Разработайте класс FRACTION #4
спасибо, а вторую задачку можете сделать?
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
10.01.2013, 15:28     Разработайте класс FRACTION #5
YaDenis03, если Вы про перегрузку, то, как можно заметить, она там уже реализована.
YaDenis03
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 139
10.01.2013, 16:03  [ТС]     Разработайте класс FRACTION #6
BumerangSP, вычитания, сокращения дроби и сравнения нету
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
10.01.2013, 16:08     Разработайте класс FRACTION #7
Вычитание и сравнение:
C++
1
2
 Fraction operator-(const Fraction&);
    bool operator==(const Fraction&);
YaDenis03
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 139
11.01.2013, 00:01  [ТС]     Разработайте класс FRACTION #8
BumerangSP, куда это вставить, после чего?
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
11.01.2013, 00:03     Разработайте класс FRACTION #9
YaDenis03, это уже в коде реализовано.
YaDenis03
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 139
11.01.2013, 00:17  [ТС]     Разработайте класс FRACTION #10
BumerangSP, понял, спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2013, 01:33     Разработайте класс FRACTION
Еще ссылки по теме:

Создать класс Fraction, описывающий простую дробь. (Прошу помочь) - C++
Создать класс Fraction, описывающий простую дробь.Добавить конструктор по умолчанию, конструктор с параметрами.Реализовать умножение и...

Создайте новую програму, которая будет включать класс fraction - C++
Создайте новую програму, которая будет включать класс fraction, созданные в Том упражнении. ...

Разработайте класс - C++
При входе в метро некоторые пассажиры оплачивают проезд, а некоторые проходят бесплатно по удостоверения. Разработайте класс, для учета...

Разработайте класс MONEY - C++
Задание 1: Разработка класса. Разработайте класс MONEY. Элемент класса: рубли; копейки. Методы: конструктор без...

Разработайте класс стеков - C++
Разработайте класс стеков для хранения символов с реализацией в виде массива. Создать стек и заполнить его произвольными символами ...


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

Или воспользуйтесь поиском по форуму:
FreeMinder
36 / 36 / 2
Регистрация: 29.08.2012
Сообщений: 59
11.01.2013, 01:33     Разработайте класс FRACTION #11
Отлично, только чтоб складывать, отнимать и сравнивать дроби их нужно приводить к общему знаменателю
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
// наибольший общий делитель
int Fraction::GCD(int a, int b)
{    
     return b == 0 ? a : GCD(b, a % b);
}
// наименьшее общее кратное
int Fraction::LCM(int a, int b)
{
     return a / GCD(a, b) * b;
}
// сокращение дроби
void Fraction::Reduce()
{
    int n = num / GCD(num, denom);
    int d = denom / GCD(num, denom);            
    num   = n;
    denom = d;
}
Fraction Fraction::operator+(const Fraction& rhs)
{
    int lcm = LCM(denom,rhs.denom);
    Fraction result(num * (lcm / denom) + rhs.num * (lcm / rhs.denom), lcm);
    result.Reduce();
    return result;
}
Минус и сравнение по аналогии.
Yandex
Объявления
11.01.2013, 01:33     Разработайте класс FRACTION
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru