• 大小: 15KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: C/C++
  • 标签: C++  数据结构  

资源简介

用类来定义单项式和多项式,再利用符号重载实现多项式的计算,包含详细代码,可参考。

资源截图

代码片段和文件信息

#include
#include
#include 
#include
using namespace std;


//辅助函数 
bool isDigit(const char& a){
if (a >= 48  && a <= 57) return true;
else return false;
}

int toDigit(const string& c){
stringstream a;
int b;
a< a>>b;
return b;
}

string getexpression(const string& expression){
int i=0len=expression.length();
while( expression[i] != ‘=‘ ){
i++;
}
return expression.substr(i+1len-i);
}

string getName(const string& expression){
int i=0;
while( expression[i] != ‘=‘ ){
i++;
}
return expression.substr(0i);
}

bool isRightfull(const string& expression){
int len=expression.length()-1;
int index=-1;
for(int i=len; i>=0;){
int a=0;
if( expression[i] != ‘)‘ ) return false;
else {
if( !isDigit(expression[i-1]) )
 return false;
else{
while( isDigit(expression[i-a-1]) ){
a++;
}
}
if( index >= toDigit( expression.substr(i-aa) ) ) 
return false;
else index = toDigit( expression.substr(i-aa) );

if( expression[i-a-1] != ‘‘ ) return false;
else {
if( !isDigit(expression[i-a-2]) )
return false;
while( isDigit(expression[i-a-2]) ){
a++;
}

if ( toDigit( expression.substr(i-a-1a) ) == 0 )
return false;
if ( expression[i-a-2] == ‘-‘ ) a++;
if ( expression[i-a-2] != ‘(‘ ) return false;
}
}
i=i-a-3;

return true;
}



//单项式类 
class Item{
private:
int coefficient;
int index;
public:
Item();
int getIndex() const;
int getCoefficient() const;
void setCoefficient(int a);
void setIndex(int a);
Item operator+(const Item& a);
Item operator-(const Item& a);
Item operator*(const int& a);
Item operator*(const Item& a);
int getValue(const int& a);
void show_Item();
};


Item::Item(){
index=0; coefficient=0;
}

int Item::getIndex() const{
return index;
}

int Item::getCoefficient() const{
return coefficient;
}

void Item::setCoefficient(int a){
coefficient=a;
}

void Item::setIndex(int a){
index=a;
}

Item Item::operator+(const Item& a){
Item b; 
b.coefficient = a.coefficient + coefficient;
b.index = index;
return b;
}

Item Item::operator-(const Item& a){
Item b; 
b.coefficient = coefficient - a.coefficient;
b.index = a.index;
return b;
}

Item Item::operator*(const int& a){
Item b;
b.coefficient = coefficient * a;
b.index = index;
return b;
}

Item Item::operator*(const Item& a){
Item b;
b.coefficient = coefficient * a.coefficient;
b.index = index + a.index;
return b; 


int Item::getValue(const int& a){ 
return coefficient * pow( aindex );
}

void Item::show_Item(){
if( index == 0 ) cout< else {
if( index != 1 ){
if( coefficient == 1  ) cout<<“x^“< else {
if( coefficient == -1 ) cout<<“-x^“< else cout< }
}
else

评论

共有 条评论