- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- 求复杂表达式的值程设计报告.doc
- 打印机校准与特性化实习报告.doc
- 色彩管理课程设计实习报告.doc
- 色彩管理实习报告.doc
- 模流分析报告解读范例.ppt
- 模板工程专项施工.doc
- 模修工考试试题及答案.docx
- 2024-2025学年江苏省扬州市九年级第一次模拟数学试卷(含解析).pdf
- 教科版高中物理选择性必修第二册第四章电磁振荡与电磁波综合微评(四)A课件.ppt
- 2025届河北省沧州市孟村回族自治县中考模拟考试数学试卷(含解析).pdf
- 森林群落发育及演替.ppt
- 2025届江苏省苏州市工业园区中考一模数学卷(含解析).pdf
- 高中历史选择题考试技术(四)考试技巧之逻辑判断 用“全面”的观点 高考历史做题方法指导.pptx
- 10,2酸和碱的中和反应课件--九年级化学人教版下册.pptx
- 2025届江苏省泰州市兴化市中考一模数学试卷(附解析).docx
- 2025届江苏省扬州市中考一模数学试卷.docx
- 2025届江苏省泰州市靖江市中考一模数学试卷(附解析).docx
- 9.3 力与运动的关系 -八年级物理下册课件(苏科版).pptx
- 2025届江苏省中考数学一模试卷(附解析).docx
- 2025年江苏省常熟市中考第一次适应性考试数学试卷(附解析).docx
文档评论(0)