网站大量收购独家精品文档,联系QQ:2885784924

一元多项式的计算课程设计报告.docVIP

一元多项式的计算课程设计报告.doc

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

本科课程设计(报告)

数据结构课程设计

一元多项式的计算

1.问题描述:

将多个多项式输入并存储在内存中,然后对多项式进行加,减,数乘等运算。

2.程序结构(程序中的函数调用关系图)

voidMenu(polynomial*L);//菜单

voidInitPolynomial(polynomial*L);//初始化多项式

voidIPolynomial(polynomial*L);//输入多项式函数

voidCPolynomial(polynomial*L);//多项式计算函数

voidLPolynomial(polynomial*L);//显示多项式函数

voidQPolynomial(polynomial*L);//退出

voidsort(node*L);//按指数升幂排列并合并同类项

voidout(headL);//输出一个多项式

intmain()//主函数

主函数

主函数

main

输入多项式函数

IPolynomial

菜单函数

Menu

显示多项式函数

LPolynomial

计算多项式函数

CPolynomial

退出函数

QPolynomial

输出一个多项式函数

out

排序合并同类项函数

sort

排序合并同类项函数

sort

输出一个多项式函数

out

输出一个多项式函数

out

程序中各函数原型和函数功能描述

voidMenu(polynomial*L);//菜单

voidInitPolynomial(polynomial*L);//初始化多项式

voidIPolynomial(polynomial*L);//输入多项式函数

voidCPolynomial(polynomial*L);//多项式计算函数

voidLPolynomial(polynomial*L);//显示多项式函数

voidQPolynomial(polynomial*L);//退出

voidsort(node*L);//按指数升幂排列并合并同类项

voidout(headL);//输出一个多项式

intmain()//主函数

主要算法及数据结构描述(算法可用伪代码或流程图描述)

主要算法描述:

输入多项时的录入算法:

利用cin/cin.ignore()语句进行录入

当输入“f=3,0-7,46,50,-1”时,cin一个char变量name,系统把f赋给name,利用cin.ignore()语句,指针在输入流中前进一位跳过“=”。

开始循环:使用cin语句录入一个double型变量,系统吧3赋值给变量,利用cin.ignore()语句,指针在输入流中前进一位跳过“,”,再次利用cin语句录入一个int变量,系统把0赋给变量。此时创造多项式的其中一项的节点(node类型),并使用头插法插入到多项式中。

直到输入的一项系数为0指数为-1

最后把得到的多项式用sort函数按升幂排列并合并同类项加入到多项式数组中,多项式数目加一

令多项式升幂排序并合并同类项的算法:

添加一个头节点。把链表分成已排序部分和未排序不分,利用直接插入排序的方法进行排序。若出现有可以合并同类的情况则指数不变系数相加。

多项式的计算

以字符串的方式输入多项式计算表达式。扫描整串字符把算术符号赋给字符变量symbol。按照symbol的不同进行不同的运算。

加法

如输入“h=f+g”

先创建一个新的多项式的链表,获取的多项式函数名“h”分别找到加号前后对应的多项式在多项式数组中的位置,把两多项式的每一项复制并用头插法插入到新的多项式中,然后进行排序和合并同类项。最后加入到多项式数组中,多项式数目加一。

减法

如输入“k=f-g”

先创建一个新的多项式的链表,获取的多项式函数名“k”分别找到减号前后对应的多项式在多项式数组中的位置,把被减数多项式的每一项复制并用头插法插入到新的多项式中,把减数的每一项复制,系数取相反数用头插法插入。然后进行排序和合并同类项。最后加入到多项式数组中,多项式数目加一。

数乘

如输入“j=33*f”或“j=f*33

先创建一个新的多项式的链表,获取的多项式函数名“j”

确认“*”所在的位置

然后通过“*”前面字符的asscii码确认数字在乘号前面还是后面。反复利用

num=10*num+当前数字

把在字符串中的数字转化的整数保存在整型变量num里面。

找到被乘多项式,复制每一项,把每一项的系数乘以num,利用头插法插入到新的多项式中然后进行排序和合并同类项。最后加入到多项式数组中,多项式数目加一。

数据结构描述:

每个多项式用单链表来存储:头节点包含多项式的函数名并指向多项式的第一项

typedefstructhead//头节点3

文档评论(0)

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

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

1亿VIP精品文档

相关文档