Вариант 2. Обыкновенные дроби

Сложность

12 баллов

Описание

Спроектировать и реализовать класс Fraction для работы с обыкновенными дробями.

В классе должны быть определены различные конструкторы (по умолчанию, с одним аргументом, с двумя аргументами, конструктор копирования).

Должны быть перегружены следующие операторы: +, -, *, /, ==, !=, <, >, <=, >=, << (вывод в поток типа ostream).

Защита

Для защиты лабораторной работы необходимо представить:

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

Пример

Разработанный класс Fraction должен допускать такое использование:

/*...*/

int main() {
	Fraction a;
	Fraction b(1);
	Fraction c(1,1);

	if (b == c) cout << "As expected\n"; else cout << "Something wrong\n";

	b = Fraction(1,2);

	cout << "a+b = " << a+b << endl
	     << "a-b = " << a-b << endl
	     << "b*c = " << b*c << endl;

	a = b = b*c;

	if (a != b) cout << "Something wrong...\n"; cout << "As expected\n";

	return 0;
}
Сайт управляется системой uCoz