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

Разработать класс (Объект «рациональная дробь, представлен парой целых чисел») - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как изменить размер компонентов? http://www.cyberforum.ru/cpp-beginners/thread938795.html
Доброго времени суток. Пишу сенсорное приложение на Builder c++ 2009. Подскажите пожалуйста, есть ли возможность изменить размер кнопок и календаря компонента DateTimePicker? Такой же вопрос по поводу checkbox и ячеек dbgrid. По поводу dbgrid инфу нашел, но не до конца понял (изменить размер ячеек, не меняя размер шрифта).
C++ Написать программу, демонстрирующую работу с классом для работы с рациональными дробями Составить описание класса. Определить конструктор по умолчанию, конструктор с параметрами и методы класса. Написать программу, демонстрирующую работу с классом для работы с рациональными дробями вида m/n, где m и n – целые числа. Реализовать методы класса: ввод дроби; сложение двух дробей; вычитание двух дробей; умножение двух дробей. http://www.cyberforum.ru/cpp-beginners/thread938790.html
Найти на отрезке [-10;10] абсциссу точки минимума функции. Исправить ошибки C++
Приветствую всех. Такая проблема: Делаю лабораторную работу, нужно отобразить результат работы программы в Visual C++ 2005 она работает, а вот в C++ 2008 не работает. Нужна ваша помощь, я не очень опытный в программиоровании: Это результат компиляции: 1>------ Построение начато: проект: 123, Конфигурация: Debug Win32 ------ 1>Компиляция... 1>1234.cpp 1>Компиляция манифеста в ресурсы...
C++ Преобразовать тип данных char[] -> wchar -> BYTE для структуры DATA_BLOB crypt32.dll
Помогите, пожалуйста, написать за меня: 1) преобразование аргумента ком. строки -> в Unicode (какой не знаю): пытаюсь перевести код, данный в статье: http://www.remkoweijnen.nl/blog/2007/10/18/how-rdp-passwords-are-encrypted/ Нужно подставить в строки №№ 32, 57. #pragma comment(lib, "crypt32.lib") #include <windows.h> #include <stdio.h> // printf #include <stdlib.h> // system
C++ Hello world http://www.cyberforum.ru/cpp-beginners/thread938707.html
Здравствуйте при написании hello world возникает такая ошибка: error C2146: syntax error : missing ';' before identifier '_getch' Вот мой код #include "stdafx.h" #include <conio.h> #include <stdio.h> using namespace System;
C++ Пустой конструктор без аргументов Всем доброго времени суток. Я сейчас в процессе изучения С++, читаю книгу Лафоре "Объектно-ориентированное программирование в С++". На странице 242 имеется код, в котором используется пустой конструктор без аргументов. Вопрос: для чего он нужен? Неполный код: class card { private: int number; подробнее

Показать сообщение отдельно
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
16.08.2013, 12:24     Разработать класс (Объект «рациональная дробь, представлен парой целых чисел»)
Делал когда то подобное. Только сравнения тут нет, но может будет полезным. В коде в работе программы есть неточность(я не помню какая именно, но помню, что есть и влом было исправлять )

rational.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
25
26
27
28
29
30
31
32
33
34
35
36
37
// Класс для работы с дробями. Операции: "+", "-", "*", "/"
 
#ifndef RATIONAL_H
#define RATIONAL_H
#include <iostream>
using namespace std;
 
class Rational
{
    friend ostream &operator << (ostream &, Rational &);
    friend istream &operator >> (istream &, Rational &);
 
public:
    Rational(int = 1, int = 1);
    Rational(Rational &);
    void setRational(int, int);
    Rational operator + (Rational &);
    Rational operator - (Rational &);
    Rational operator * (Rational &);
    Rational operator / (Rational &);
    void sumRational(Rational, Rational);
    void diffRational(Rational, Rational);
    void prodRational(Rational, Rational);
    void quoRational(Rational, Rational);
    void printRational();
    void printDoubleRational();
    ~Rational();
 
private:
    int nodR(int, int);
    int nokR(int, int);
    int numer;
    int denom;
 
 
};
#endif
rational.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
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include "rational.h"
#include <iostream>
#include <iomanip>
using namespace std;
 
Rational::Rational(int ch, int zn)
{
    setRational(ch, zn);
}
 
Rational::Rational(Rational &arg)
{
    setRational(arg.numer, arg.denom);
}
 
Rational::~Rational() {};
 
int Rational::nodR(int x, int y)
{
    if ( y == 0 )
        return x;
    else
        return nodR(y, x % y);
}
 
int Rational::nokR(int x, int y)
{
    for (int i = 1; i > 0; i++)
        if (i % x == 0 && i % y == 0)
            return i;
    return 1;
}
 
void Rational::setRational(int ch, int zn)
{
    int nod;
 
    if (ch >= zn)
        nod = nodR(ch, zn);
    else
        nod = nodR(zn, ch);
 
    if (!zn)
        cout << "Деление на \"0\" невозможно." << endl;
    else
        if (ch < 0 && zn < 0)
        {
            numer = (ch / nod) * -1;
            denom = (zn / nod) * -1;
        }
        else
        {
            numer = ch / nod;
            denom = zn / nod;
        }
    
}
 
void Rational::sumRational(Rational x, Rational y)
{
    int nok = nokR(x.denom, y.denom);
 
    setRational((x.numer * (nok / x.denom)) + (y.numer * (nok / y.denom)), nok);
}
 
void Rational::diffRational(Rational x, Rational y)
{
    int nok = nokR(x.denom, y.denom);
 
    setRational((x.numer * (nok / x.denom)) - (y.numer * (nok / y.denom)), nok);
}
 
void Rational::prodRational(Rational x, Rational y)
{
    setRational(x.numer * y.numer, x.denom * y.denom);
}
 
void Rational::quoRational(Rational x, Rational y)
{
    setRational(x.numer * y.denom, x.denom * y.numer);
}
 
void Rational::printRational()
{
    cout << numer << "/" << denom;
}
 
void Rational::printDoubleRational()
{
    cout << setprecision(6) << setiosflags(ios::fixed | ios::showpoint) 
         << (double)numer / (double)denom;
}
 
ostream &operator << (ostream &output, Rational &right)
{
    right.printRational();
    return output;
}
 
istream &operator >> (istream &input, Rational &right)
{
    input >> right.numer;
    cin.get();
    input >> right.denom;
    right.setRational(right.numer, right.denom);
    return input;
}
 
Rational Rational::operator+(Rational &right)
{
    Rational temp = *this;
    temp.sumRational(temp, right);
    return temp;
}
 
Rational Rational::operator-(Rational &right)
{
    Rational temp = *this;
    temp.diffRational(temp, right);
    return temp;
}
 
Rational Rational::operator*(Rational &right)
{
    Rational temp = *this;
    temp.prodRational(temp, right);
    return temp;
}
 
Rational Rational::operator/(Rational &right)
{
    Rational temp = *this;
    temp.quoRational(temp, right);
    return temp;
}
 
Текущее время: 15:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru