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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

多项式课程设计报告.docx

1、多项式课程设计报告信息工程学院软件工程系 课程设计报告 20122013学年第一学期 课 程 数据结构 课程设计名称 多项式的运算 学 生 姓 名 学 号 专 业 班 级 1课程设计题目要求:一元多项式计算器的基本功能定位(1)建立多项式(2)输出多项式(3)两个多项式相加,建立并输出和多项式(4)两个多项式相减,建立并输出差多项式(5)两个多项式相乘,建立并输出积多项式(6)两个多项式相除,建立并输出商和余数多项式实现提示:可选择带头结点的单链表存储多项式,头结点可存放多项式 的参数,如项数等2分析与设计 1.程序的基本功能 (1)建立多项式 (2)输出多项式 (3)删除多项式以释放空间 (

2、4)将多项式按指数升序排列 (5)两个多项式相加,建立并输出和多项式 (6)两个多项式相减,建立并输出差多项式 (7)两个多项式相乘,建立并输出积多项式 (8)两个多项式相除,建立并输出商和余数多项式 2 算法设计 本程序主要应用了链表,结构体。用结构体来定义多项式的结点(即每一项),它包含三个域,分别存放该项的系数、指数以及指向下一项结点的指针;用链表来存储多项式,为了节省空间,只存储多项式中系数非0 的项,用多项式链表类来实现设定的程序的基本功能。涉及的主要算法有: (1)使用尾插法创建多项式,即从一个空表开始,重复读入数据,生成新结点,将读入数据存放在新结点的数据域中,然后将新结点插入到

3、当前链表的表尾上,直到读入结束标志(某一项的系数为零)为止。 (2)输出一个非空的多项式链表,不要输出最后一项,即输入系数为零的结束项,用ifelse语句判断。 (3)删除整个多项式是一项一项的删,使用链表删除其结点的方法,使用free()函数释放存储空间。在删除非空的多项式的某一项时,定义k来找到要删除的那一项的位置,再使用delete将其删除。 (4)计算多项式加减,其算法思想是相同的。以多项式加法为例,先对两多项式排序,再将两多项式的每一项逐项相加,在相加之前,先比较两项的指数是否相等,若相等则将系数相加,再判断系数是否为零,若为零则删除,否则存储在和多项式中。若两项指数不相等,当多项式

4、pa指数大于多项式pb指数时,则将pa结点副本插入到和多项式PolyC尾部;当pa指数小于pb指数时,则将pb结点副本插入到和多项式PolyC尾部,最后插入剩余结点。 (5)计算多项式乘法时,先判断两多项式是否为空,若为空,则返回乘多项式,否则要先对两多项式进行合并排序,先将两多项式的第一项相乘,即系数相乘,指数相加,其值作为乘多项式的第一结点,其后使用双重循环将一多项式的每一项与另一多项式的每一项分别相乘,结果存到乘多项式中。 (6)计算多项式除法时,同样要判断两多项式是否为空,只要有一为空,则直接返回空,否则将一多项式整个除以另一多项式,系数相除,指数相减,结果存到商多项式中。 3.系统总

5、框图 4.定义的主要函数及说明void Insert(Polyn p,Polyn h)-插入多项式结点Polyn CreatePolyn(Polyn head,int m)-建立多项式void DestroyPolyn(Polyn p)-销毁多项式void PrintPolyn(Polyn P)-输出多项式Polyn AddPolyn(Polyn pa,Polyn pb)-求解并建立多项式a+b,返回其头指针Polyn SubtractPolyn(Polyn pa,Polyn pb)-求解并建立多项式a+b,返回其头指针 float ValuePolyn(Polyn head,float x)

6、-输入x值,计算并返回多项式的值Polyn Derivative(Polyn head)-求解并建立a的导函数多项式,并返回其头指针Polyn MultiplyPolyn(Polyn pa,Polyn pb)-求解并建立多项式a*b,返回其头指针void DevicePolyn(Polyn pa,Polyn pb)-求解并建立多项式a/b,返回其头指针 5.各主要函数的流程图void Insert(Polyn p,Polyn h)/多项式的插入 YPolyn AddPolyn(Polyn pa,Polyn pb)/多项式的加法Polyn SubtractPolyn(Polyn pa,Polyn

7、 pb)/多项式的减法void PrintPolyn(Polyn P)/输出多项式p三具体实现1.程序运行截图 2.算法的时间复杂度及改进 算法的时间复杂度:一元多项式的加法运算的时间复杂度为O(m+n), 减法运算的时间复杂度为O(m-n),其中m,n分别表示二个一元多项式的项数。问题和改进思想:在设计该算法时,出现了一些问题,例如在建立链表时头指针的设立导致了之后运用到相关的指针时没能很好的移动指针出现了数据重复输出或是输出系统缺省值, 不能实现算法。 实现加法时该链表并没有向通常那样通过建立第三个链表来存放运算结果, 而是再度利用了链表之一来进行节点的比较 插入删除等操作。为了使输入数据

8、按指数降序排列, 可在数据的输入后先做一个节点的排序函数,通过对链表排序后再进行之后加减运算。 心得体会:一元多项式计算是一个的单链表的运用, 通过这个程序可 以测我们以前的学习情 况,看看我们是否对单链表真正的理解。 一元多项式计算器的基本功能定为:(1) 建立多项式 (2) 输出多项式 (3) 两个多项式相加,建立并输出和多项式 (4) 两 个多项式相减,建立并输出差多项式能够按照指数降序排列建立并输出多项式能够完成两个多项式的相加、相减,并将结果输出。3.结束语时间过的很快,在不知不觉中,课程设计也接近了尾声.说起课程设计,我认为最重要的就是做好设计的预习, 并且认真的去复习以前的知识和

9、查各种资料同时 认真的研究老师给的题目, 老师对题目的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计来才会有底,有信心。课程设计是一门培养学生综合运用所 学知识,发现,提出,分析和解决实际问题的学科,它能充分锻炼我们的动手能力, 时我们实践能力的重要环节,是对学生实际工作能力的具体训练和考 察过程。 我想这次不只是一次简单的课程设计,更体现了数据结构算法和生活的紧密联系。 生活中也存在许多与数据结构有关联的事情,它让人不得不深思, 这一个学期的学习,这两年来的大学学习生涯,自己究竟学会了什么,掌握了多少,我也不清楚,我以前也疯狂的玩过,现在才知道自己时多么的缺乏知识,大多数问题自己不能解决, 感觉将来自己是否能胜任以后作编译人员的职位。 我想大家都心里都有很多的感触。对于自己,我想我已经认识到了自己的不足,在今后的学习过程中,我一定以最好的心态去对待,以最好的面貌来迎接大三的软件专业课程,并且经常上机调试,坚持理论与实践相结合。相信自己将会有很大的进步。

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

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