C++开放项目实验报告
题目: 一元符号多项式四则运算
姓名: 指导老师: 学号: 班级:
一、 内容总结
1. 功能要求
用所学C++知识编程实现两个一元符号多项式的加法,减法和乘法运算。
2. 算法概要设计
① 结点插入函数
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);
3. 应用技巧
① 利用Insert()插入函数规范多项式的输入问题,进行同类项的合并和不同类项间的排序问题,使得到有序的链表,方便后续的运算 ② 对赋值、加、减和乘运算符进行重载,赋予其新的意义,进行多项式间的四则运算。 ③ 发现函数间联系,可以减少代码的长度。巧妙利用Insert()函数和加运算符重载函数,方便乘法和减法等代码编写。
二、 实验成果
1. 输入要求
按提示一次输入多项式各项的系数和指数,建立多项式。如下所示: 系数,指数:1,2 系数,指数:3,4
系数,指数:0 4(以输入系数为零的项结束创建) 创建结果为:1x^2+3x^4
根据自己的需要选择输入功能序号进行运算,如选择数字2进行加法运算
2. 输出样例
总体上各项是按照输入的方法进行输出,如果指数为零只输出系数,如 果系数为零,那么该项不输出,如果系数为负数,那么两项间“+”变“-”。 以上述输入为例创建的结果为:1x^2+3x^4。 如果另一个多项式为:-1-2x^6,
那么加法运算后的结果为:-1+1x^2+3x^4-2x^6 3. 主要代码展示:
//**** c++开放实验项目**** //一元符号多项式的四则运算 #include
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;