Показать сообщение отдельно
Старый 24.09.2015, 11:26   #1 (permalink)
Oxidous
Новичок
 
Регистрация: 12.07.2011
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 1 сообщении
Репутация: 110
По умолчанию Простой калькулятор рациональных чисел на C++

Всем доброго времени суток,
Только начал изучать C++ и задали вот такое задание:

Напишите программу, которая позволяет совершать математические действия (сложение, вычитание, умножение, деление, сравнение) с рациональными числами.
Создайте класс для рациональных чисел.Данные класса - рациональные числа ( числитель и знаменатель). В классе должны быть такие методы: сложение, вычитание, умножение, деление, сравнение (больше, меньше, равно), отрицательное (умножение на -1). Данные методы должны возвращать рациональные числа.
Операция сложения a + b при помощи этого класса будет выглядеть так: a.sloz(b);
Так же в классе обязательно должны быть методы: ввод и вывод.

В общем, нужно написать программу, вида:
Ввожу первое рационально число (допустим, 3/4)
Ввожу второе рациональное число(допустим 16/33)
Выводится результат сложения, вычитания, умножения, деления, сравнения и умножения на -1 введённых рациональных чисел.

С целыми числами никаких проблем нет абсолютно, довольно быстро написал консольную программу,но нужно,чтоб было с рациональными числами. Потому очень прошу помочь.

Вот то,что я написал с целыми числами:

Код:
#include<iostream>
using namespace std;

class MyCalc
{
	private: 
	int a;
	int b;
	
	public: 
	
	void vvod_vivod() 
	{
		cout << "Введите первое число: ";
		cin >> a;
		cout << " " << endl; 
		cout << "Введите второе число: ";
		cin >> b;
		cout << " " << endl;
	}
	void sloz()
	{
		cout << "Сложение " << "(" << a << " + " << b << ")" << " = " << a + b << endl;
	}
	void vicit()
	{
		cout << "Вычитание " << "(" << a << " - " << b << ")" << " = " << a - b << endl;
	}
	void umnoz()
	{
		cout << "Умножение " << "(" << a << " * " << b << ")" << " = " << a * b << endl;
	}
	void delen()
	{
		cout << "Деление " << "(" << a << " / " << b << ")" << " = " << a / b << endl;
	}
	void sravn()
	{
		if (a==b) cout << a << " равно "<< b << endl;  
                if (a<b)   cout << a << " меньше "<< b << endl;  
                if (a>b)   cout << a << " больше "<< b << endl; 
	}
	void otric()
	{
		cout << "Отрицательно: " << "((" << a << " * " << b << ")" << " * -1)"<< " = " << (a * b) * -1 << endl;
	}
};

int main()
{
	setlocale(0, ""); 
	
	cout << "Калькулятор целых чисел.\n" << endl;
	
	MyCalc c1; 
	
	c1.vvod_vivod();
	c1.sloz();
	c1.vicit();
	c1.umnoz();
	c1.delen();
	c1.sravn();
	c1.otric();
	cout << " " << endl;
  
	system("pause"); 
	return 0; 
}
Oxidous вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070