"head.h"
#include<iostream> #include<cmath> using namespace std; class PolyTerm { public: PolyTerm(); int coef; int exp; PolyTerm *next; }; PolyTerm::PolyTerm() { coef=exp=0; next=NULL; } class DATA { public: DATA(); void GetPoly(); void GetX(); void GetSum(); private: int GetPow(int,int); PolyTerm *head,*p; int result,x; }; DATA::DATA() { head=p=NULL; x=result=0; } void DATA::GetPoly() { cout<<"Please Input Data :"<<endl<<endl; int coef,exp; bool first=true; while(cin>>coef>>exp) { if(first) { head=new PolyTerm; head->coef=coef; head->exp=exp; p=head; first=!first; } else { p->next=new PolyTerm; p=p->next; p->coef=coef; p->exp=exp; } } cin.clear();//解除cin的异常状态 } void DATA::GetX() { cout<<"GetX Called !"<<endl<<endl; if(head==NULL) { cout<<"No Data Input !"<<endl<<endl; return; } cout<<"Please Input X :"<<endl<<endl; cin>>x; } void DATA::GetSum() { cout<<"GetSum Called !"<<endl<<endl; if(head==NULL) cout<<"sum = 0"<<endl<<endl; else { result=(head->coef)*GetPow(x,head->exp); p=head->next; while(p!=NULL) { result+=p->coef*GetPow(x,p->exp); p=p->next; } cout<<"sum = "<<result<<endl<<endl; } } int DATA::GetPow(int x,int e) { return int(pow(double(x),double(e))); }
"main.cpp"
#include"head.h" #include<iostream> using namespace std; int main() { DATA data; data.GetPoly(); data.GetX(); data.GetSum(); system("pause"); return 0; }