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

Как перегрузить оператор ввода? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Циклический сдвиг(маленький косяк) http://www.cyberforum.ru/cpp-beginners/thread763286.html
#include <iostream> using namespace std; #include <math.h> #include <conio.h> #include <windows.h> int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); const int n=3,m=4;
C++ Определить, имеется ли в строке три цифры подряд Определить, имеется ли в строке три цифры подряд. http://www.cyberforum.ru/cpp-beginners/thread763272.html
C++ Напечатать все слова отличные от последнего слова, предварительно перенести последнюю букву в начало слова
Дано текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв, между соседними словами - не менее одного пробела. Напечатать все слова отличные от последнего слова, предварительно превратив каждое из них по следующему правилу: перенести последнюю букву в начало слова.
С исходной строки символов удалить символы, отличные от русских букв и пробелов C++
С исходной строки символов удалить символы, отличные от русских букв и пробелов.
C++ Определить минимальный элемент квадратной матрицы, расположенный в левой части, ограничен диагоналями, включая диагональные элементы http://www.cyberforum.ru/cpp-beginners/thread763265.html
Определить минимальный элемент квадратной матрицы, расположенный в левой части, ограничен диагоналями, включая диагональные элементы.
C++ В строке удвоить данный символ Помогите. В строке удвоить данный символ. подробнее

Показать сообщение отдельно
yulla
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 59

Как перегрузить оператор ввода? - C++

16.01.2013, 13:26. Просмотров 260. Ответов 1
Метки (Все метки)

Как перегрузить оператор ввода?

rational.h

C++ (Qt)
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
#define _Rational_h_
#include <iostream>
 
using namespace std;
int nod(int p, int q) {
  if (p < 0) p = -p;
  if (q < 0) q = -q;  
  while (p != 0 && q != 0)
    if (p >= q)
      p %= q;
    else
      q %= p;
  return p + q;
}
 
class Rational {
 public:
  Rational() : numerator_(0), denominator_(1) {}
  Rational(int number) : numerator_(number), denominator_(1) {}
  Rational(int numerator, int denominator)
    : numerator_(numerator), denominator_(denominator) {
    optimize_();
  }
  int getNumerator() const { return numerator_; }
  int getDenominator() const { return denominator_; }
 private:
  void optimize_() {
    int nod_ = nod(numerator_, denominator_);
    numerator_ /= nod_;
    denominator_ /= nod_;
    if (denominator_ < 0) {
      numerator_ = -numerator_;
      denominator_ = -denominator_;
    }
  }
  int numerator_;
  int denominator_;
};
 
std::ostream &operator<<(std::ostream &stream, const Rational &number) {
  return stream << number.getNumerator() << "/" << number.getDenominator();
}
 
Rational operator+(const Rational &p, const Rational &q) {
  return Rational(p.getNumerator() * q.getDenominator() +
    q.getNumerator() * p.getDenominator(),
    p.getDenominator() * q.getDenominator());
    
}
 
Rational operator-(const Rational &p, const Rational &q) {
  return Rational(p.getNumerator() * q.getDenominator() -
    q.getNumerator() * p.getDenominator(),
    p.getDenominator() * q.getDenominator());
}
 
Rational operator*(const Rational &p, const Rational &q) {
  return Rational(p.getNumerator() * q.getNumerator(),
    p.getDenominator() * q.getDenominator());
}
 
Rational operator/(const Rational &p, const Rational &q) {
  return Rational(p.getNumerator() * q.getDenominator(),
    p.getDenominator() * q.getNumerator());
}
main.cpp

C++ (Qt)
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
#include "rational.h"
#include <iostream>
 
using namespace std;
int main() 
{
setlocale(LC_ALL,"russian");
Rational p, q;
Rational x1(5);
Rational x2(2.3);
Rational x3(3);
Rational x4(1);
Rational x5(1.5);
cin >> p;
cin >> q;
  std::cout <<"-p = " << "-" << p << std::endl;
  std::cout <<"1/p = " << x4/p << std::endl;
  std::cout << "p + q = " << (p + q) << std::endl;
  std::cout << "p - q = " << (p - q) << std::endl;
  std::cout << "p * q = " << (p * q) << std::endl;
  std::cout << "p / q = " << (p / q) << std:: endl;
  std::cout << "(x1*p)+(x2*q) = " << (x1*p)+(x2*q) << std:: endl;  
  std::cout << "(x3+(p*q))/(p+(x4-q)) = " << (x3+(p*q))/(p+(x4-q)) << std:: endl;  
  std::cout << "x4/(p+(x5*q)) = " << x4/(p+(x5*q)) << std:: endl;  
system("pause");
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru