📄 001suc.cpp
字号:
#include <iostream>
using namespace std;
class Polynomial;
class Term{
friend class Polynomial;
public:
float coef;
int exp;
};
class Polynomial
{
friend ostream& operator<<(ostream&,const Polynomial&);
friend istream& operator>>(istream&,Polynomial&);
public:
Polynomial(int maxTerms = 10);
~Polynomial(){delete[] a;}
void Add(const Polynomial &b,Polynomial &c)const;
private:
void Append(const Term & t) ;
int MaxTerms;
int start,finish;
Term *a;
};
Polynomial::Polynomial(int maxTerms)
{MaxTerms = maxTerms;
a = new Term [MaxTerms];
start=finish=0;
};
ostream& operator<<(ostream& out,const Polynomial& x)
{
for(int i=0;i<x.finish;i++)
{out<<x.a[i].coef<<"X^"<<x.a[i].exp <<"+";}
cout<<endl;
return out;
};
istream& operator>>(istream& in,Polynomial& x)
{ cout<<"开始输入多项式,按指数从小到大进行输入,当系数输入为0时输入结束"<<endl;
for(int i=0;i<x.MaxTerms;i++){
cout<<"输入多项式第"<<(i+1)<<"个系数"<<endl;
in>>x.a[i].coef;
if(x.a[i].coef==0){return in;};
cout<<"输入多项式第"<<(i+1)<<"个指数"<<endl;
in>>x.a[i].exp;
x.finish++;
}
}
void Polynomial::Append(const Term & t)
{
a[finish].coef=t.coef;
a[finish].exp=t.exp;
finish++;
};
void Polynomial::Add( const Polynomial &B, Polynomial &C) const
{
int ia = start;
int ib = B.start; //a, b分别为两多项式检测指针
float c; //c为结果多项式的存放指针
while ( ia <= finish && ib <= B.finish )
if ( a[ia].exp == B.a[ib].exp) { //比较对应项的指数
c = a[ia].coef + B.a[ib].coef; //相等,系数相加
if ( c ) { Term t;
t.coef=c;
t.exp=a[ia].exp;
C.Append(t);
}; //和不为0,建立新项
ia++; ib++;
}
else if ( a[ia].exp > B.a[ib].exp ) {
C.Append(B.a[ib]); //不等,建立新项
ib++;
}
else if ( a[ia].exp < B.a[ib].exp ) {
C.Append(a[ia]); //不等,建立新项
ia++;
}
for ( ; ia<=finish; ia++ ) //加A(x)中剩余的项
C.Append( a[ia]);
for ( ; ib<=B.finish; ib++ ) //加B(x)中剩余的项
C.Append(B.a[ib]);
};
int main()
{ Polynomial A,B,C;
cout<<"输入第一个多项式系数" <<endl;
cin>>A;
cout<<"输入第一个多项式为" <<endl;
cout<<A;
cout<<"输入第二个多项式系数" <<endl;
cin>>B;
cout<<"输入第二个多项式为" <<endl;
cout<<B;
A.Add(B,C);
cout<<"两个多项式求和为" <<endl;
cout<<C;
system("PAUSE");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -