Лабораторная работа 6: Лаборторная работа 6 ИУ5
Описание
Постановка задачи:
Ввод полинома:
• Термы полинома могут вводиться в любом порядке.• Во вводимом терме может присутствовать коэффициент -1.
• Терм (член полинома одного порядка) может складываться с другим термом (например, допустим ввод 3x^2+(–x^2), -3x^2 + x^2)
• Пробелы при вводе могут появляться где угодно.
класс Term:
• Целые члены-данные для коэффициента и показателя степени• Три конструктора (можно обойтись одним):
o Без параметров для представления 0x0
o С одним параметром, например 3, для представления 3x0
o С двумя параметрами, например 3 и 2, для представления 3x2
• Перегруженный operator +, который получает 2 терма как параметры и возвращает терм-результат.
• Перегруженную операцию istream>> для ввода терма в виде, определенном выше в разделе «Ввод полинома».
• Перегруженную операцию ostream << для печати терма в виде:
3x0 как 3, 3x1 как 3x, 1x3 как x^3, -3x2 как -3x^2
• Дружественный класс Polynomial
Опишите и протестируйте этот класс до создания класса Polynomial. Представьте main() для демонстрации работы этого класса независимо от Polynomial.
Класс Polynomial
• Члены-данные poly (массив из 6 термов или сортированный список), и целое degree (степень)• Три конструктора
o Без параметров для представления полинома 0
o С одним целым параметром, например 3, для представления полинома 3
o С одним параметром-термом, например Term(3,2), для представления полинома 3x2
• Конструктор копирования и операторы присваивания =, +=, *=
• Скрытый член Order для указания способа хранения термов: по возрастанию или убыванию степени.
• Друзья класса: operator *, operator +, каждый из которых получает 2 полинома как параметры и возвращает полином-результат.
• Друг класса ostream << - для печати полинома 5x5 - 4x3 + 1x2 + 0x1 - 7x0
в виде: 5x^5 - 4x^3 + x^2 - 7
Представьте main() для демонстрации работы класса Polynomial и 5 файлов: Term.h, Term.cpp, Polynomial.h, Polynomial.cpp, mymain.cpp.
Требования к отчету.
Отчет должен содержать следующие разделы:
• «Постановка задачи», в котором на основании задания уточняются задачи, для решения которых предполагается использовать разрабатываемый класс.
• «Разработка интерфейса класса», в котором описываются и обосновываются состав полей и методов класса, прототипы методов. Интерфейс класса должен обеспечить решение всех предполагаемых задач. При разработке интерфейса класса надо руководствоваться принципом: второстепенные детали или детали реализации должны быть упрятаны (инкапсулированы) внутрь класса.
• «Текст программы», в котором приведены исходные тексты разработанной программы. При защите лабораторной работы студент должен уметь объяснить назначение каждого оператора разработанной им программы.
• «Анализ результатов», в котором приводятся разработка контрольных примеров, распечатки результатов выполнения программой контрольных примеров и анализ результатов.
Содержимое файла:
1) Класс Term.
2) класс Polynomial состоящий из динамического массива Term-ов.

Заголовки класса Polynomial:
