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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

c一元稀疏多项式计算器课程设计实验报告Word文档格式.docx

1、数据结构是实践性很强的课程。课程设计是加强学生实践能力的一个强有力手段。课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用二、 需求分析2.1 设计开发环境: 软件方面:系统 windows 7 编程软件:VC+ 6.02.2思路分析:一般情况下的一元n次多项式可写成pn(x)=p1xe1+p2xe2+pmxem 其中,p1是指数为ei的项的非零系数,且满足0e1e2em=n ,若用一个长度为m且每个元素有两个数据项(系数项和指数项)的线性表(p1,e1),(p2,e2),(p

2、m,em)便可惟一确定多项式pn(x)。用两个带表头结点的单链表分别存储两个多项式根据一元多项式相加的运算规则:对于两个一元多项式中所有指数相同的项,对应系数相加,若其和不为零,则构成“和多项式”中的一项;只需要将第二个多项式的系数改为其相反数,然后根据一元多项式相加的运算规则便可以得到其相应的“差多项式” 三、概要设计图3-1功能模块图为实现上述程序功能,用带表头结点的单链表存储多项式。元素类型,节点类型,和指针类型:typedef struct Polynomialint coe; /系数int exp;/指数struct Polynomial *next;*Polyn,Polynomia

3、l;各个模块之间的调用如图3-1所示,调用insert()函数将输入的多项式按降幂排列,通过主函数main()中swith语句,选择用户所选择的对应的模块,然后又模块对应的功能函数对用户输入的数据进行相应的操作,最后通过desktop()模块将最后结果输出。四、详细设计图4-1 功能实现流程图4.1 输入模块用户可通过本模块来输入一个多项式,在每次输入一个多项式时,本模块会先判断谁否是第一次输入,如果是,创建节点,如果不是则模块会通过判断本次输入的数的指数与第一项输入的指数的大小,如果第一项的指数较大,则刚输入的这一项继续与第二项比较指数,以此类推,如果发现刚输入的这一项的指数比比较的这一项的

4、指数要大,则插入比较项的前面。4.2 求和、差模块用户通过本模块可以实现两个多项式的求和或差值,此模块先调用输入模块,进行对两个要运算的多项式进行初始化,并按降幂排列。然后将两个多项式的幂进行一个对比,如果第一个数的第一项的系数大于第二个多项式的第一个项的系数,那么直接将第一项赋值于刚开始创建的链表的第一项,作为答案的最后一项,反之亦然,如果第一个数的第一项,与第二个数的第一项的系数相同,那么将两个数的系数与指数分别相加或者相减并将对应值赋值给答案相对应的项。以此类推。最后有输出模块输出最后答案。4.3求积、商模块用户可通过该模块实现两个多项式的相乘(相除),此模块先调用输入模块,进行对两个要

5、运算的多项式的初始化,并按降幂排列。然后将第一个数的系数、指数与第二个数的系数、指数分别相乘(相除),相加(相减),并且赋值给答案相应的系数、指数。完成后执行第一个数的第一项与第二个数的第二项进行相应的操作.执行完之后最后调用输出模块将结果输出到屏幕上。4.4求值模块用户可通过此模块实现多项式的求值,此模块调用输入模块,完成相对应的操作,然后需要用户输入此时变量的值,并且将变量的值赋值给变量,最后将答案通过输出模块输出到屏幕上。五、 源代码 #include#include math.h int coe; int exp; struct Polynomial *next;Polyn ma,mb

6、;void Insert(Polyn p,Polyn h) if(p-coe=0) delete p; else Polyn q1,q2; q1=h;q2=h-next; while(q2&p-expexp) q1=q2; q2=q2- if(q2&exp=q2- q2-coe+=p-coe; delete p; if(!coe) q1-next=q2- delete q2; else p-next=q2; q1-next=p; Polyn CreatePolyn(Polyn head,int m) int i; Polyn p; p=head=new Polynomial; head-nex

7、t=NULL; for(i=0;im;i+) p=new Polynomial; cout请输入第i+1 指数:exp; Insert(p,head); return head;void DestroyPolyn(Polyn p) Polyn t; while(p!=NULL) t=p; p=p- delete t;void PrintPolyn(Polyn Pm) Polyn qa=Pm- int flag=1; if(!qa) 0endl; return; while (qa)if(qa-coe0&flag!=1) coutcoe!=1&qa-=-1) coutexp=1) coutexp

8、) cout else cout flag+; coutexpb-exp) return 1; else if(!a|a-exp) return -1; else return 0; else if(!a&b) return -1; else return 1;Polyn AddPolyn(Polyn pa,Polyn pb) Polyn qa=pa- Polyn qb=pb- Polyn headc,hc,qc; hc=new Polynomial; hc- headc=hc; while(qa|qb) qc=new Polynomial; switch(compare(qa,qb) cas

9、e 1: qc-coe=qa-exp=qa- qa=qa- break; case 0:coe+qb- qb=qb- case -1:coe=qb-exp=qb- if(qc-=0) qc-next=hc- hc-next=qc; hc=qc; else delete qc; return headc;Polyn SubtractPolyn(Polyn pa,Polyn pb) Polyn h=pb; Polyn p=pb- Polyn pd; while(p) p-coe*=-1; pd=AddPolyn(pa,h); for(p=h-p;p=p-next) return pd;Polyn MultiplyPolyn(Polyn pa,Polyn pb) Polyn hf,pf;/ /新建一个结点作为pa的后继结点 /新建一个结点作为pb的后继结点 hf=new Polynomial; hf- while(qa)/使用while循环,使得多项式的每项得以运算 qb=pb- while(qb) pf=new Polynomial; pf-coe*qb-exp+qb- Insert(pf,hf);/调用插入函数,将新的结点插入到新建链表中,并合并同类项 qb=qb- return hf;/返回所得链表的头指针void De

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

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