文档详情

一元符号多项式的四则运算.doc

发布:2016-12-26约6.35千字共11页下载文档
文本预览下载声明
C++开放项目实验报告 题目: 一元符号多项式四则运算 姓名: 指导老师: 学号: 班级: 内容总结 功能要求 用所学C++知识编程实现两个一元符号多项式的加法,减法和乘法运算。 算法概要设计 结点插入函数 void Insert (PNode *temp); 多项式的创建函数 void CreatPoly(); 赋值运算符的重载 Polynomail operator = (const Polynomail p1); 一元符号多项式的加法 Polynomail operator + (const Polynomail p); 一元符号多项式的减法 Polynomail operator - (Polynomail p); 一元符号多项式的乘法 Polynomail operator * (const Polynomail p); 应用技巧 利用Insert()插入函数规范多项式的输入问题,进行同类项的合并和不同类项间的排序问题,使得到有序的链表,方便后续的运算 对赋值、加、减和乘运算符进行重载,赋予其新的意义,进行多项式间的四则运算。 发现函数间联系,可以减少代码的长度。巧妙利用Insert()函数和加运算符重载函数,方便乘法和减法等代码编写。 实验成果 输入要求 按提示一次输入多项式各项的系数和指数,建立多项式。如下所示: 系数,指数:1,2 系数,指数:3,4 系数,指数:0 4(以输入系数为零的项结束创建) 创建结果为:1x^2+3x^4 根据自己的需要选择输入功能序号进行运算,如选择数字2进行加法运算 输出样例 总体上各项是按照输入的方法进行输出,如果指数为零只输出系数,如 果系数为零,那么该项不输出,如果系数为负数,那么两项间“+”变“-”。 以上述输入为例创建的结果为:1x^2+3x^4。 如果另一个多项式为:-1-2x^6, 那么加法运算后的结果为:-1+1x^2+3x^4-2x^6 主要代码展示: //**** c++开放实验项目**** //一元符号多项式的四则运算 #include iostream using namespace std; struct PNode{ PNode(double c=0,int e=-1){ coef=c; expn=e; next=NULL;} double coef; int expn; PNode *next; }; class Polynomial{ public: Polynomial(){poly=new PNode;} Polynomial(Polynomial p); void Print(); ~Polynomial(); void Insert (PNode *temp); void CreatPoly(); Polynomial operator = (const Polynomial p); Polynomial operator + (const Polynomial p); Polynomial operator - (Polynomial p); Polynomial operator * (const Polynomial p); private: PNode *poly; }; //析构函数 Polynomial::~Polynomial(){ PNode *pt=poly-next; while (pt){ poly-next=pt-next; delete pt; pt=poly-next; } delete poly; poly=NULL; } //赋值运算符的重载 Polynomial Polynomial::operator = (const Polynomial p){ this-~Polynomial(); poly=new PNode; PNode *pt=poly,*qt=p.poly-next; while(qt){ PNode *s=new PNode(qt-coef,qt-expn); pt-next=s; pt=s; qt=qt-
显示全部
相似文档