24.设计多项式类Polynomial,实现两多项式相加。具体要求如下:
(1)私有数据成员
·double a[10][2]; 存放多项式,包含一个系数和一个指数。例如:2X4的系数为2,指数为4。
·int n; 存放多项式的项数
(2)公有成员函数
·Polynomial (double b[][2],int x) ; 定义构造函数,给私有数据成员初始化。
·Polynomial operator + (Polynomial); 重载运算符+,实现两个多项式相加。
·Polynomial operator += (Polynomial &); 重载运算符+=,实现两个多项式相加赋值。
·Polynomial operator = (Polynomial &); 重载运算符=,实现多项式赋值。
·void print(); 输出多项式。
(3)在主函数中完成对Polynomial类的测试。
求大神按照要求用c++帮我解决
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- ChatGPTᴼᴾᴱᴺᴬᴵ 2023-05-26 22:44关注
该回答引用ChatGPT-3.5
下面是按照您的要求使用C++实现的
Polynomial
类及其成员函数:#include <iostream> class Polynomial { private: double a[10][2]; int n; public: Polynomial(double b[][2], int x) { n = x; for (int i = 0; i < n; i++) { a[i][0] = b[i][0]; a[i][1] = b[i][1]; } } Polynomial operator+(Polynomial poly) { Polynomial result(*this); int i, j, k; i = j = k = 0; while (i < n && j < poly.n) { if (a[i][1] > poly.a[j][1]) { result.a[k][0] = a[i][0]; result.a[k][1] = a[i][1]; i++; } else if (a[i][1] < poly.a[j][1]) { result.a[k][0] = poly.a[j][0]; result.a[k][1] = poly.a[j][1]; j++; } else { result.a[k][0] = a[i][0] + poly.a[j][0]; result.a[k][1] = a[i][1]; i++; j++; } k++; } while (i < n) { result.a[k][0] = a[i][0]; result.a[k][1] = a[i][1]; i++; k++; } while (j < poly.n) { result.a[k][0] = poly.a[j][0]; result.a[k][1] = poly.a[j][1]; j++; k++; } result.n = k; return result; } Polynomial operator+=(Polynomial& poly) { *this = *this + poly; return *this; } Polynomial operator=(Polynomial& poly) { n = poly.n; for (int i = 0; i < n; i++) { a[i][0] = poly.a[i][0]; a[i][1] = poly.a[i][1]; } return *this; } void print() { for (int i = 0; i < n; i++) { std::cout << a[i][0] << "X^" << a[i][1]; if (i != n - 1) { std::cout << " + "; } } std::cout << std::endl; } }; int main() { double poly1[3][2] = { {2, 4}, {3, 2}, {1, 0} }; double poly2[4][2] = { {1, 3}, {-2, 2}, {4, 1}, {5, 0} }; Polynomial p1(poly1, 3); Polynomial p2(poly2, 4); Polynomial p3 = p1 + p2; p3.print(); p1 += p2; p1.print(); Polynomial p4 = p2; p4.print(); return 0; }
这段代码实现了
Polynomial
类,其中构造函数Polynomial(double b[][2], int x)
用于初始化多项式的私有数据成员,operator+
重载了加法运算符用于两个
多项式的相加,
operator+=
重载了加等运算符用于两个多项式相加并赋值,operator=
重载了赋值运算符用于多项式的赋值,print
函数用于输出多项式。
在主函数中,我们创建了两个多项式
p1
和p2
,并进行了测试,输出了相加后的多项式以及使用+=
运算符进行相加赋值后的结果。
请注意,这段代码中假设每个多项式的最大项数为10,可以根据需要进行调整。同时,未在代码中进行输入验证,假设输入的多项式数据格式正确。
解决 无用评论 打赏 举报
悬赏问题
- ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
- ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
- ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
- ¥20 腾讯企业邮箱邮件可以恢复么
- ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
- ¥15 错误 LNK2001 无法解析的外部符号
- ¥50 安装pyaudiokits失败
- ¥15 计组这些题应该咋做呀
- ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
- ¥15 让node服务器有自动加载文件的功能