数据结构 多项式求导.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构 多项式求导

孝感学院计算机科学系11级 课程设计课程设计报告 题目:多项式求导 班级:1017142 学号:101714201 姓名: 指导教师:李志敏 2012年2月12日 目录 1需求分析 2 1.1功能需求分析 2 1.2设计平台 3 2概要设计 3 2.1涉及到的知识基础(概述) 5 2.2定义的函数的部分功能 7 3详细设计和实现 7 3.1 功能模块 7 3.2系统流程图 8 4调试与操作说明 9 5、总 结 10 6. 参考文献 10 7、源程序 11 1需求分析 1.1功能需求分析 1.本演示程序中,多项式的系数为浮点型,指数为整型。输入多项式时,先输入多项式的项数系数和指数,该多项式若为0,则输入0。多项式的输出形式为类数学表达式且按指数降序排列,系数值为1的非零次项的输出形式中略去系数1。 2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据和运算结果显示在其后。 3.程序执行的命令: 输入为一个一元多项式,按照降幂依次输入每个单项式的系数和指数,并以-1 -1作为结束。系数和指数均为整数,指数不小于0。1.2设计平台 Visual C++ 6.0 , Windows XP平台, 2概要设计 PolyNode *p,*q,*r,*head; 操作结果:构造一个空的线性表。。 Listinsert(L,i,e) 初始条件:线性表L存在,0≤i≤L的元素个数。 操作结果:在L中第i个位置之后插入新的结点e。 }ADT List 多项式的抽象数据类型定义为: ADT polyn{ 数据对象:D={ai,bi|ai为不为0的实数,bi为整数,i=2,…,n} 数据关系:R1={ai,bi} 基本操作: Output(PolyNode*head) 操作结果:创建一个多项式链表,输出多项式。 PolyNode * Plus(PolyNode *A,PolyNode *B) 初始条件:多项式链表L1,L2存在。 操作结果:创建一新多项式链表L,其结点为L1,L2相加。 poly *qiudao(poly *p) 初始条件:多项式链表L存在。 操作结果:创建一新多项式链表P,其结点为L结点的导数。 }ADT polyn 本程序包涵四个模块: 主程序模块: main(){ 初始化; start: 接受命令; switch(){ 处理命令; goto strat; } } 2)多项式单元模块:实现多项式的抽象数据类型; 3)线性表单元模块:实现线性表的抽象数据类型; 4)结点结构单元模块:定义线性表的结点结构; 各模块之间的调用关系如下: 图2-1 模块调用关系 2.1涉及到的知识基础(概述) typedef struct polynode { int c; int e; struct polynode *next; } poly; 2.线性表设计 p=h; while(p-next!=NULL e=p-next-e) p=p-next; //如果输入的指数小于p的下一个接点,p向后指 if (e==p-expn) {p-coef+=c;continue;} //如果相等,直接加上去,继续循环 q=new PolyNode; q-coef=c,q-expn=e; if (p-next!=NULLep-next-expn) //如果p的后继接点的指数小于输入的指数,插入到p的当前接点之后 { r=p-next; p-next=q; q-next=r; continue; } p-next=q; //如果输入的值小于所有接点,接在最后一个接点之后 p=p-next; p-next=NULL; 3.多项式基本操作部分 poly *qiudao(poly *p)//求导 { poly *s; s = p; while (p) { p-c = (p-c)*(p-e); p-e = (p-e) - 1; p = p-next; } return s; } 2.2定义的函数的部分功能 在设计程序的时候,考虑到一元稀疏多项式计算器的功能,我们按照其功能划分为几个模块,在程序开始后,先进行多项式的输入,再选择一种运算法则进行运算。然后输出运算结果。具体的模块关系如表程序结构框图: 表2-1 基本模块表 模块 输入 输出 实现功能 填入多项式的系数和指数 输出运算后多项式的系数和指数 3详细设计和实现 3.1 功能模块 图31 功能图 3.2系统流程图 图32系统流程图 4调试与操作说明 运行结果如图所示总

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档