- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一元多项式的代数运算
内蒙古科技大学
数据结构课程设计论文
题 目:一元多项式的代数一元多项式的代数运算1. 掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力4. 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风一元多项式的代数运算1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用. 设计完成后提交课程设计报告资料查阅与讨论课程设计论文采用数据结构:用面向对象方法与C++语言描述?清华大学出版社 2007
目录
引言 4
需求分析 4
设计概要 4
一、 存储结构: 4
二、 一元多项式的创建: 5
三、 加法设计: 6
四、 乘法设计: 7
五、 减法设计: 7
六、 一元多项式输出: 8
运行环境与运行结果 9
运行环境 9
运行结果 9
心得体会 10
附录:源程序代码 11
引言
一般的,我们只知道数学上的一元多项式的运算,且都是用笔来计算的,然而此次课程设计将会通过程序用电脑来实现一元多项式的加法和乘法运算。?通过C++使用顺序和动态存储结构实现一元多项式加法和乘法的运算,并且按升序和降序两种情况排列。
需求分析
这个程序的关键是多项式的创建和排列,以及相乘时系数相乘和指数相加、相加时相同指数的系数相加、相减时相同指数的系数相减。由于多项式拥有指数和系数(假设基数已定),所以可以定义一个包含指数系数的结构体,用单链表存储多项式的数据,所以结构体包含next指针。数据插入时比较两数的指数,按照升序降序顺序排序,从表头的next开始,直至找到合适的位置,然后开始链表中数值的插入,如果相等则直接将指数相加,如果大于就将新数据插入到当前指向的前面,否则将新数据插入到最后。输入完数据后输出相乘、相加,多项式运算时要循环遍历整个多项式,多项式的每一组数据都要和另一个多项式整组数据相运算(每一个运算值都存储到新建的“多项式”链表中),直到两个多项式都遍历完结束。
设计概要
存储结构:
一元多项式的表示在计算机内可以用链表来表示,为了节省存储空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。
图 3.1
一元多项式的创建:
图 3.2
加法设计:
创建两个指针分别指向两个多项式表头的next,分别使用for函数独自循环,遍历各自的每一组数据,每遍历一次都将系数与指数存储到新建多项式的链表中。因为存储时利用到插入函数,而插入函数中有相同指数的系数相加功能直接将两个多项式的数据依次插入到新的多项式中即可完成多项式相加。
(1)功能:将两多项式相加。?
(2)数据流入:输入函数。?
(3)数据流出:多项式相加后的结果。?
(4)程序流程图:多项式的加法流程图如图3.3所示。?
(5)测试:两多项式是否为空,为空则提示重新输入,否则,进行运算。
乘法设计:
创建两个指针分别指向两个多项式表头的next,使用for函数嵌套循环,遍历每一组数据,每遍历一次都将两组数据的系数相乘,指数相加,再利用插入函数将系数与指数存储到新建多项式的链表中。
(1)功能:将两多项式相乘。?
(2)数据流入:输入函数。?
(3)数据流出:多项式相乘后的结果。?
(4)程序流程图:多项式的乘法流程图如图3.4所示。?
(5)测试要点:两多项式是否为空,为空则提示重新输入,否则,进行运算。
图 3.4
减法设计:
创建两个指针分别指向两个多项式表头的next,以两个指针同时不为空为条件循环遍历,如果当前多项式A的指数小于多项式B,则将当前多项式B的系数置负,指数不变,存入新建多项式中,指向多项式B的指针指向下一个;如果如果当前多项式A的指数大于多项式B,则将当前多项式A的系数指数不变,存入新建多项式中,指向多项式A的指针指向下一个;否则将多项式A的系数减去B的系数后存入新建多项式中,指数不变存入,再将两个指针同时指向下一个。结束循环后判断是哪一个多项式遍历完了,将未遍历完的多项式剩下的数据全部插入到新建多项式中。
(1)功能:将两多项式相减。?
(2)数据流入:调用输入函数。?
(3)数据流出:多项式相减后的结果。?
(4)程序流程图:多项式的减法流程图如图3.5所示。?
(5)测试要点:两多项式是否为空,为空则提示重新输入,否则,进行运算。
图 3.5
一元多项式输出:
先判断录入的两个多项式是否有空项,如果两个多项式都不是空的,那么顺序输出多项式A和多项式B,否则多项式创建不成功。操作流程图如图
文档评论(0)