一元多项式的计算课程设计报告.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文档。上传文档
查看更多
一元多项式的计算课程设计报告

合肥学院 计算机科学与技术系 课程设计报告 2008~2009学年第二学期 课程 程序设计语言Ⅱ课程设计 课程设计名称 多项式的计算 学生姓名 王建敏 学号 0804013029 专业班级 计算机科学与技术(3)班 指导教师 张贯虹 汪彩梅 2009年6月 一、课程设计题目:多项式(单项链表的应用) 二、分析与设计 程序的基本功能 (1)建立多项式 (2)输出多项式 (3)删除多项式以释放空间 (4)删除多项式中的某一项 (5)将多项式合并同类项 (6)拷贝多项式 (7)将多项式按指数升序排列 (8)判断两多项式是否相等 (9)两个多项式相加,建立并输出和多项式 (10)两个多项式相减,建立并输出差多项式 (11)两个多项式相乘,建立并输出积多项式 (12)两个多项式相除,建立并输出商多项式 算法设计 本程序主要应用了链表,结构体和类模板。用结构体来定义多项式的结点(即每一项),它包含三个域,分别存放该项的系数、指数以及指向下一项结点的指针;用链表来存储多项式,为了节省空间,只存储多项式中系数非0 的项,用多项式链表类来实现设定的程序的基本功能。 涉及的主要算法有: (1)使用尾插法创建多项式,即从一个空表开始,重复读入数据,生成新结点,将读入数据存放在新结点的数据域中,然后将新结点插入到当前链表的表尾上,直到读入结束标志为止。 定义的主要函数及说明 CreatePoly()-------创建多项式链表 OutputPoly()-------输出多项式 DestroyPoly()------完全删除多项式 DelPoly()-----------删除多项式中的某一项 EqualPoly()---------判断两多项式是否相等 MergePoly()--------将多项式和并同类项 SortPoly()-----------将多项式按升序排列 PolyAdd()-----------多项式和的计算 PolySub()----------多项式差的计算 PolyMutiply()-------多项式积的计算 PolyDivide()---------多项式商的计算 三、系统实施 源程序代码(见后附录) 上机调试过程 调试中遇到的主要问题 问题一:开始用类来定义多项式链表的结点,即typedef struct PolyNode{}PolyNode , * PolyList,并将三个数据域设为私有成员,系统报错。 问题二:将多项式类的析构函数体写为:~Polynomial(){delete head;delete rear;delete Length;},系统报错。 问题三:在记录多项式项数Length时,在创建多项式的函数体内,写成:Length=n-1, 编译通过,可运行结果不正确,多了一项。 问题四:在多项式类中所定义的两个多项式的加减乘除及判断是否相等这些功能函数本来用的是友元函数(也应该用友元函数),例对多项式的加法用的是函数friend PolyList PolyAdd(PolyList PolyA , PolyList PolyB),系统报错。 问题五:在程序运行过程中出现错误error C2955: Polynomial : use of class template requires template argument list。 解决问题 解决题一:根据错误提示发现多项式类成员函数的实现不能访问结点类的私有成员,在结点类里添加一个友元类friend class Polynomial,运行后还是有错误,经过反复修改,根据提示意识到自己不能解决typedef在类模板中的正确使用,导致反复不能运行,最后将多项式链表的结点用结构体来定义,即用typedef struct PolyNode{}PolyNode , * PolyList,运行最终正确。 解决题二:根据错误提示将析构函数改为:~Polynomial(){delete head;delete rear;},运行对。 解决题三:根据运行的错误结果将错误代码改为:Length=n-2,运行正确。 解决题四:据错误提示应该是PolyA本是指针成员,在前加上地址运算符会出错,且PolyList非类名,故系统报错。将全部去掉,运行仍错误,反复对其修改,都不能运行,最后将友元函数改为普通函数,如上面的加法函数改为PolyList PolyAdd(PolyList PolyA , PolyList PolyB),运行正确(虽然不该在多项式类中定义这样的函数,因为这些功能并非多项式的基本行为,但毕竟个人能力有限,只希望以后掌握更多的知识来进行弥补)。 解决题五:根据错误指示位置发现在

文档评论(0)

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

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

1亿VIP精品文档

相关文档