"head.h"
#include<iostream> #include<string> using namespace std; class NODE { public: NODE(); int coef; int exp; NODE *next; }; NODE::NODE() { coef=exp=0; next=NULL; } class DATA { public: DATA(); void GetPoly(); void Derivation(); void Print(); private: NODE *head,*p,*pre; int coef,exp; }; DATA::DATA() { pre=head=p=NULL; coef=exp=0; } void DATA::GetPoly() { cout<<"GetPoly Called !"<<endl<<endl; cout<<"Please Input polynomial :"<<endl<<endl; bool first=true; while(cin>>coef>>exp) { if(first) { head=new NODE; head->coef=coef; head->exp=exp; p=head; first=!first; } else { p->next=new NODE; p=p->next; p->coef=coef; p->exp=exp; } } cin.clear(); } void DATA::Derivation() { cout<<"Derivation Called !"<<endl<<endl; if(head==NULL) { cout<<"No Data !"<<endl<<endl; return; } else { pre=p=head; while(p!=NULL) { if(p->exp==0) { if(p==head) { head=head->next; delete p; pre=p=head; } else { pre->next=p->next; delete p; p=pre->next; } } else { p->coef*=p->exp; p->exp--; pre=p; p=p->next; } } } } void DATA::Print() { cout<<"Print Called !"<<endl<<endl; if(head==NULL) { cout<<"No Data !"<<endl<<endl; return; } p=head; cout<<p->coef; if(p->exp!=0) cout<<"x^"<<p->exp; p=p->next; while(p!=NULL) { cout<<"+"<<p->coef; if(p->exp!=0) cout<<"x^"<<p->exp; p=p->next; } cout<<endl<<endl<<endl; }
"main.cpp"
#include"head.h" int main() { DATA data; data.GetPoly(); data.Print(); data.Derivation(); data.Print(); system("pause"); return 0; }