ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:60.09KB ,
资源ID:18329688      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18329688.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(一元符号多项式的四则运算讲解Word文档格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

一元符号多项式的四则运算讲解Word文档格式.docx

1、1利用Insert()插入函数规范多项式的输入问题,进行同类项的合并和不同类项间的排序问题,使得到有序的链表,方便后续的运算2对赋值、加、减和乘运算符进行重载,赋予其新的意义,进行多项式间的四则运算。3发现函数间联系,可以减少代码的长度。巧妙利用Insert()函数和加运算符重载函数,方便乘法和减法等代码编写。二、实验成果1.输入要求按提示一次输入多项式各项的系数和指数,建立多项式。如下所示: 系数,指数:1,23,40 4(以输入系数为零的项结束创建) 创建结果为:1x2+3x4 根据自己的需要选择输入功能序号进行运算,如选择数字2进行加法运算2.输出样例 总体上各项是按照输入的方法进行输出

2、,如果指数为零只输出系数,如 果系数为零,那么该项不输出,如果系数为负数,那么两项间“+”变“-”。 以上述输入为例创建的结果为:1x2+3x4。 如果另一个多项式为:-1-2x6,那么加法运算后的结果为:-1+1x2+3x4-2x63.主要代码展示:/* c+开放实验项目* /一元符号多项式的四则运算 #include 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

3、 public: Polynomial()poly=new PNode; Polynomial(Polynomial & void Print(); Polynomial(); void Insert (PNode *temp); void CreatPoly(); Polynomial& operator = (const Polynomial & operator + (const Polynomial & operator - (Polynomial & operator * (const Polynomial & private: PNode *poly;/析构函数 Polynomia

4、l:Polynomial() PNode *pt=poly-next; while (pt) poly-next=pt- delete pt; pt=poly- delete poly; poly=NULL;/赋值运算符的重载Polynomial& Polynomial:operator = (const Polynomial &p) this-Polynomial(); poly=new PNode; PNode *pt=poly,*qt=p.poly- while(qt) PNode *s=new PNode(qt-coef,qt-expn); pt-next=s; pt=s; qt=qt

5、- return *this;/复制构造函数 Polynomial(Polynomial &p) *this=p;/遍历 void Polynomial:Print() if(poly-next=NULL) coutexpn=0) coutcoef; else coef while (pt) if(pt-0) cout else + cout while(qt&qt-expnexpn) pt=qt; qt=pt- if(qt=NULL|qt-expn temp-next=qt; else qt-coef+=temp- if(qt-coef=0) pt-next=qt- delete qt; /

6、多项式的构建函数 CreatPoly() double c; int e;系数,指数: cince; while (c) PNode *p=new PNode(c,e); Insert(p); cin/多项式的加法 operator + (const Polynomial &q) Polynomial *PC=new Polynomial; PNode *ta=poly-next,*tb=q.poly-next, *tc=PC-poly; while(ta&tb) int a=ta- int b=tb- int t=ab?1:(ba?-1:0); switch(t) case -1: PNod

7、e *s=new PNode(ta-coef,ta- tc- tc=s; ta=ta- break; case 0: double sum=ta-coef+tb- if(sum=0) ta=ta- tb=tb- else PNode *s=new PNode(sum,ta- tb=tb- case 1: PNode *s=new PNode(tb-coef,tb- tc- tc=tc- /switch /while while (ta) PNode *s=new PNode(ta- tc- tc=s; ta=ta- while (tb) PNode *s=new PNode(tb- tb=tb

8、- return *PC;/多项式的减法operator - (Polynomial & /复制取反相加 Polynomial P(p),*PC=new Polynomial; PNode *pt=P.poly- while(pt)coef=-pt- *PC=*this+P;/多项式的乘法next,*qt; for(;pt;pt=pt-next) for(qt=p.poly-qt;qt=qt- PNode *s=new PNode(pt-coef*qt-coef,pt-expn+qt- PC-Insert(s); /主函数 int main() Polynomial PA,PB,PC; int

9、 index; /-一元符号多项式的表示及运算-/ 本函数的功能列表:1.多项式的加法:2.多项式的减法:3.多项式的乘法:4.选择重建多项式:5.结束运算n依次输入PA各项系数和指数(以输入系数0项结束),建立多项式: PA.CreatPoly(); PA.Print();依次输入PB各项系数和指数(以输入系数0项结束),建立多项 PB.CreatPoly(); PB.Print();n请输入功能序号进行多项式的运算:index; while(index) switch(index) PC=PA+PB;PC=PA+PB: PC.Print(); case 2: PC=PA-PB;PC=PA-

10、PB: case 3: PC=PA*PB;PC=PA*PB: case 4: int flag;输入0修改多项式PA,其他数字保留多项式PA: cinflag; if(!flag) PA.CreatPoly(); PA.Print(); 输入0修改多项式PB,其他数字保留多项式PB: PB.CreatPoly(); PB.Print(); case 5:运算结束 return 0; /switch n是否需要继续,请再次输入选择: /while return 0;4.项目结果展示三、实践体会在此次的C+开放项目试验中,我承担了用C+实现一元符号多项式的四则运算,将所学C+知识运用实战编程中去,

11、并及时进行知识的查缺补漏,帮助我更好的掌握了C+这门语言。通过整个编程调试过程,我认识到完成一个程序的设计,必须一步一步的进行,修改程序中的Bug,以防影响后续程序的进行。不能一股脑的将程序全部写出,这样就会使得程序的调试的难度大大增加。要能够去考虑程序的每一步实现的可能性问题。如在这次试验中,关于赋值运算符的问题,普通的赋值运算符无法实现我自定义的多项式的整体复制,必须进行运算符的重载,赋予其新的意义。类似的还有加号、减号和乘号。考虑程序设计中的特殊部分的运算,像是此次项目中的头结点和尾结点等,防止程序的特殊化。要考虑程序的实用性,结合要求来对程序进行调整,返回引用值减少空间的使用,保护多项式的封装性,使得程序运行通畅和方便。在程序的基本编写结束时。还要对程序进行优化,使得程序能够尽可能的精炼,增加程序的可读性和含金量等。 总之一段好的代码一定是经过精心设计,千锤百炼,然后才能经久不衰。在此次实验项目中,我学会了一些编程的技巧,掌握了C+这门课程的主要知识,提升了自我钻研能力,希望以后能够多参与一些这样的开发项目。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1