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

加入VIP,省得不是一点点
 

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

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

下载须知

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

版权提示 | 免责声明

本文(多项式的加法与乘法.DOC)为本站会员(国***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

多项式的加法与乘法.DOC

1、- 1 -多项式的加法与乘法1、课题内容和要求给定两个多项式,用程序实现这两个多项式的相加和相乘。 (可以利用单链表法实现)例如给定多项式 X+3X2-4X3+5X4 和多项式 X2+3X3-4X4。2、需求分析整个程序中有两个大类,项结点的 TERM 类和多项式的 POLYNOMINAL的类。T ERM 类用以存放项结点,POLYNOMINAL 类用以构建多项式的每一项。而在进行多项式的加法和乘法时要进行多次的插入和删除操作,因此采用线性表的链接存储。主要的实现函数有多项式类的输入输出函数,多项式的相加函数,多项式的相乘函数,几个友元函数。而多项式类的构造函数和析构函数也是必不可少的。最后加

2、上主函数即能完成课题内容和要求。3、概要设计先定义链表类型结点和一元多项式,然后申明各个功能函数,并编写功能函数的算法,然后定义一个主函数,用于调用各个功能函数。其中输入输出函数由链表进行存储。其系统结构如图所示:一元多项式的加法乘法运算一元多项式的创建一元多项式的乘法一元多项式的加法一元多项式的消除- 2 -一元多项式的创建流程图如下:NY(1)一元多项式的创建流程图开 始创建一个含有 n 个链表类型结点的项按降幂分别输入各项系数和指数系数指数均小 0?一元多项式创建成功- 3 -(2)多项式相加流程图 开 始判断输入的 p 多项式系数=0?P q 指数相等时系数相加当 q 的系数大于p,则

3、跳过 q-exp大的项当 q 的系数小于 p,则 p 的系数和指数生成新的节点插入 p进行运算- 4 -开 始给出两个多项式将系数相乘,指数相加将运算结果相加,并输出(3)多项式的相乘流程图四、详细设计在定义多项式类 polynominal 之前,首先构建一个项结点的 c+类 Term,用以存放系数 coef 和指数 exp。具体实现代码如下:class Term public:Term(int c,int e);Term(int c,int e,Term* nxt);Term* InsertAfter(int c,int e); /在 this 指针指示的结点后插入新结点private:in

4、t coef;int exp;Term *link;friend ostream friend Polynominalfriend Polynominal operator *(Polynominal ;上述程序中给出了多项式类 Polynominal 的定义,其中包括 3 个公有函数成员:AddTerm、Output 和 PolyAdd。AddTerms 函数通过输入流 in,输入多项式的各项构造一个多项式的单循环链表;Output 函数将多项式按降幂方式送输出流;PolyAdd 函数将多项式 r 加到指针 this 指示的多项式上。可以通过重载运算符“”和“+”,并将它们定义为多项式类的友

5、元函数的方法,使之更符合输入输出和多项式运算的书写习惯。既然已经有了我们需要的两大类,现在就可以编写相应的具体实现函数,来实现我们需要的功能。当然首先需要的是多项式类的构造和析构函数。具体代码如下:Polynominal:Polynominal() /创建多项式的空的单循环链表 theList=new Term(0,-1); /分配表头结点的存储单元theList-link=theList; /构成循环链表void Polynominal:Clear() /撤销多项式的单循环链表Term* p=theList-link;while(p!=theList) theList-link=p-link

6、; /删除 p 结点delete p; /释放 p 之存储空间p=theList-link; /p 指向下 1个待删除结点有了上述条件现在就可以建立多项式的输入输出函数,具体代码如下:void Polynominal: AddTerms(istream int c,e;for(;) coutce;- 9 -if (c=0 /当输入的指数小于 0 时,构造过程结束q=q-InsertAfter(c,e); /将 c,e 插入表尾结点 q 之后void Polynominal:Output(ostream Term *p=theList-link;for ( ; p!=theList ; p=p-

7、link) if (!first /q1 指向表头结点p=r.theList-link; /p 指向第一个要处理的结点q=q1-link; /q1 是 q 的前驱,p 和 q 就指向两个当前进行比较的项while (p-exp=0) /对 r 的单循环链表遍历,直到全部结点都处理完 while (p-expexp) /跳过 q-exp 大的项 q1=q; q=q-link; if (p-exp=q-exp) /当指数相等时,系数相加 q-coef=q-coef+p-coef;if (q-coef=0) /若相加后系数为 0,则删除 q q1-link=q-link; delete(q);q=q

8、1-link; /重置 q 指针else q1=q; q=q-link; /若相加后系数不为 0,则移动 q1和 qelse /p-expq-exp 的情况 q1=q1-InsertAfter(p-coef,p-exp); /以 p 的系数和指数生成新结点,插入 q1p=p-link;void Polynominal:PolyMul(Polynominalwhile(p-exp=0) q=q-InsertAfter(p-coef*r2-coef,p-exp+r2-exp);p=p-link;void Polynominal:PolyMul(PolynominalTerm *p=r2.theList-link;while(p-exp=0) poly.PolyMul(r1,p);PolyAdd(poly);poly.Clear();p=p-link;

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。