一个有点复杂的c++设计

来源:百度知道 编辑:UC知道 时间:2024/06/21 15:28:07
实验五:(数组的应用)
设一元多项式的一个项可以用整数数组的2个元素来表示:指数ne, 系数nf (带符号的整数)。我们可以利用数组来表示一个一元多项式。例如多项式:
3X9-6X4+2X+7 可表示(指数和系数均为0表示结束)
9 3 4 -6 1 2 0 7 0 0 …
设每个一元多项式项数都不会超过十项。编出程序实现以下功能:
(1) 在键盘上输入指数ne和系数nf,分别生成两个一元多项式HA和HB;
(2) 输出一元多项式HA和HB;
(3) 把一元多项式HA和HB相加,生成新的一元多项式HC(HC可能超过十项);
(4) 输出新形成的一元多项式HC(原HA、HB不变);
(5) 询问”Continue?”, 当输入回答字符’n’时结束,否则回第(1)点继续执行。
注意:(1)进行多项式相加时,只有该两项的指数相同时才能相加,若相加后系数为0,则取消该项;
(2) 建立多项式,可以严格按指数从大到小的次序输入,此时,当发现当前项的指数比前一项的指数大时,则要求重新输入;
(3)若建立多项式时可以不按指数由大到小次序输入时,则应在输入结束后用程序进行调整,使数组内多项式各项指数从大到小次序存放;
(4) 在一个多项式中若发现有两项(或两项以上)的指数相等时,应进行合并,或合并后系数为0,则取消该项;
(5) 多项式输出形式:设有多项式 3X8-2X+7,则输出形式为:3X^8-2X^1+7X^0
怎么做?请发全部代码,尽量用简单的语言!!
这个题目出现过 我想再求个答案。
输入的话就是依次输入多项式A、B的 系数,每一项的指数(注意:指数可以大于10,但项数是小于10的)
输出A和B,还有C=A+B(合并过的)
没有代码也请把你的思路留下,谢谢。

忽忽 终于给你写完了 有注释 应该不难懂 我喜欢写容易看懂的程序

完全是自己写的哦 ,可不能冤枉我照抄

如果还是不行就mmmm我 我再帮你该
如果你不是很急 最好是自己写下 呵呵
-------------------------------------

#include<iostream>
#include<fstream>

using std::ifstream;
using std::cout;
using std::cin;
using std::endl;
using std::ostream;
using std::istream;

///////////////////////////////////////////////////////////////////////////
struct Node
{
Node(){next=NULL;}
Node(int c,int e,Node *ne=NULL)
{
coefficient=c;
exponent=e;
next=ne;
}
int coefficient;
int exponent;
Node *next;
friend ostream& operator << (ostream&,const Node&);
};

ostream& operator <<(ostream &out,const Node &node)
{
out<<"<"<<node.coefficient<<","<<node.exponent<<">";
return out;
}